You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by sb...@apache.org on 2016/06/01 17:40:50 UTC

[01/32] incubator-streams git commit: start of implementation for STREAMS-398

Repository: incubator-streams
Updated Branches:
  refs/feature/STREAMS-389,398 [created] 6187265fc


start of implementation for STREAMS-398


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/f0a3518e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/f0a3518e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/f0a3518e

Branch: refs/feature/STREAMS-389,398
Commit: f0a3518ef7e89f4b3ce2ebc3b0141ef240c00c72
Parents: c2229a4
Author: Steve Blackmon (@steveblackmon) <sb...@apache.org>
Authored: Tue Dec 29 17:19:15 2015 -0600
Committer: Steve Blackmon (@steveblackmon) <sb...@apache.org>
Committed: Tue Dec 29 17:19:15 2015 -0600

----------------------------------------------------------------------
 streams-plugins/pom.xml                         |  56 ++++
 streams-plugins/streams-plugin-hive/pom.xml     | 232 +++++++++++++++
 .../apache/streams/plugins/StreamsPojoHive.java | 242 +++++++++++++++
 .../streams/plugins/StreamsPojoHiveMojo.java    |  71 +++++
 .../plugins/test/StreamsPojoHiveTest.java       |  55 ++++
 .../src/test/resources/Tweet.hql                | 297 +++++++++++++++++++
 .../test/resources/streams-plugin-hive/pom.xml  |  42 +++
 7 files changed, 995 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/f0a3518e/streams-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/pom.xml b/streams-plugins/pom.xml
new file mode 100644
index 0000000..2306aab
--- /dev/null
+++ b/streams-plugins/pom.xml
@@ -0,0 +1,56 @@
+<?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
+  ~
+  ~   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>
+    <parent>
+        <artifactId>streams-project</artifactId>
+        <groupId>org.apache.streams</groupId>
+        <version>0.3-incubating-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>streams-plugins</artifactId>
+
+    <packaging>pom</packaging>
+    <name>streams-plugins</name>
+
+    <properties>
+
+    </properties>
+
+    <modules>
+        <module>streams-plugin-scala</module>
+ 	</modules>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.streams</groupId>
+                <artifactId>streams-config</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.streams</groupId>
+                <artifactId>streams-pojo</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/f0a3518e/streams-plugins/streams-plugin-hive/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/pom.xml b/streams-plugins/streams-plugin-hive/pom.xml
new file mode 100644
index 0000000..cbc055b
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/pom.xml
@@ -0,0 +1,232 @@
+<?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
+  ~
+  ~   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>
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-hive</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>maven-plugin</packaging>
+
+    <parent>
+        <groupId>org.apache.streams</groupId>
+        <artifactId>streams-plugins</artifactId>
+        <version>0.3-incubating-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <properties>
+        <hive.version>1.14</hive.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-config</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jsonschema2pojo</groupId>
+            <artifactId>jsonschema2pojo-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-pojo</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
+        <dependency>
+            <groupId>org.reflections</groupId>
+            <artifactId>reflections</artifactId>
+            <version>0.9.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-aether-provider</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>3.3.3</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-compat</artifactId>
+            <version>3.3.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+            <version>3.3.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.sonatype.aether</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <version>2.7</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.maven</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>3.0.15</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-plugin-plugin</artifactId>
+            <version>3.4</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-api</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-generators</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-testing</groupId>
+            <artifactId>maven-plugin-testing-harness</artifactId>
+            <version>3.3.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+            <version>2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.joda</groupId>
+            <artifactId>joda-convert</artifactId>
+            <version>1.8.1</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <sourceDirectory>src/main/java</sourceDirectory>
+        <testSourceDirectory>src/test/java</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <version>3.4</version>
+                <configuration>
+                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>mojo-descriptor</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>descriptor</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.reflections</groupId>
+                <artifactId>reflections-maven</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>reflections</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.4</version>
+                <executions>
+                    <execution>
+                        <id>streams-pojo-resource-dependencies</id>
+                        <phase>process-test-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <includeArtifactIds>streams-pojo</includeArtifactIds>
+                            <includes>org/apache/streams/pojo/json/**</includes>
+                            <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/f0a3518e/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHive.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHive.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHive.java
new file mode 100644
index 0000000..f8a00f7
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHive.java
@@ -0,0 +1,242 @@
+package org.apache.streams.plugins;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+import org.apache.streams.data.DocumentClassifier;
+import org.reflections.ReflectionUtils;
+import org.reflections.Reflections;
+import org.reflections.scanners.SubTypesScanner;
+import org.reflections.scanners.TypeAnnotationsScanner;
+import org.reflections.util.ClasspathHelper;
+import org.reflections.util.ConfigurationBuilder;
+import org.reflections.ReflectionUtils.*;
+import org.reflections.util.FilterBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.annotation.Generated;
+import java.io.File;
+import java.io.IOException;
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.nio.file.Files;
+import java.nio.file.OpenOption;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Created by sblackmon on 11/18/15.
+ */
+public class StreamsPojoHive implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoHive.class);
+
+    private final static String LS = System.getProperty("line.separator");
+
+    private StreamsPojoHiveMojo mojo;
+
+    String outDir = "./target/generated-sources/hive";
+    String packages[] = {"org.apache.streams.pojo.json"};
+
+    private final Reflections reflections = new Reflections(
+            new ConfigurationBuilder()
+                    .forPackages(packages)
+                    .filterInputsBy(new FilterBuilder().includePackage(packages))
+                    .setScanners(
+                            new SubTypesScanner(),
+                            new TypeAnnotationsScanner()));
+
+    public void main(String[] args) {
+        StreamsPojoHive streamsPojoScala = new StreamsPojoHive();
+        Thread thread = new Thread(streamsPojoScala);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public StreamsPojoHive(StreamsPojoHiveMojo mojo) {
+        this.mojo = mojo;
+        if (    mojo != null &&
+                mojo.getTarget() != null &&
+                !Strings.isNullOrEmpty(mojo.getTarget().getAbsolutePath())
+            )
+            outDir = mojo.getTarget().getAbsolutePath();
+
+        if (    mojo != null &&
+                mojo.getPackages() != null &&
+                mojo.getPackages().length > 0
+            )
+            packages = mojo.getPackages();
+    }
+
+    public StreamsPojoHive() {
+    }
+
+    public void run() {
+
+        List<Class<?>> serializableClasses = detectSerializableClasses();
+
+        LOGGER.info("Detected {} serialiables:", serializableClasses.size());
+        for( Class clazz : serializableClasses )
+            LOGGER.debug(clazz.toString());
+
+        List<Class<?>> pojoClasses = detectPojoClasses(serializableClasses);
+
+        LOGGER.info("Detected {} pojos:", pojoClasses.size());
+        for( Class clazz : pojoClasses ) {
+            LOGGER.debug(clazz.toString());
+
+        }
+
+
+        for( Class clazz : pojoClasses ) {
+            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".hive").replace(".","/")+"/";
+            String pojoName = clazz.getSimpleName()+".hql";
+            String pojoHive = renderPojo(clazz);
+            writeFile(outDir+"/"+pojoPath+pojoName, pojoHive);
+        }
+
+    }
+
+    private void writeFile(String pojoFile, String pojoHive) {
+        try {
+            File path = new File(pojoFile);
+            File dir = path.getParentFile();
+            if( !dir.exists() )
+                dir.mkdirs();
+            Files.write(Paths.get(pojoFile), pojoHive.getBytes(), StandardOpenOption.CREATE_NEW);
+        } catch (Exception e) {
+            LOGGER.error("Write Exception: {}", e);
+        }
+    }
+
+    public List<Class<?>> detectSerializableClasses() {
+
+        Set<Class<? extends Serializable>> classes =
+                reflections.getSubTypesOf(java.io.Serializable.class);
+
+        List<Class<?>> result = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            result.add(clazz);
+        }
+
+        return result;
+    }
+
+    public List<Class<?>> detectPojoClasses(List<Class<?>> classes) {
+
+        List<Class<?>> result = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            try {
+                clazz.newInstance().toString();
+            } catch( Exception e) {}
+            // super-halfass way to know if this is a jsonschema2pojo
+            if( clazz.getAnnotations().length >= 1 )
+                result.add(clazz);
+        }
+
+        return result;
+    }
+
+    public String renderPojo(Class<?> pojoClass) {
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append("CREATE TABLE ");
+        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".hive"));
+        stringBuffer.append(LS);
+        stringBuffer.append("(");
+        stringBuffer.append(LS);
+
+        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
+        appendFields(stringBuffer, fields, "", ",");
+
+        stringBuffer.append(")");
+
+        return stringBuffer.toString();
+    }
+
+    private void appendFields(StringBuffer stringBuffer, Set<Field> fields, String varDef, String fieldDelimiter) {
+        if( fields.size() > 0 ) {
+            stringBuffer.append(LS);
+            Map<String,Field> fieldsToAppend = uniqueFields(fields);
+            for( Iterator<Field> iter = fieldsToAppend.values().iterator(); iter.hasNext(); ) {
+                Field field = iter.next();
+                stringBuffer.append(name(field));
+                stringBuffer.append(": ");
+                stringBuffer.append(type(field));
+                if( iter.hasNext()) stringBuffer.append(fieldDelimiter);
+                stringBuffer.append(LS);
+            }
+        } else {
+            stringBuffer.append(LS);
+        }
+    }
+
+    private String value(Field field) {
+        if( field.getName().equals("verb")) {
+            return "\"post\"";
+        } else if( field.getName().equals("objectType")) {
+            return "\"application\"";
+        } else return null;
+    }
+
+    private String type(Field field) {
+        if( field.getType().equals(java.lang.String.class)) {
+            return "STRING";
+        } else if( field.getType().equals(java.lang.Integer.class)) {
+            return "INT";
+        } else if( field.getType().equals(org.joda.time.DateTime.class)) {
+            return "DATE";
+        }else if( field.getType().equals(java.util.Map.class)) {
+            return "MAP";
+        } else if( field.getType().equals(java.util.List.class)) {
+            return "ARRAY";
+        }
+        return field.getType().getCanonicalName().replace(".pojo.json", ".scala");
+    }
+
+    private Map<String,Field> uniqueFields(Set<Field> fieldset) {
+        Map<String,Field> fields = Maps.newTreeMap();
+        Field item = null;
+        for( Iterator<Field> it = fieldset.iterator(); it.hasNext(); item = it.next() ) {
+            if( item != null && item.getName() != null ) {
+                Field added = fields.put(item.getName(), item);
+            }
+            // ensure right class will get used
+        }
+        return fields;
+    }
+
+    private String name(Field field) {
+        if( field.getName().equals("object"))
+            return "obj";
+        else return field.getName();
+    }
+
+    private boolean override(Field field) {
+        try {
+            if( field.getDeclaringClass().getSuperclass().getField(field.getName()) != null )
+                return true;
+            else return false;
+        } catch( Exception e ) {
+            return false;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/f0a3518e/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHiveMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHiveMojo.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHiveMojo.java
new file mode 100644
index 0000000..a0af5ac
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHiveMojo.java
@@ -0,0 +1,71 @@
+package org.apache.streams.plugins;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Settings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+
+@Mojo(  name = "hive",
+        defaultPhase = LifecyclePhase.GENERATE_SOURCES
+)
+@Execute(   goal = "hive",
+            phase = LifecyclePhase.GENERATE_SOURCES
+)
+public class StreamsPojoHiveMojo extends AbstractMojo {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoHiveMojo.class);
+
+    @Component
+    private MavenProject project;
+
+//    @Component
+//    private Settings settings;
+//
+//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+//    protected ArtifactRepository localRepository;
+//
+//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
+//    private PluginDescriptor plugin;
+//
+    @Parameter( defaultValue = "${project.basedir}", readonly = true )
+    private File basedir;
+
+    @Parameter(defaultValue = "${project.build.directory}", readonly = true)
+    private File target;
+
+    @Parameter(defaultValue = "org.apache.streams.pojo.json", readonly = true)
+    private String[] packages;
+
+    public void execute() throws MojoExecutionException {
+        StreamsPojoHive streamsPojoScala = new StreamsPojoHive(this);
+        Thread thread = new Thread(streamsPojoScala);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public File getTarget() {
+        return target;
+    }
+
+    public String[] getPackages() {
+        return packages;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/f0a3518e/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsPojoHiveTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsPojoHiveTest.java b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsPojoHiveTest.java
new file mode 100644
index 0000000..e5a7abd
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsPojoHiveTest.java
@@ -0,0 +1,55 @@
+package org.apache.streams.plugins.test;
+
+import org.apache.streams.plugins.StreamsPojoHive;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileFilter;
+
+/**
+ * Test that Activity beans are compatible with the example activities in the spec.
+ */
+public class StreamsPojoHiveTest {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoHiveTest.class);
+
+    /**
+     * Tests that all example activities can be loaded into Activity beans
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testStreamsPojoHive() throws Exception {
+        StreamsPojoHive streamsPojoHive = new StreamsPojoHive();
+        streamsPojoHive.main(new String[0]);
+
+        File testOutput = new File( "./target/generated-sources/hive/org/apache/streams/hive");
+        FileFilter hqlFilter = new FileFilter() {
+            @Override
+            public boolean accept(File pathname) {
+                if( pathname.getName().endsWith(".hql") )
+                    return true;
+                return false;
+            }
+        };
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+        assert( testOutput.listFiles(hqlFilter).length == 11 );
+//        assert( new File(testOutput + "/traits").exists() == true );
+//        assert( new File(testOutput + "/traits").isDirectory() == true );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
+//        assert( new File(testOutput + "/objectTypes").exists() == true );
+//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
+//        assert( new File(testOutput + "/verbs").exists() == true );
+//        assert( new File(testOutput + "/verbs").isDirectory() == true );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/f0a3518e/streams-plugins/streams-plugin-hive/src/test/resources/Tweet.hql
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/resources/Tweet.hql b/streams-plugins/streams-plugin-hive/src/test/resources/Tweet.hql
new file mode 100644
index 0000000..dfd3a72
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/resources/Tweet.hql
@@ -0,0 +1,297 @@
+/*
+root
+ |-- contributors: string (nullable = true)
+ |-- coordinates: string (nullable = true)
+ |-- created_at: string (nullable = true)
+ |-- entities: struct (nullable = true)
+ |    |-- hashtags: array (nullable = true)
+ |    |    |-- element: struct (containsNull = true)
+ |    |    |    |-- indices: array (nullable = true)
+ |    |    |    |    |-- element: long (containsNull = true)
+ |    |    |    |-- text: string (nullable = true)
+ |    |-- symbols: array (nullable = true)
+ |    |    |-- element: string (containsNull = true)
+ |    |-- urls: array (nullable = true)
+ |    |    |-- element: struct (containsNull = true)
+ |    |    |    |-- display_url: string (nullable = true)
+ |    |    |    |-- expanded_url: string (nullable = true)
+ |    |    |    |-- indices: array (nullable = true)
+ |    |    |    |    |-- element: long (containsNull = true)
+ |    |    |    |-- url: string (nullable = true)
+ |    |-- user_mentions: array (nullable = true)
+ |    |    |-- element: struct (containsNull = true)
+ |    |    |    |-- id: long (nullable = true)
+ |    |    |    |-- id_str: string (nullable = true)
+ |    |    |    |-- indices: array (nullable = true)
+ |    |    |    |    |-- element: long (containsNull = true)
+ |    |    |    |-- name: string (nullable = true)
+ |    |    |    |-- screen_name: string (nullable = true)
+ |-- favorite_count: long (nullable = true)
+ |-- favorited: boolean (nullable = true)
+ |-- geo: string (nullable = true)
+ |-- id: long (nullable = true)
+ |-- id_str: string (nullable = true)
+ |-- in_reply_to_screen_name: string (nullable = true)
+ |-- in_reply_to_status_id: long (nullable = true)
+ |-- in_reply_to_status_id_str: string (nullable = true)
+ |-- in_reply_to_user_id: long (nullable = true)
+ |-- in_reply_to_user_id_str: string (nullable = true)
+ |-- lang: string (nullable = true)
+ |-- place: struct (nullable = true)
+ |    |-- attributes: struct (nullable = true)
+ |    |-- bounding_box: struct (nullable = true)
+ |    |    |-- coordinates: array (nullable = true)
+ |    |    |    |-- element: array (containsNull = true)
+ |    |    |    |    |-- element: array (containsNull = true)
+ |    |    |    |    |    |-- element: double (containsNull = true)
+ |    |    |-- type: string (nullable = true)
+ |    |-- contained_within: array (nullable = true)
+ |    |    |-- element: string (containsNull = true)
+ |    |-- country: string (nullable = true)
+ |    |-- country_code: string (nullable = true)
+ |    |-- full_name: string (nullable = true)
+ |    |-- id: string (nullable = true)
+ |    |-- name: string (nullable = true)
+ |    |-- place_type: string (nullable = true)
+ |    |-- url: string (nullable = true)
+ |-- possibly_sensitive: boolean (nullable = true)
+ |-- retweet_count: long (nullable = true)
+ |-- retweeted: boolean (nullable = true)
+ |-- retweeted_status: struct (nullable = true)
+ |    |-- contributors: string (nullable = true)
+ |    |-- coordinates: string (nullable = true)
+ |    |-- created_at: string (nullable = true)
+ |    |-- entities: struct (nullable = true)
+ |    |    |-- hashtags: array (nullable = true)
+ |    |    |    |-- element: struct (containsNull = true)
+ |    |    |    |    |-- indices: array (nullable = true)
+ |    |    |    |    |    |-- element: long (containsNull = true)
+ |    |    |    |    |-- text: string (nullable = true)
+ |    |    |-- symbols: array (nullable = true)
+ |    |    |    |-- element: string (containsNull = true)
+ |    |    |-- urls: array (nullable = true)
+ |    |    |    |-- element: struct (containsNull = true)
+ |    |    |    |    |-- display_url: string (nullable = true)
+ |    |    |    |    |-- expanded_url: string (nullable = true)
+ |    |    |    |    |-- indices: array (nullable = true)
+ |    |    |    |    |    |-- element: long (containsNull = true)
+ |    |    |    |    |-- url: string (nullable = true)
+ |    |    |-- user_mentions: array (nullable = true)
+ |    |    |    |-- element: struct (containsNull = true)
+ |    |    |    |    |-- id: long (nullable = true)
+ |    |    |    |    |-- id_str: string (nullable = true)
+ |    |    |    |    |-- indices: array (nullable = true)
+ |    |    |    |    |    |-- element: long (containsNull = true)
+ |    |    |    |    |-- name: string (nullable = true)
+ |    |    |    |    |-- screen_name: string (nullable = true)
+ |    |-- favorite_count: long (nullable = true)
+ |    |-- favorited: boolean (nullable = true)
+ |    |-- geo: string (nullable = true)
+ |    |-- id: long (nullable = true)
+ |    |-- id_str: string (nullable = true)
+ |    |-- in_reply_to_screen_name: string (nullable = true)
+ |    |-- in_reply_to_status_id: string (nullable = true)
+ |    |-- in_reply_to_status_id_str: string (nullable = true)
+ |    |-- in_reply_to_user_id: string (nullable = true)
+ |    |-- in_reply_to_user_id_str: string (nullable = true)
+ |    |-- lang: string (nullable = true)
+ |    |-- place: struct (nullable = true)
+ |    |    |-- attributes: struct (nullable = true)
+ |    |    |-- bounding_box: struct (nullable = true)
+ |    |    |    |-- coordinates: array (nullable = true)
+ |    |    |    |    |-- element: array (containsNull = true)
+ |    |    |    |    |    |-- element: array (containsNull = true)
+ |    |    |    |    |    |    |-- element: double (containsNull = true)
+ |    |    |    |-- type: string (nullable = true)
+ |    |    |-- contained_within: array (nullable = true)
+ |    |    |    |-- element: string (containsNull = true)
+ |    |    |-- country: string (nullable = true)
+ |    |    |-- country_code: string (nullable = true)
+ |    |    |-- full_name: string (nullable = true)
+ |    |    |-- id: string (nullable = true)
+ |    |    |-- name: string (nullable = true)
+ |    |    |-- place_type: string (nullable = true)
+ |    |    |-- url: string (nullable = true)
+ |    |-- possibly_sensitive: boolean (nullable = true)
+ |    |-- retweet_count: long (nullable = true)
+ |    |-- retweeted: boolean (nullable = true)
+ |    |-- source: string (nullable = true)
+ |    |-- text: string (nullable = true)
+ |    |-- truncated: boolean (nullable = true)
+ |    |-- user: struct (nullable = true)
+ |    |    |-- contributors_enabled: boolean (nullable = true)
+ |    |    |-- created_at: string (nullable = true)
+ |    |    |-- default_profile: boolean (nullable = true)
+ |    |    |-- default_profile_image: boolean (nullable = true)
+ |    |    |-- description: string (nullable = true)
+ |    |    |-- entities: struct (nullable = true)
+ |    |    |    |-- description: struct (nullable = true)
+ |    |    |    |    |-- urls: array (nullable = true)
+ |    |    |    |    |    |-- element: struct (containsNull = true)
+ |    |    |    |    |    |    |-- display_url: string (nullable = true)
+ |    |    |    |    |    |    |-- expanded_url: string (nullable = true)
+ |    |    |    |    |    |    |-- indices: array (nullable = true)
+ |    |    |    |    |    |    |    |-- element: long (containsNull = true)
+ |    |    |    |    |    |    |-- url: string (nullable = true)
+ |    |    |    |-- url: struct (nullable = true)
+ |    |    |    |    |-- urls: array (nullable = true)
+ |    |    |    |    |    |-- element: struct (containsNull = true)
+ |    |    |    |    |    |    |-- display_url: string (nullable = true)
+ |    |    |    |    |    |    |-- expanded_url: string (nullable = true)
+ |    |    |    |    |    |    |-- indices: array (nullable = true)
+ |    |    |    |    |    |    |    |-- element: long (containsNull = true)
+ |    |    |    |    |    |    |-- url: string (nullable = true)
+ |    |    |-- favourites_count: long (nullable = true)
+ |    |    |-- follow_request_sent: boolean (nullable = true)
+ |    |    |-- followers_count: long (nullable = true)
+ |    |    |-- following: boolean (nullable = true)
+ |    |    |-- friends_count: long (nullable = true)
+ |    |    |-- geo_enabled: boolean (nullable = true)
+ |    |    |-- id: long (nullable = true)
+ |    |    |-- id_str: string (nullable = true)
+ |    |    |-- is_translation_enabled: boolean (nullable = true)
+ |    |    |-- is_translator: boolean (nullable = true)
+ |    |    |-- lang: string (nullable = true)
+ |    |    |-- listed_count: long (nullable = true)
+ |    |    |-- location: string (nullable = true)
+ |    |    |-- name: string (nullable = true)
+ |    |    |-- notifications: boolean (nullable = true)
+ |    |    |-- profile_background_color: string (nullable = true)
+ |    |    |-- profile_background_image_url: string (nullable = true)
+ |    |    |-- profile_background_image_url_https: string (nullable = true)
+ |    |    |-- profile_background_tile: boolean (nullable = true)
+ |    |    |-- profile_banner_url: string (nullable = true)
+ |    |    |-- profile_image_url: string (nullable = true)
+ |    |    |-- profile_image_url_https: string (nullable = true)
+ |    |    |-- profile_link_color: string (nullable = true)
+ |    |    |-- profile_sidebar_border_color: string (nullable = true)
+ |    |    |-- profile_sidebar_fill_color: string (nullable = true)
+ |    |    |-- profile_text_color: string (nullable = true)
+ |    |    |-- profile_use_background_image: boolean (nullable = true)
+ |    |    |-- protected: boolean (nullable = true)
+ |    |    |-- screen_name: string (nullable = true)
+ |    |    |-- statuses_count: long (nullable = true)
+ |    |    |-- time_zone: string (nullable = true)
+ |    |    |-- url: string (nullable = true)
+ |    |    |-- utc_offset: long (nullable = true)
+ |    |    |-- verified: boolean (nullable = true)
+ |-- source: string (nullable = true)
+ |-- text: string (nullable = true)
+ |-- truncated: boolean (nullable = true)
+ |-- user: struct (nullable = true)
+ |    |-- contributors_enabled: boolean (nullable = true)
+ |    |-- created_at: string (nullable = true)
+ |    |-- default_profile: boolean (nullable = true)
+ |    |-- default_profile_image: boolean (nullable = true)
+ |    |-- description: string (nullable = true)
+ |    |-- entities: struct (nullable = true)
+ |    |    |-- description: struct (nullable = true)
+ |    |    |    |-- urls: array (nullable = true)
+ |    |    |    |    |-- element: string (containsNull = true)
+ |    |    |-- url: struct (nullable = true)
+ |    |    |    |-- urls: array (nullable = true)
+ |    |    |    |    |-- element: struct (containsNull = true)
+ |    |    |    |    |    |-- display_url: string (nullable = true)
+ |    |    |    |    |    |-- expanded_url: string (nullable = true)
+ |    |    |    |    |    |-- indices: array (nullable = true)
+ |    |    |    |    |    |    |-- element: long (containsNull = true)
+ |    |    |    |    |    |-- url: string (nullable = true)
+ |    |-- favourites_count: long (nullable = true)
+ |    |-- follow_request_sent: boolean (nullable = true)
+ |    |-- followers_count: long (nullable = true)
+ |    |-- following: boolean (nullable = true)
+ |    |-- friends_count: long (nullable = true)
+ |    |-- geo_enabled: boolean (nullable = true)
+ |    |-- id: long (nullable = true)
+ |    |-- id_str: string (nullable = true)
+ |    |-- is_translation_enabled: boolean (nullable = true)
+ |    |-- is_translator: boolean (nullable = true)
+ |    |-- lang: string (nullable = true)
+ |    |-- listed_count: long (nullable = true)
+ |    |-- location: string (nullable = true)
+ |    |-- name: string (nullable = true)
+ |    |-- notifications: boolean (nullable = true)
+ |    |-- profile_background_color: string (nullable = true)
+ |    |-- profile_background_image_url: string (nullable = true)
+ |    |-- profile_background_image_url_https: string (nullable = true)
+ |    |-- profile_background_tile: boolean (nullable = true)
+ |    |-- profile_banner_url: string (nullable = true)
+ |    |-- profile_image_url: string (nullable = true)
+ |    |-- profile_image_url_https: string (nullable = true)
+ |    |-- profile_link_color: string (nullable = true)
+ |    |-- profile_sidebar_border_color: string (nullable = true)
+ |    |-- profile_sidebar_fill_color: string (nullable = true)
+ |    |-- profile_text_color: string (nullable = true)
+ |    |-- profile_use_background_image: boolean (nullable = true)
+ |    |-- protected: boolean (nullable = true)
+ |    |-- screen_name: string (nullable = true)
+ |    |-- statuses_count: long (nullable = true)
+ |    |-- time_zone: string (nullable = true)
+ |    |-- url: string (nullable = true)
+ |    |-- utc_offset: long (nullable = true)
+ |    |-- verified: boolean (nullable = true)
+*/
+create table tweet (
+    created_at string,
+    entities struct
+    <
+        hashtags: array
+        <
+            struct
+            <
+                text: string
+            >
+        >,
+        urls: array
+        <
+            struct
+            <
+                expanded_url: string
+            >
+        >,
+        user_mentions: array
+        <
+            struct
+            <
+                id_str: string
+            >
+        >
+    >,
+    in_reply_to_user_id_str: string,
+    user: struct
+    <
+        id_str: string
+    >,
+    retweeted_status struct
+    <
+        entities struct
+        <
+            hashtags: array
+            <
+                struct
+                <
+                    text: string
+                >
+            >,
+            urls: array
+            <
+                struct
+                <
+                    expanded_url: string
+                >
+            >,
+            user_mentions: array
+            <
+                struct
+                <
+                    id_str: string
+                >
+            >
+        >,
+        in_reply_to_user_id_str: string,
+        user: struct
+        <
+            id_str: string
+        >
+    >
+)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/f0a3518e/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml b/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
new file mode 100644
index 0000000..b1de7b8
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
@@ -0,0 +1,42 @@
+<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>
+
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-hive-test</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>jar</packaging>
+    <name>Test StreamsPojoHiveMojo</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.streams.plugins</groupId>
+                <artifactId>streams-plugin-hive</artifactId>
+                <version>0.3-incubating-SNAPSHOT</version>
+                <configuration>
+                    <packages>
+                        <package>org.apache.streams.pojo.json</package>
+                    </packages>
+                    <target>target/test-classes/streams-hive-plugin/</target>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>hive</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file



[19/32] incubator-streams git commit: WIP for apachecon

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/pom.xml b/streams-plugins/streams-plugin-elasticsearch/pom.xml
new file mode 100644
index 0000000..4f0ed4a
--- /dev/null
+++ b/streams-plugins/streams-plugin-elasticsearch/pom.xml
@@ -0,0 +1,245 @@
+<?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
+  ~
+  ~   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>
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-elasticsearch</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>maven-plugin</packaging>
+
+    <parent>
+        <groupId>org.apache.streams</groupId>
+        <artifactId>streams-plugins</artifactId>
+        <version>0.3-incubating-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <properties>
+        <elasticsearch.version>2.3.0</elasticsearch.version>
+        <lucene.version>5.4.0</lucene.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-config</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.reflections</groupId>
+            <artifactId>reflections</artifactId>
+            <version>0.9.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-aether-provider</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>3.3.3</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-compat</artifactId>
+            <version>3.3.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+            <version>3.3.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.sonatype.aether</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <version>2.7</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.maven</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.shared</groupId>
+            <artifactId>maven-verifier</artifactId>
+            <version>1.6</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>3.0.15</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-plugin-plugin</artifactId>
+            <version>3.4</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-api</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-generators</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-testing</groupId>
+            <artifactId>maven-plugin-testing-harness</artifactId>
+            <version>3.3.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+            <version>2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.joda</groupId>
+            <artifactId>joda-convert</artifactId>
+            <version>1.8.1</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <sourceDirectory>src/main/java</sourceDirectory>
+        <testSourceDirectory>src/test/java</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <version>3.4</version>
+                <configuration>
+                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>mojo-descriptor</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>descriptor</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.reflections</groupId>
+                <artifactId>reflections-maven</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>reflections</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.4</version>
+                <executions>
+                    <execution>
+                        <id>resource-dependencies</id>
+                        <phase>process-test-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <includeGroupIds>org.apache.streams</includeGroupIds>
+                            <includeArtifactIds>streams-schemas</includeArtifactIds>
+                            <includes>**/*.json</includes>
+                            <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchGenerationConfig.java b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchGenerationConfig.java
new file mode 100644
index 0000000..ef5b9ef
--- /dev/null
+++ b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchGenerationConfig.java
@@ -0,0 +1,81 @@
+package org.apache.streams.plugins.elasticsearch;
+
+import org.apache.streams.schema.GenerationConfig;
+import org.jsonschema2pojo.DefaultGenerationConfig;
+import org.jsonschema2pojo.util.URLUtil;
+
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Configures StreamsElasticsearchResourceGenerator
+ *
+ *
+ */
+public class StreamsElasticsearchGenerationConfig extends DefaultGenerationConfig implements GenerationConfig {
+
+    public String getSourceDirectory() {
+        return sourceDirectory;
+    }
+
+    public List<String> getSourcePaths() {
+        return sourcePaths;
+    }
+
+    private String sourceDirectory;
+    private List<String> sourcePaths = new ArrayList<String>();
+    private String targetDirectory;
+    private int maxDepth = 1;
+
+    public Set<String> getExclusions() {
+        return exclusions;
+    }
+
+    public void setExclusions(Set<String> exclusions) {
+        this.exclusions = exclusions;
+    }
+
+    private Set<String> exclusions = new HashSet<String>();
+
+    public int getMaxDepth() {
+        return maxDepth;
+    }
+
+    public void setSourceDirectory(String sourceDirectory) {
+        this.sourceDirectory = sourceDirectory;
+    }
+
+    public void setSourcePaths(List<String> sourcePaths) {
+        this.sourcePaths = sourcePaths;
+    }
+
+    public void setTargetDirectory(String targetDirectory) {
+        this.targetDirectory = targetDirectory;
+    }
+
+    public File getTargetDirectory() {
+        return new File(targetDirectory);
+    }
+
+    public Iterator<URL> getSource() {
+        if (null != sourceDirectory) {
+            return Collections.singleton(URLUtil.parseURL(sourceDirectory)).iterator();
+        }
+        List<URL> sourceURLs = new ArrayList<URL>();
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            for (String source : sourcePaths) {
+                sourceURLs.add(URLUtil.parseURL(source));
+            }
+        return sourceURLs.iterator();
+    }
+
+    public void setMaxDepth(int maxDepth) {
+        this.maxDepth = maxDepth;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGenerator.java b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGenerator.java
new file mode 100644
index 0000000..0f506ca
--- /dev/null
+++ b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGenerator.java
@@ -0,0 +1,373 @@
+package org.apache.streams.plugins.elasticsearch;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.base.Joiner;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+import org.apache.streams.schema.FieldType;
+import org.apache.streams.schema.FieldUtil;
+import org.apache.streams.schema.GenerationConfig;
+import org.apache.streams.schema.Schema;
+import org.apache.streams.schema.SchemaStore;
+import org.jsonschema2pojo.util.URLUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.streams.schema.FileUtil.dropExtension;
+import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.schema.FileUtil.resolveRecursive;
+import static org.apache.streams.schema.FileUtil.writeFile;
+
+/**
+ * Created by sblackmon on 5/3/16.
+ */
+public class StreamsElasticsearchResourceGenerator implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsElasticsearchResourceGenerator.class);
+
+    private final static String LS = System.getProperty("line.separator");
+
+    private StreamsElasticsearchGenerationConfig config;
+
+    private SchemaStore schemaStore = new SchemaStore();
+
+    private int currentDepth = 0;
+
+    public void main(String[] args) {
+        StreamsElasticsearchGenerationConfig config = new StreamsElasticsearchGenerationConfig();
+
+        String sourceDirectory = "target/test-classes/activities";
+        String targetDirectory = "target/generated-resources/streams-plugin-elasticsearch";
+
+        if( args.length > 0 )
+            sourceDirectory = args[0];
+        if( args.length > 1 )
+            targetDirectory = args[1];
+
+        config.setSourceDirectory(sourceDirectory);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsElasticsearchResourceGenerator StreamsElasticsearchResourceGenerator = new StreamsElasticsearchResourceGenerator(config);
+        Thread thread = new Thread(StreamsElasticsearchResourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public StreamsElasticsearchResourceGenerator(StreamsElasticsearchGenerationConfig config) {
+        this.config = config;
+    }
+
+    public void run() {
+
+        checkNotNull(config);
+
+        generate(config);
+
+    }
+
+    public void generate(StreamsElasticsearchGenerationConfig config) {
+
+        LinkedList<File> sourceFiles = new LinkedList<File>();
+
+        for (Iterator<URL> sources = config.getSource(); sources.hasNext();) {
+            URL source = sources.next();
+            sourceFiles.add(URLUtil.getFileFromURL(source));
+        }
+
+        LOGGER.info("Seeded with {} source paths:", sourceFiles.size());
+
+        resolveRecursive((GenerationConfig)config, sourceFiles);
+
+        LOGGER.info("Resolved {} schema files:", sourceFiles.size());
+
+        for (Iterator<File> iterator = sourceFiles.iterator(); iterator.hasNext();) {
+            File item = iterator.next();
+            schemaStore.create(item.toURI());
+        }
+
+        LOGGER.info("Identified {} objects:", schemaStore.getSize());
+
+        String outputFile = config.getTargetDirectory() + "/" + "types.cql";
+        StringBuilder typesContent = new StringBuilder();
+
+        for (Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator(); schemaIterator.hasNext(); ) {
+            Schema schema = schemaIterator.next();
+            currentDepth = 0;
+            if( schema.getURI().getScheme().equals("file")) {
+                String inputFile = schema.getURI().getPath();
+                String resourcePath = dropSourcePathPrefix(inputFile, config.getSourceDirectory());
+                for (String sourcePath : config.getSourcePaths()) {
+                    resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
+                }
+
+                LOGGER.info("Processing {}:", resourcePath);
+
+                String resourceId = schemaSymbol(schema);
+
+                String resourceContent = generateResource(schema, resourceId);
+
+                typesContent.append(resourceContent);
+
+                LOGGER.info("Added {}:", resourceId);
+            }
+        }
+
+        writeFile(outputFile, typesContent.toString());
+
+    }
+
+    public String generateResource(Schema schema, String resourceId) {
+        StringBuilder resourceBuilder = new StringBuilder();
+        resourceBuilder.append("CREATE TYPE ");
+        resourceBuilder.append(resourceId);
+        resourceBuilder.append(" IF NOT EXISTS (");
+        resourceBuilder.append(LS);
+        resourceBuilder = appendRootObject(resourceBuilder, schema, resourceId, ' ');
+        resourceBuilder.append(");");
+        resourceBuilder.append(LS);
+        return resourceBuilder.toString();
+    }
+
+    public StringBuilder appendRootObject(StringBuilder builder, Schema schema, String resourceId, Character seperator) {
+        ObjectNode propertiesNode = schemaStore.resolveProperties(schema, null, resourceId);
+        if( propertiesNode.get("id") != null ) {
+            builder.append("id text PRIMARY KEY,");
+            builder.append(LS);
+            propertiesNode.remove("id");
+        }
+        if( propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0) {
+            builder = appendPropertiesNode(builder, schema, propertiesNode, seperator);
+        }
+        return builder;
+    }
+
+    private StringBuilder appendValueField(StringBuilder builder, Schema schema, String fieldId, FieldType fieldType, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        builder.append(cqlEscape(fieldId));
+        builder.append(seperator);
+        builder.append(cqlType(fieldType));
+        return builder;
+    }
+
+    public StringBuilder appendArrayItems(StringBuilder builder, Schema schema, String fieldId, ObjectNode itemsNode, Character seperator) {
+        // not safe to append nothing
+        checkNotNull(builder);
+        if( itemsNode == null ) return builder;
+        if( itemsNode.has("type")) {
+            try {
+                FieldType itemType = FieldUtil.determineFieldType(itemsNode);
+                switch( itemType ) {
+                    case OBJECT:
+                        Schema objectSchema = null;
+                        URI parentURI = null;
+                        if( itemsNode.has("$ref") || itemsNode.has("extends") ) {
+                            JsonNode refNode = itemsNode.get("$ref");
+                            JsonNode extendsNode = itemsNode.get("extends");
+                            if (refNode != null && refNode.isValueNode())
+                                parentURI = URI.create(refNode.asText());
+                            else if (extendsNode != null && extendsNode.isObject())
+                                parentURI = URI.create(extendsNode.get("$ref").asText());
+                            URI absoluteURI;
+                            if (parentURI.isAbsolute())
+                                absoluteURI = parentURI;
+                            else {
+                                absoluteURI = schema.getURI().resolve(parentURI);
+                                if (!absoluteURI.isAbsolute() || (absoluteURI.isAbsolute() && !schemaStore.getByUri(absoluteURI).isPresent() ))
+                                    absoluteURI = schema.getParentURI().resolve(parentURI);
+                            }
+                            if (absoluteURI != null && absoluteURI.isAbsolute()) {
+                                Optional<Schema> schemaLookup = schemaStore.getByUri(absoluteURI);
+                                if (schemaLookup.isPresent()) {
+                                    objectSchema = schemaLookup.get();
+                                }
+                            }
+                        }
+                        // have to resolve schema here
+
+                        builder = appendArrayObject(builder, objectSchema, fieldId, seperator);
+                        break;
+                    case ARRAY:
+                        ObjectNode subArrayItems = (ObjectNode) itemsNode.get("items");
+                        builder = appendArrayItems(builder, schema, fieldId, subArrayItems, seperator);
+                        break;
+                    default:
+                        builder = appendArrayField(builder, schema, fieldId, itemType, seperator);
+                }
+            } catch (Exception e) {
+                LOGGER.warn("No item type resolvable for {}", fieldId);
+            }
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendArrayField(StringBuilder builder, Schema schema, String fieldId, FieldType fieldType, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        checkNotNull(fieldId);
+        builder.append(cqlEscape(fieldId));
+        builder.append(seperator);
+        builder.append("list<"+cqlType(fieldType)+">");
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendArrayObject(StringBuilder builder, Schema schema, String fieldId, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        String schemaSymbol = schemaSymbol(schema);
+        if( !Strings.isNullOrEmpty(fieldId) && schemaSymbol != null ) {
+            builder.append(cqlEscape(fieldId));
+            builder.append(seperator);
+            builder.append("list<" + schemaSymbol + ">");
+            builder.append(LS);
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendSchemaField(StringBuilder builder, Schema schema, String fieldId, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        String schemaSymbol = schemaSymbol(schema);
+        if( !Strings.isNullOrEmpty(fieldId) && schemaSymbol != null ) {
+            builder.append(cqlEscape(fieldId));
+            builder.append(seperator);
+            builder.append(schemaSymbol);
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    /*
+     can this be moved to streams-schemas if schemastore available in scope?
+     maybe an interface?
+     lot of boilerplate / reuse between plugins
+     however treatment is way different when resolving a type symbol vs resolving and listing fields .
+     */
+    private StringBuilder appendPropertiesNode(StringBuilder builder, Schema schema, ObjectNode propertiesNode, Character seperator) {
+        checkNotNull(builder);
+        checkNotNull(propertiesNode);
+        Iterator<Map.Entry<String, JsonNode>> fields = propertiesNode.fields();
+        Joiner joiner = Joiner.on(","+LS).skipNulls();
+        List<String> fieldStrings = Lists.newArrayList();
+        for( ; fields.hasNext(); ) {
+            Map.Entry<String, JsonNode> field = fields.next();
+            String fieldId = field.getKey();
+            if( !config.getExclusions().contains(fieldId) && field.getValue().isObject()) {
+                ObjectNode fieldNode = (ObjectNode) field.getValue();
+                FieldType fieldType = FieldUtil.determineFieldType(fieldNode);
+                if (fieldType != null ) {
+                    switch (fieldType) {
+                        case ARRAY:
+                            ObjectNode itemsNode = (ObjectNode) fieldNode.get("items");
+                            if( currentDepth <= config.getMaxDepth()) {
+                                StringBuilder arrayItemsBuilder = appendArrayItems(new StringBuilder(), schema, fieldId, itemsNode, seperator);
+                                if( !Strings.isNullOrEmpty(arrayItemsBuilder.toString())) {
+                                    fieldStrings.add(arrayItemsBuilder.toString());
+                                }
+                            }
+                            break;
+                        case OBJECT:
+                            Schema objectSchema = null;
+                            URI parentURI = null;
+                            if( fieldNode.has("$ref") || fieldNode.has("extends") ) {
+                                JsonNode refNode = fieldNode.get("$ref");
+                                JsonNode extendsNode = fieldNode.get("extends");
+                                if (refNode != null && refNode.isValueNode())
+                                    parentURI = URI.create(refNode.asText());
+                                else if (extendsNode != null && extendsNode.isObject())
+                                    parentURI = URI.create(extendsNode.get("$ref").asText());
+                                URI absoluteURI;
+                                if (parentURI.isAbsolute())
+                                    absoluteURI = parentURI;
+                                else {
+                                    absoluteURI = schema.getURI().resolve(parentURI);
+                                    if (!absoluteURI.isAbsolute() || (absoluteURI.isAbsolute() && !schemaStore.getByUri(absoluteURI).isPresent() ))
+                                        absoluteURI = schema.getParentURI().resolve(parentURI);
+                                }
+                                if (absoluteURI != null && absoluteURI.isAbsolute()) {
+                                    Optional<Schema> schemaLookup = schemaStore.getByUri(absoluteURI);
+                                    if (schemaLookup.isPresent()) {
+                                        objectSchema = schemaLookup.get();
+                                    }
+                                }
+                            }
+                            //ObjectNode childProperties = schemaStore.resolveProperties(schema, fieldNode, fieldId);
+                            if( currentDepth < config.getMaxDepth()) {
+                                StringBuilder structFieldBuilder = appendSchemaField(new StringBuilder(), objectSchema, fieldId, seperator);
+                                if( !Strings.isNullOrEmpty(structFieldBuilder.toString())) {
+                                    fieldStrings.add(structFieldBuilder.toString());
+                                }
+                            }
+                            break;
+                        default:
+                            StringBuilder valueFieldBuilder = appendValueField(new StringBuilder(), schema, fieldId, fieldType, seperator);
+                            if( !Strings.isNullOrEmpty(valueFieldBuilder.toString())) {
+                                fieldStrings.add(valueFieldBuilder.toString());
+                            }
+                    }
+                }
+            }
+        }
+        builder.append(joiner.join(fieldStrings)).append(LS);
+        Preconditions.checkNotNull(builder);
+        return builder;
+    }
+
+    private static String cqlEscape( String fieldId ) {
+        return "`"+fieldId+"`";
+    }
+
+    private static String cqlType( FieldType fieldType ) {
+        switch( fieldType ) {
+            case STRING:
+                return "text";
+            case INTEGER:
+                return "int";
+            case NUMBER:
+                return "double";
+            case OBJECT:
+                return "tuple";
+            case ARRAY:
+                return "list";
+            default:
+                return fieldType.name().toUpperCase();
+        }
+    }
+
+    private String schemaSymbol( Schema schema ) {
+        if (schema == null) return null;
+        // this needs to return whatever
+        if (schema.getURI().getScheme().equals("file")) {
+            String inputFile = schema.getURI().getPath();
+            String resourcePath = dropSourcePathPrefix(inputFile, config.getSourceDirectory());
+            for (String sourcePath : config.getSourcePaths()) {
+                resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
+            }
+            return dropExtension(resourcePath).replace("/", "_");
+        } else {
+            return "IDK";
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGeneratorMojo.java b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGeneratorMojo.java
new file mode 100644
index 0000000..6969051
--- /dev/null
+++ b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGeneratorMojo.java
@@ -0,0 +1,93 @@
+package org.apache.streams.plugins.elasticsearch;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.List;
+
+@Mojo(  name = "elasticsearch",
+        defaultPhase = LifecyclePhase.GENERATE_RESOURCES
+)
+@Execute(   goal = "elasticsearch",
+            phase = LifecyclePhase.GENERATE_RESOURCES
+)
+public class StreamsElasticsearchResourceGeneratorMojo extends AbstractMojo {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsElasticsearchResourceGeneratorMojo.class);
+
+    private volatile MojoFailureException mojoFailureException;
+
+    @Component
+    private MavenProject project;
+
+//    @Component
+//    private Settings settings;
+//
+//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+//    protected ArtifactRepository localRepository;
+//
+//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
+//    private PluginDescriptor plugin;
+//
+    @Parameter( defaultValue = "${project.basedir}", readonly = true )
+    private File basedir;
+
+    @Parameter( defaultValue = "src/main/jsonschema", readonly = true ) // Maven 3 only
+    public String sourceDirectory;
+
+    @Parameter( readonly = true ) // Maven 3 only
+    public List<String> sourcePaths;
+
+    @Parameter(defaultValue = "./target/generated-resources/streams-plugin-elasticsearch", readonly = true)
+    public String targetDirectory;
+
+    public void execute() throws MojoExecutionException, MojoFailureException {
+
+        //addProjectDependenciesToClasspath();
+
+        StreamsElasticsearchGenerationConfig config = new StreamsElasticsearchGenerationConfig();
+
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            config.setSourcePaths(sourcePaths);
+        else
+            config.setSourceDirectory(sourceDirectory);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsElasticsearchResourceGenerator streamsElasticsearchResourceGenerator = new StreamsElasticsearchResourceGenerator(config);
+
+        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
+            public void uncaughtException(Thread th, Throwable ex) {
+                LOGGER.error("Exception", ex);
+                mojoFailureException = new MojoFailureException("Exception", ex);
+            }
+        };
+        Thread.setDefaultUncaughtExceptionHandler(h);
+        Thread thread = new Thread(streamsElasticsearchResourceGenerator);
+        thread.setUncaughtExceptionHandler(h);
+        try {
+            thread.start();
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+            mojoFailureException = new MojoFailureException("Exception", e);
+        }
+
+        if( mojoFailureException != null )
+            throw mojoFailureException;
+
+        return;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-elasticsearch/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/site/markdown/index.md b/streams-plugins/streams-plugin-elasticsearch/src/site/markdown/index.md
new file mode 100644
index 0000000..9e80a3e
--- /dev/null
+++ b/streams-plugins/streams-plugin-elasticsearch/src/site/markdown/index.md
@@ -0,0 +1,22 @@
+org.apache.streams.plugins:streams-plugin-elasticsearch
+=======================================================
+
+streams-plugin-elasticsearch generates resources from json schemas to assist with indexing of json data using Elasticsearch.
+
+#### Usage
+
+Run within a module containing a src/main/jsonschema directory
+
+    mvn org.apache.streams.plugins:streams-plugin-elasticsearch:0.3-incubating-SNAPSHOT:elasticsearch
+
+Output will be placed in target/generated-resources/elasticsearch by default
+
+#### Example
+
+[streams-plugin-elasticsearch/pom.xml](streams-plugin-elasticsearch/pom.xml "streams-plugin-elasticsearch/pom.xml")
+
+#### Documentation
+
+[JavaDocs](apidocs/index.html "JavaDocs")
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorMojoTest.java
new file mode 100644
index 0000000..72f4675
--- /dev/null
+++ b/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorMojoTest.java
@@ -0,0 +1,50 @@
+package org.apache.streams.plugins.elasticsearch.test;
+
+import com.google.common.collect.Lists;
+import junit.framework.TestCase;
+import org.apache.maven.it.Verifier;
+import org.apache.maven.it.util.ResourceExtractor;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests that streams-plugin-hive running via maven generates hql resources
+ */
+public class StreamsElasticsearchResourceGeneratorMojoTest extends TestCase {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsElasticsearchResourceGeneratorMojoTest.class);
+
+    protected void setUp() throws Exception
+    {
+        // required for mojo lookups to work
+        super.setUp();
+    }
+
+
+    @Test
+    public void testStreamsElasticsearchResourceGeneratorMojo() throws Exception {
+
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/streams-plugin-elasticsearch" );
+
+        Verifier verifier;
+
+        verifier = new Verifier( testDir.getAbsolutePath() );
+
+        List cliOptions = new ArrayList();
+        cliOptions.add( "-N" );
+        verifier.executeGoals( Lists.<String>newArrayList(
+                "clean",
+                "dependency:unpack-dependencies",
+                "generate-resources"));
+
+        verifier.verifyErrorFreeLog();
+
+        verifier.resetStreams();
+
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorTest.java b/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorTest.java
new file mode 100644
index 0000000..20bb561
--- /dev/null
+++ b/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorTest.java
@@ -0,0 +1,139 @@
+package org.apache.streams.plugins.elasticsearch.test;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.google.common.io.Files;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.streams.plugins.elasticsearch.StreamsElasticsearchGenerationConfig;
+import org.apache.streams.plugins.elasticsearch.StreamsElasticsearchResourceGenerator;
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.annotation.Nullable;
+import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collection;
+import java.util.Iterator;
+
+import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+
+/**
+ * Test that Elasticsearch resources are generated.
+ */
+public class StreamsElasticsearchResourceGeneratorTest {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsElasticsearchResourceGeneratorTest.class);
+
+    /**
+     * Test that Elasticsearch resources are generated
+     *
+     * @throws Exception
+     */
+    @Test
+    public void StreamsElasticsearchResourceGenerator() throws Exception {
+
+        StreamsElasticsearchGenerationConfig config = new StreamsElasticsearchGenerationConfig();
+
+        String sourceDirectory = "target/test-classes/streams-schemas";
+
+        config.setSourceDirectory(sourceDirectory);
+
+        config.setTargetDirectory("target/generated-sources/test");
+
+        config.setExclusions(Sets.newHashSet("attachments"));
+
+        config.setMaxDepth(2);
+
+        StreamsElasticsearchResourceGenerator streamsElasticsearchResourceGenerator = new StreamsElasticsearchResourceGenerator(config);
+        Thread thread = new Thread(streamsElasticsearchResourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+
+        File testOutput = new File( "./target/generated-sources/test");
+        Predicate<File> jsonFilter = new Predicate<File>() {
+            @Override
+            public boolean apply(@Nullable File file) {
+                if( file.getName().endsWith(".json") )
+                    return true;
+                else return false;
+            }
+        };
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(jsonFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+
+        String expectedDirectory = "target/test-classes/expected";
+        File testExpected = new File( expectedDirectory );
+
+        Iterable<File> expectedIterator = Files.fileTreeTraverser().breadthFirstTraversal(testExpected)
+                .filter(jsonFilter);
+        Collection<File> expectedCollection = Lists.newArrayList(expectedIterator);
+
+        int fails = 0;
+
+        Iterator<File> iterator = expectedCollection.iterator();
+        while( iterator.hasNext() ) {
+            File objectExpected = iterator.next();
+            String expectedEnd = dropSourcePathPrefix(objectExpected.getAbsolutePath(),  expectedDirectory);
+            File objectActual = new File(config.getTargetDirectory() + "/" + expectedEnd);
+            LOGGER.info("Comparing: {} and {}", objectExpected.getAbsolutePath(), objectActual.getAbsolutePath());
+            assert( objectActual.exists());
+            if( FileUtils.contentEquals(objectActual, objectExpected) == true ) {
+                LOGGER.info("Exact Match!");
+            } else {
+                LOGGER.info("No Match!");
+                fails++;
+            }
+        }
+        if( fails > 0 ) {
+            LOGGER.info("Fails: {}", fails);
+            Assert.fail();
+        }
+
+//        String expectedDirectory = "target/test-classes/expected";
+//        File testExpected = new File( expectedDirectory );
+//
+//        Iterable<File> expectedIterator = Files.fileTreeTraverser().breadthFirstTraversal(testExpected)
+//                .filter(cqlFilter);
+//        Collection<File> expectedCollection = Lists.newArrayList(expectedIterator);
+//
+//        int fails = 0;
+//
+//        Iterator<File> iterator = expectedCollection.iterator();
+//        while( iterator.hasNext() ) {
+//            File objectExpected = iterator.next();
+//            String expectedEnd = dropSourcePathPrefix(objectExpected.getAbsolutePath(),  expectedDirectory);
+//            File objectActual = new File(config.getTargetDirectory() + "/" + expectedEnd);
+//            LOGGER.info("Comparing: {} and {}", objectExpected.getAbsolutePath(), objectActual.getAbsolutePath());
+//            assert( objectActual.exists());
+//            if( FileUtils.contentEquals(objectActual, objectExpected) == true ) {
+//                LOGGER.info("Exact Match!");
+//            } else {
+//                LOGGER.info("No Match!");
+//                fails++;
+//            }
+//        }
+//        if( fails > 0 ) {
+//            LOGGER.info("Fails: {}", fails);
+//            Assert.fail();
+//        }
+
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-elasticsearch/src/test/resources/streams-plugin-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/test/resources/streams-plugin-elasticsearch/pom.xml b/streams-plugins/streams-plugin-elasticsearch/src/test/resources/streams-plugin-elasticsearch/pom.xml
new file mode 100644
index 0000000..2aaa037
--- /dev/null
+++ b/streams-plugins/streams-plugin-elasticsearch/src/test/resources/streams-plugin-elasticsearch/pom.xml
@@ -0,0 +1,75 @@
+<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>
+
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-elasticsearch-test</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>jar</packaging>
+    <name>Test StreamsElasticsearchResourceGeneratorMojo</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.streams.plugins</groupId>
+                <artifactId>streams-plugin-elasticsearch</artifactId>
+                <version>0.3-incubating-SNAPSHOT</version>
+                <configuration>
+                    <sourcePaths>
+                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                    </sourcePaths>
+                    <targetDirectory>target/generated-resources/test-mojo</targetDirectory>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>elasticsearch</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.10</version>
+                <configuration>
+                    <includes>**/*.json</includes>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <includeGroupIds>org.apache.streams</includeGroupIds>
+                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeTypes>jar,test-jar</includeTypes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>unpack-schemas</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hbase/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/pom.xml b/streams-plugins/streams-plugin-hbase/pom.xml
new file mode 100644
index 0000000..94a0115
--- /dev/null
+++ b/streams-plugins/streams-plugin-hbase/pom.xml
@@ -0,0 +1,244 @@
+<?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
+  ~
+  ~   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>
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-hbase</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>maven-plugin</packaging>
+
+    <parent>
+        <groupId>org.apache.streams</groupId>
+        <artifactId>streams-plugins</artifactId>
+        <version>0.3-incubating-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <properties>
+        <hbase.version>3.0</hbase.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-config</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.reflections</groupId>
+            <artifactId>reflections</artifactId>
+            <version>0.9.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-aether-provider</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>3.3.3</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-compat</artifactId>
+            <version>3.3.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+            <version>3.3.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.sonatype.aether</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.shared</groupId>
+            <artifactId>maven-verifier</artifactId>
+            <version>1.6</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <version>2.7</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.maven</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>3.0.15</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-plugin-plugin</artifactId>
+            <version>3.4</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-api</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-generators</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-testing</groupId>
+            <artifactId>maven-plugin-testing-harness</artifactId>
+            <version>3.3.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+            <version>2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.joda</groupId>
+            <artifactId>joda-convert</artifactId>
+            <version>1.8.1</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <sourceDirectory>src/main/java</sourceDirectory>
+        <testSourceDirectory>src/test/java</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <version>3.4</version>
+                <configuration>
+                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>mojo-descriptor</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>descriptor</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.reflections</groupId>
+                <artifactId>reflections-maven</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>reflections</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.4</version>
+                <executions>
+                    <execution>
+                        <id>resource-dependencies</id>
+                        <phase>process-test-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <includeGroupIds>org.apache.streams</includeGroupIds>
+                            <includeArtifactIds>streams-schemas</includeArtifactIds>
+                            <includes>**/*.json</includes>
+                            <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseGenerationConfig.java b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseGenerationConfig.java
new file mode 100644
index 0000000..2612ec2
--- /dev/null
+++ b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseGenerationConfig.java
@@ -0,0 +1,90 @@
+package org.apache.streams.plugins.hbase;
+
+import org.apache.streams.schema.GenerationConfig;
+import org.jsonschema2pojo.DefaultGenerationConfig;
+import org.jsonschema2pojo.util.URLUtil;
+
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Configures StreamsHiveResourceGenerator
+ *
+ *
+ */
+public class StreamsHbaseGenerationConfig extends DefaultGenerationConfig implements GenerationConfig {
+
+    public String getSourceDirectory() {
+        return sourceDirectory;
+    }
+
+    public List<String> getSourcePaths() {
+        return sourcePaths;
+    }
+
+    private String columnFamily;
+    private String sourceDirectory;
+    private List<String> sourcePaths = new ArrayList<String>();
+    private String targetDirectory;
+    private int maxDepth = 1;
+
+    public Set<String> getExclusions() {
+        return exclusions;
+    }
+
+    public void setExclusions(Set<String> exclusions) {
+        this.exclusions = exclusions;
+    }
+
+    private Set<String> exclusions = new HashSet<String>();
+
+    public int getMaxDepth() {
+        return maxDepth;
+    }
+
+    public void setSourceDirectory(String sourceDirectory) {
+        this.sourceDirectory = sourceDirectory;
+    }
+
+    public void setSourcePaths(List<String> sourcePaths) {
+        this.sourcePaths = sourcePaths;
+    }
+
+    public void setTargetDirectory(String targetDirectory) {
+        this.targetDirectory = targetDirectory;
+    }
+
+    public File getTargetDirectory() {
+        return new File(targetDirectory);
+    }
+
+    public Iterator<URL> getSource() {
+        if (null != sourceDirectory) {
+            return Collections.singleton(URLUtil.parseURL(sourceDirectory)).iterator();
+        }
+        List<URL> sourceURLs = new ArrayList<URL>();
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            for (String source : sourcePaths) {
+                sourceURLs.add(URLUtil.parseURL(source));
+            }
+        return sourceURLs.iterator();
+    }
+
+    public void setMaxDepth(int maxDepth) {
+        this.maxDepth = maxDepth;
+    }
+
+    public String getColumnFamily() {
+        return columnFamily;
+    }
+
+    public void setColumnFamily(String columnFamily) {
+        this.columnFamily = columnFamily;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGenerator.java b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGenerator.java
new file mode 100644
index 0000000..649bdd9
--- /dev/null
+++ b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGenerator.java
@@ -0,0 +1,204 @@
+package org.apache.streams.plugins.hbase;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.base.Joiner;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+import org.apache.streams.schema.FieldType;
+import org.apache.streams.schema.FieldUtil;
+import org.apache.streams.schema.GenerationConfig;
+import org.apache.streams.schema.Schema;
+import org.apache.streams.schema.SchemaStore;
+import org.jsonschema2pojo.util.URLUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.streams.schema.FileUtil.dropExtension;
+import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.schema.FileUtil.resolveRecursive;
+import static org.apache.streams.schema.FileUtil.swapExtension;
+import static org.apache.streams.schema.FileUtil.writeFile;
+
+/**
+ * Created by sblackmon on 5/3/16.
+ */
+public class StreamsHbaseResourceGenerator implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHbaseResourceGenerator.class);
+
+    private final static String LS = System.getProperty("line.separator");
+
+    private StreamsHbaseGenerationConfig config;
+
+    private SchemaStore schemaStore = new SchemaStore();
+
+    private int currentDepth = 0;
+
+    public static void main(String[] args) {
+        StreamsHbaseGenerationConfig config = new StreamsHbaseGenerationConfig();
+
+        String sourceDirectory = "./target/test-classes/activities";
+        String targetDirectory = "./target/generated-resources/hbase";
+
+        if( args.length > 0 )
+            sourceDirectory = args[0];
+        if( args.length > 1 )
+            targetDirectory = args[1];
+
+        config.setSourceDirectory(sourceDirectory);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsHbaseResourceGenerator StreamsHbaseResourceGenerator = new StreamsHbaseResourceGenerator(config);
+        Thread thread = new Thread(StreamsHbaseResourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public StreamsHbaseResourceGenerator(StreamsHbaseGenerationConfig config) {
+        this.config = config;
+    }
+
+    public void run() {
+
+        checkNotNull(config);
+
+        generate(config);
+
+    }
+
+    public void generate(StreamsHbaseGenerationConfig config) {
+
+        LinkedList<File> sourceFiles = new LinkedList<File>();
+
+        for (Iterator<URL> sources = config.getSource(); sources.hasNext();) {
+            URL source = sources.next();
+            sourceFiles.add(URLUtil.getFileFromURL(source));
+        }
+
+        LOGGER.info("Seeded with {} source paths:", sourceFiles.size());
+
+        resolveRecursive((GenerationConfig)config, sourceFiles);
+
+        LOGGER.info("Resolved {} schema files:", sourceFiles.size());
+
+        for (Iterator<File> iterator = sourceFiles.iterator(); iterator.hasNext();) {
+            File item = iterator.next();
+            schemaStore.create(item.toURI());
+        }
+
+        LOGGER.info("Identified {} objects:", schemaStore.getSize());
+
+        for (Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator(); schemaIterator.hasNext(); ) {
+            Schema schema = schemaIterator.next();
+            currentDepth = 0;
+            if( schema.getURI().getScheme().equals("file")) {
+                String inputFile = schema.getURI().getPath();
+                String resourcePath = dropSourcePathPrefix(inputFile, config.getSourceDirectory());
+                for (String sourcePath : config.getSourcePaths()) {
+                    resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
+                }
+                String outputFile = config.getTargetDirectory() + "/" + swapExtension(resourcePath, "json", "txt");
+
+                LOGGER.info("Processing {}:", resourcePath);
+
+                String resourceId = dropExtension(resourcePath).replace("/", "_");
+
+                String resourceContent = generateResource(schema, resourceId);
+
+                writeFile(outputFile, resourceContent);
+
+                LOGGER.info("Wrote {}:", outputFile);
+            }
+        }
+
+    }
+
+    public String generateResource(Schema schema, String resourceId) {
+        StringBuilder resourceBuilder = new StringBuilder();
+        resourceBuilder.append("CREATE ");
+        resourceBuilder = appendRootObject(resourceBuilder, schema, resourceId);
+        return resourceBuilder.toString();
+    }
+
+    public StringBuilder appendRootObject(StringBuilder builder, Schema schema, String resourceId) {
+        checkNotNull(builder);
+        ObjectNode propertiesNode = schemaStore.resolveProperties(schema, null, resourceId);
+        if( propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0) {
+
+            List<String> fieldStrings = Lists.newArrayList();
+
+            // table
+            fieldStrings.add(hbaseEscape(schemaSymbol(schema)));
+
+            // column family
+            fieldStrings.add(hbaseEscape(schemaSymbol(schema)));
+
+            // parent column family
+            if( schema.getParent() != null )
+                fieldStrings.add(hbaseEscape(schemaSymbol(schema.getParent())));
+
+            // sub-object column families
+            if( propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0 ) {
+
+                Iterator<Map.Entry<String, JsonNode>> fields = propertiesNode.fields();
+                Joiner joiner = Joiner.on(", ").skipNulls();
+                for( ; fields.hasNext(); ) {
+                    Map.Entry<String, JsonNode> field = fields.next();
+                    String fieldId = field.getKey();
+                    if( !config.getExclusions().contains(fieldId) && field.getValue().isObject()) {
+                        ObjectNode fieldNode = (ObjectNode) field.getValue();
+                        FieldType fieldType = FieldUtil.determineFieldType(fieldNode);
+                        if (fieldType != null ) {
+                            switch (fieldType) {
+                                case OBJECT:
+                                    fieldStrings.add(hbaseEscape(fieldId));
+                            }
+                        }
+                    }
+                }
+                builder.append(joiner.join(fieldStrings));
+
+            }
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private static String hbaseEscape( String fieldId ) {
+        return "'"+fieldId+"'";
+    }
+
+    private String schemaSymbol( Schema schema ) {
+        if (schema == null) return null;
+        if (schema.getURI().getScheme().equals("file")) {
+            String inputFile = schema.getURI().getPath();
+            String resourcePath = dropSourcePathPrefix(inputFile, config.getSourceDirectory());
+            for (String sourcePath : config.getSourcePaths()) {
+                resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
+            }
+            return dropExtension(resourcePath).replace("/", "_");
+        } else {
+            return "IDK";
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGeneratorMojo.java b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGeneratorMojo.java
new file mode 100644
index 0000000..0db68f0
--- /dev/null
+++ b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGeneratorMojo.java
@@ -0,0 +1,93 @@
+package org.apache.streams.plugins.hbase;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.List;
+
+@Mojo(  name = "hbase",
+        defaultPhase = LifecyclePhase.GENERATE_RESOURCES
+)
+@Execute(   goal = "hbase",
+            phase = LifecyclePhase.GENERATE_RESOURCES
+)
+public class StreamsHbaseResourceGeneratorMojo extends AbstractMojo {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHbaseResourceGeneratorMojo.class);
+
+    private volatile MojoFailureException mojoFailureException;
+
+    @Component
+    private MavenProject project;
+
+//    @Component
+//    private Settings settings;
+//
+//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+//    protected ArtifactRepository localRepository;
+//
+//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
+//    private PluginDescriptor plugin;
+//
+    @Parameter( defaultValue = "${project.basedir}", readonly = true )
+    private File basedir;
+
+    @Parameter( defaultValue = "src/main/jsonschema", readonly = true ) // Maven 3 only
+    public String sourceDirectory;
+
+    @Parameter( readonly = true ) // Maven 3 only
+    public List<String> sourcePaths;
+
+    @Parameter(defaultValue = "./target/generated-resources/hbase", readonly = true)
+    public String targetDirectory;
+
+    public void execute() throws MojoExecutionException, MojoFailureException {
+
+        //addProjectDependenciesToClasspath();
+
+        StreamsHbaseGenerationConfig config = new StreamsHbaseGenerationConfig();
+
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            config.setSourcePaths(sourcePaths);
+        else
+            config.setSourceDirectory(sourceDirectory);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsHbaseResourceGenerator streamsHbaseResourceGenerator = new StreamsHbaseResourceGenerator(config);
+
+        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
+            public void uncaughtException(Thread th, Throwable ex) {
+                LOGGER.error("Exception", ex);
+                mojoFailureException = new MojoFailureException("Exception", ex);
+            }
+        };
+        Thread.setDefaultUncaughtExceptionHandler(h);
+        Thread thread = new Thread(streamsHbaseResourceGenerator);
+        thread.setUncaughtExceptionHandler(h);
+        try {
+            thread.start();
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+            mojoFailureException = new MojoFailureException("Exception", e);
+        }
+
+        if( mojoFailureException != null )
+            throw mojoFailureException;
+
+        return;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hbase/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/site/markdown/index.md b/streams-plugins/streams-plugin-hbase/src/site/markdown/index.md
new file mode 100644
index 0000000..858cb85
--- /dev/null
+++ b/streams-plugins/streams-plugin-hbase/src/site/markdown/index.md
@@ -0,0 +1,22 @@
+org.apache.streams.plugins:streams-plugin-hbase
+===============================================
+
+streams-plugin-hbase generates resources from json schemas to assist with indexing of json data using Apache HBase.
+
+#### Usage
+
+Run within a module containing a src/main/jsonschema directory
+
+    mvn org.apache.streams.plugins:streams-plugin-hbase:0.3-incubating-SNAPSHOT:hbase
+
+Output will be placed in target/generated-resources/hive by default
+
+#### Example
+
+[streams-plugin-hbase/pom.xml](streams-plugin-hbase/pom.xml "streams-plugin-hbase/pom.xml")
+
+#### Documentation
+
+[JavaDocs](apidocs/index.html "JavaDocs")
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorCLITest.java b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorCLITest.java
new file mode 100644
index 0000000..290d601
--- /dev/null
+++ b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorCLITest.java
@@ -0,0 +1,41 @@
+package org.apache.streams.plugins.test;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import org.apache.streams.plugins.hbase.StreamsHbaseResourceGenerator;
+import org.junit.Test;
+
+import javax.annotation.Nullable;
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+
+import static org.apache.streams.plugins.test.StreamsHbaseResourceGeneratorTest.txtFilter;
+
+/**
+ * Created by sblackmon on 5/5/16.
+ */
+public class StreamsHbaseResourceGeneratorCLITest {
+
+    @Test
+    public void testStreamsHiveResourceGeneratorCLI() throws Exception {
+
+        String sourceDirectory = "target/test-classes/streams-schemas";
+        String targetDirectory = "target/generated-resources/hbase-cli";
+
+        List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);
+        StreamsHbaseResourceGenerator.main(argsList.toArray(new String[0]));
+
+        File testOutput = new File(targetDirectory);
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(txtFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorMojoTest.java
new file mode 100644
index 0000000..6293021
--- /dev/null
+++ b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorMojoTest.java
@@ -0,0 +1,65 @@
+package org.apache.streams.plugins.test;
+
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import junit.framework.TestCase;
+import org.apache.maven.it.Verifier;
+import org.apache.maven.it.util.ResourceExtractor;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import static org.apache.streams.plugins.test.StreamsHbaseResourceGeneratorTest.txtFilter;
+
+/**
+ * Tests that streams-plugin-hive running via maven generates hql resources
+ */
+public class StreamsHbaseResourceGeneratorMojoTest extends TestCase {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHbaseResourceGeneratorMojoTest.class);
+
+    protected void setUp() throws Exception
+    {
+        // required for mojo lookups to work
+        super.setUp();
+    }
+
+
+    @Test
+    public void testStreamsHbaseResourceGeneratorMojo() throws Exception {
+
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/streams-plugin-hbase" );
+
+        Verifier verifier;
+
+        verifier = new Verifier( testDir.getAbsolutePath() );
+
+        List cliOptions = new ArrayList();
+        cliOptions.add( "-N" );
+        verifier.executeGoals( Lists.<String>newArrayList(
+                "clean",
+                "dependency:unpack-dependencies",
+                "generate-resources"));
+
+        verifier.verifyErrorFreeLog();
+
+        verifier.resetStreams();
+
+        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-resources/test-mojo");
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(txtFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorTest.java b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorTest.java
new file mode 100644
index 0000000..02b0214
--- /dev/null
+++ b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorTest.java
@@ -0,0 +1,125 @@
+package org.apache.streams.plugins.test;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.google.common.io.Files;
+import org.apache.commons.io.FileUtils;
+import org.apache.streams.plugins.hbase.StreamsHbaseGenerationConfig;
+import org.apache.streams.plugins.hbase.StreamsHbaseResourceGenerator;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.annotation.Nullable;
+import java.io.File;
+import java.util.Collection;
+import java.util.Iterator;
+
+import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+
+/**
+ * Test that Activity beans are compatible with the example activities in the spec.
+ */
+public class StreamsHbaseResourceGeneratorTest {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHbaseResourceGeneratorTest.class);
+
+    public static final Predicate<File> txtFilter = new Predicate<File>() {
+        @Override
+        public boolean apply(@Nullable File file) {
+            if( file.getName().endsWith(".txt") )
+                return true;
+            else return false;
+        }
+    };
+
+    /**
+     * Tests that all example activities can be loaded into Activity beans
+     *
+     * @throws Exception
+     */
+    @Test
+    public void StreamsHbaseResourceGenerator() throws Exception {
+
+        StreamsHbaseGenerationConfig config = new StreamsHbaseGenerationConfig();
+
+        String sourceDirectory = "target/test-classes/streams-schemas";
+
+        config.setSourceDirectory(sourceDirectory);
+
+        config.setTargetDirectory("target/generated-resources/test");
+
+        config.setExclusions(Sets.newHashSet("attachments"));
+
+        config.setColumnFamily("cf");
+        config.setMaxDepth(2);
+
+        StreamsHbaseResourceGenerator streamsHbaseResourceGenerator = new StreamsHbaseResourceGenerator(config);
+        Thread thread = new Thread(streamsHbaseResourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+
+        File testOutput = config.getTargetDirectory();
+
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(txtFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+
+        String expectedDirectory = "target/test-classes/expected";
+        File testExpected = new File( expectedDirectory );
+
+        Iterable<File> expectedIterator = Files.fileTreeTraverser().breadthFirstTraversal(testExpected)
+                .filter(txtFilter);
+        Collection<File> expectedCollection = Lists.newArrayList(expectedIterator);
+
+        int fails = 0;
+
+        Iterator<File> iterator = expectedCollection.iterator();
+        while( iterator.hasNext() ) {
+            File objectExpected = iterator.next();
+            String expectedEnd = dropSourcePathPrefix(objectExpected.getAbsolutePath(),  expectedDirectory);
+            File objectActual = new File(config.getTargetDirectory() + "/" + expectedEnd);
+            LOGGER.info("Comparing: {} and {}", objectExpected.getAbsolutePath(), objectActual.getAbsolutePath());
+            assert( objectActual.exists());
+            if( FileUtils.contentEquals(objectActual, objectExpected) == true ) {
+                LOGGER.info("Exact Match!");
+            } else {
+                LOGGER.info("No Match!");
+                fails++;
+            }
+        }
+        if( fails > 0 ) {
+            LOGGER.info("Fails: {}", fails);
+            Assert.fail();
+        }
+
+
+//        assert( new File(testOutput + "/traits").exists() == true );
+//        assert( new File(testOutput + "/traits").isDirectory() == true );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
+//        assert( new File(testOutput + "/objectTypes").exists() == true );
+//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
+//        assert( new File(testOutput + "/verbs").exists() == true );
+//        assert( new File(testOutput + "/verbs").isDirectory() == true );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
+    }
+}
\ No newline at end of file


[23/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/schema/GenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/schema/GenerationConfig.java b/streams-util/src/main/java/org/apache/streams/util/schema/GenerationConfig.java
new file mode 100644
index 0000000..d4b2c3f
--- /dev/null
+++ b/streams-util/src/main/java/org/apache/streams/util/schema/GenerationConfig.java
@@ -0,0 +1,116 @@
+package org.apache.streams.util.schema;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.net.URL;
+import java.util.Iterator;
+
+/**
+ * GenerationConfig represents the common fields and field accessors for
+ * streams modules that transform schemas into generated-sources or generated-resources
+ */
+public interface GenerationConfig {
+
+    /**
+     * Gets the 'source' configuration option.
+     *
+     * @return The source file(s) or directory(ies) from which JSON Schema will
+     *         be read.
+     */
+    Iterator<URL> getSource();
+
+    /**
+     * Gets the 'targetDirectory' configuration option.
+     *
+     * @return The target directory into which generated types will be written
+     *         (may or may not exist before types are written)
+     */
+    File getTargetDirectory();
+
+    /**
+     * Gets the 'outputEncoding' configuration option.
+     *
+     * @return The character encoding that should be used when writing output files.
+     */
+    String getOutputEncoding();
+
+    /**
+     * Gets the file filter used to isolate the schema mapping files in the
+     * source directories.
+     *
+     * @return the file filter use when scanning for schema files.
+     */
+    FileFilter getFileFilter();
+
+    /**
+     * Gets the 'includeAdditionalProperties' configuration option.
+     *
+     * @return Whether to allow 'additional properties' support in objects.
+     *         Setting this to false will disable additional properties support,
+     *         regardless of the input schema(s).
+     */
+//    boolean isIncludeAdditionalProperties();
+
+    /**
+     * Gets the 'targetVersion' configuration option.
+     *
+     *  @return The target version for generated source files.
+     */
+//    String getTargetVersion();
+
+//    /**
+//     * Gets the `includeDynamicAccessors` configuraiton option.
+//     *
+//     * @return Whether to include dynamic getters, setters, and builders
+//     *         or to omit these methods.
+//     */
+//    boolean isIncludeDynamicAccessors();
+
+//    /**
+//     * Gets the `dateTimeType` configuration option.
+//     *         <p>
+//     *         Example values:
+//     *         <ul>
+//     *         <li><code>org.joda.time.LocalDateTime</code> (Joda)</li>
+//     *         <li><code>java.time.LocalDateTime</code> (JSR310)</li>
+//     *         <li><code>null</code> (default behavior)</li>
+//     *         </ul>
+//     *
+//     * @return The java type to use instead of {@link java.util.Date}
+//     *         when adding date type fields to generate Java types.
+//     */
+//    String getDateTimeType();
+//
+//    /**
+//     * Gets the `dateType` configuration option.
+//     *         <p>
+//     *         Example values:
+//     *         <ul>
+//     *         <li><code>org.joda.time.LocalDate</code> (Joda)</li>
+//     *         <li><code>java.time.LocalDate</code> (JSR310)</li>
+//     *         <li><code>null</code> (default behavior)</li>
+//     *         </ul>
+//     *
+//     * @return The java type to use instead of string
+//     *         when adding string type fields with a format of date (not
+//     *         date-time) to generated Java types.
+//     */
+//    String getDateType();
+//
+//    /**
+//     * Gets the `timeType` configuration option.
+//     *         <p>
+//     *         Example values:
+//     *         <ul>
+//     *         <li><code>org.joda.time.LocalTime</code> (Joda)</li>
+//     *         <li><code>java.time.LocalTime</code> (JSR310)</li>
+//     *         <li><code>null</code> (default behavior)</li>
+//     *         </ul>
+//     *
+//     * @return The java type to use instead of string
+//     *         when adding string type fields with a format of time (not
+//     *         date-time) to generated Java types.
+//     */
+//    String getTimeType();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/schema/Schema.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/schema/Schema.java b/streams-util/src/main/java/org/apache/streams/util/schema/Schema.java
new file mode 100644
index 0000000..fc0a3f2
--- /dev/null
+++ b/streams-util/src/main/java/org/apache/streams/util/schema/Schema.java
@@ -0,0 +1,57 @@
+package org.apache.streams.util.schema;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+import java.net.URI;
+
+/**
+ * A JSON Schema document.
+ */
+public class Schema {
+
+    private final URI id;
+    private final URI uri;
+    private final JsonNode content;
+    private final Schema parent;
+    private final boolean generate;
+
+    public Schema(URI uri, JsonNode content, Schema parent, boolean generate) {
+        this.uri = uri;
+        this.content = content;
+        this.parent = parent;
+        this.generate = generate;
+        this.id = content.has("id") ? URI.create(content.get("id").asText()) : null;
+    }
+
+    public URI getId() {
+        return id;
+    }
+
+    public URI getURI() {
+        return uri;
+    }
+
+    public JsonNode getContent() {
+        return content;
+    }
+
+    public JsonNode getParentContent() {
+        if( parent != null )
+            return parent.getContent();
+        else return null;
+    }
+
+    public URI getParentURI() {
+        if( parent != null ) return parent.getURI();
+        else return null;
+    }
+
+    public boolean isGenerated() {
+        return generate;
+    }
+
+    public Schema getParent() {
+        return parent;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStore.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStore.java b/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStore.java
new file mode 100644
index 0000000..07e9bef
--- /dev/null
+++ b/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStore.java
@@ -0,0 +1,42 @@
+package org.apache.streams.util.schema;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.base.Optional;
+
+import java.net.URI;
+import java.util.Comparator;
+import java.util.Iterator;
+
+/**
+ * A SchemaStore resolves and indexes json schemas and makes their properties available.
+ *
+ * Implementations include
+ * - SchemaStoreImpl
+ */
+public interface SchemaStore extends Comparator<Schema> {
+    
+    Schema create(URI uri);
+
+    Schema create(Schema parent, String path);
+
+    void clearCache();
+
+    Integer getSize();
+
+    Optional<Schema> getById(URI id);
+
+    Optional<Schema> getByUri(URI uri);
+
+    Integer getFileUriCount();
+
+    Integer getHttpUriCount();
+
+    Iterator<Schema> getSchemaIterator();
+
+    ObjectNode resolveProperties(Schema schema, ObjectNode fieldNode, String resourceId);
+
+    ObjectNode resolveItems(Schema schema, ObjectNode fieldNode, String resourceId);
+
+    @Override
+    int compare(Schema left, Schema right);
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStoreImpl.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStoreImpl.java b/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStoreImpl.java
new file mode 100644
index 0000000..9585742
--- /dev/null
+++ b/streams-util/src/main/java/org/apache/streams/util/schema/SchemaStoreImpl.java
@@ -0,0 +1,347 @@
+package org.apache.streams.util.schema;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.base.Optional;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Ordering;
+import org.apache.commons.lang3.StringUtils;
+import org.jsonschema2pojo.ContentResolver;
+import org.jsonschema2pojo.FragmentResolver;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.net.URI;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import static org.apache.streams.util.schema.URIUtil.safeResolve;
+
+/**
+ * Created by steve on 4/30/16.
+ */
+public class SchemaStoreImpl extends Ordering<Schema> implements SchemaStore {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(SchemaStore.class);
+    private final static JsonNodeFactory NODE_FACTORY = JsonNodeFactory.instance;
+
+    protected Map<URI, Schema> schemas = new HashMap();
+    protected FragmentResolver fragmentResolver = new FragmentResolver();
+    protected ContentResolver contentResolver = new ContentResolver();
+
+    public SchemaStoreImpl() {
+    }
+
+    @Override
+    public synchronized Schema create(URI uri) {
+        if(!getByUri(uri).isPresent()) {
+            URI baseURI = URIUtil.removeFragment(uri);
+            JsonNode baseNode = this.contentResolver.resolve(baseURI);
+            if(uri.toString().contains("#") && !uri.toString().endsWith("#")) {
+                Schema newSchema = new Schema(baseURI, baseNode, null, true);
+                this.schemas.put(baseURI, newSchema);
+                JsonNode childContent = this.fragmentResolver.resolve(baseNode, '#' + StringUtils.substringAfter(uri.toString(), "#"));
+                this.schemas.put(uri, new Schema(uri, childContent, newSchema, false));
+            } else {
+                if( baseNode.has("extends") && baseNode.get("extends").isObject()) {
+                    URI ref = URI.create(((ObjectNode)baseNode.get("extends")).get("$ref").asText());
+                    URI absoluteURI;
+                    if( ref.isAbsolute())
+                        absoluteURI = ref;
+                    else
+                        absoluteURI = baseURI.resolve(ref);
+                    JsonNode parentNode = this.contentResolver.resolve(absoluteURI);
+                    Schema parentSchema = null;
+                    if( this.schemas.get(absoluteURI) != null ) {
+                        parentSchema = this.schemas.get(absoluteURI);
+                    } else {
+                        parentSchema = create(absoluteURI);
+                    }
+                    this.schemas.put(uri, new Schema(uri, baseNode, parentSchema, true));
+                } else {
+                    this.schemas.put(uri, new Schema(uri, baseNode, null, true));
+                }
+            }
+            List<JsonNode> refs = baseNode.findValues("$ref");
+            for( JsonNode ref : refs ) {
+                if( ref.isValueNode() ) {
+                    String refVal = ref.asText();
+                    URI refURI = null;
+                    try {
+                        refURI = URI.create(refVal);
+                    } catch( Exception e ) {
+                        LOGGER.info("Exception: {}", e.getMessage());
+                    }
+                    if (refURI != null && !getByUri(refURI).isPresent()) {
+                        if (refURI.isAbsolute())
+                            create(refURI);
+                        else
+                            create(baseURI.resolve(refURI));
+                    }
+                }
+            }
+        }
+
+        return this.schemas.get(uri);
+    }
+
+    @Override
+    public Schema create(Schema parent, String path) {
+        if(path.equals("#")) {
+            return parent;
+        } else {
+            path = StringUtils.stripEnd(path, "#?&/");
+            URI id = parent != null && parent.getId() != null?parent.getId().resolve(path):URI.create(path);
+            if(this.selfReferenceWithoutParentFile(parent, path)) {
+                this.schemas.put(id, new Schema(id, this.fragmentResolver.resolve(parent.getParentContent(), path), parent, false));
+                return this.schemas.get(id);
+            } else {
+                return this.create(id);
+            }
+        }
+    }
+
+    protected boolean selfReferenceWithoutParentFile(Schema parent, String path) {
+        return parent != null && (parent.getId() == null || parent.getId().toString().startsWith("#/")) && path.startsWith("#/");
+    }
+
+    @Override
+    public synchronized void clearCache() {
+        this.schemas.clear();
+    }
+
+    @Override
+    public Integer getSize() {
+        return schemas.size();
+    }
+
+    @Override
+    public Optional<Schema> getById(URI id) {
+        for( Schema schema : schemas.values() ) {
+            if( schema.getId() != null && schema.getId().equals(id) )
+                return Optional.of(schema);
+        }
+        return Optional.absent();
+    }
+
+    @Override
+    public Optional<Schema> getByUri(URI uri) {
+        for( Schema schema : schemas.values() ) {
+            if( schema.getURI().equals(uri) )
+                return Optional.of(schema);
+        }
+        return Optional.absent();
+    }
+
+    @Override
+    public Integer getFileUriCount() {
+        int count = 0;
+        for( Schema schema : schemas.values() ) {
+            if( schema.getURI().getScheme().equals("file") )
+                count++;
+        }
+        return count;
+    }
+
+    @Override
+    public Integer getHttpUriCount() {
+        int count = 0;
+        for( Schema schema : schemas.values() ) {
+            if( schema.getURI().getScheme().equals("http") )
+                count++;
+        }
+        return count;
+    }
+
+    @Override
+    public Iterator<Schema> getSchemaIterator() {
+        List<Schema> schemaList = Lists.newArrayList(schemas.values());
+        Collections.sort(schemaList, this);
+        return schemaList.iterator();
+    }
+
+    @Override
+    public ObjectNode resolveProperties(Schema schema, ObjectNode fieldNode, String resourceId) {
+        // this should return something more suitable like:
+        //   Map<String, Pair<Schema, ObjectNode>>
+        ObjectNode schemaProperties = NODE_FACTORY.objectNode();
+        ObjectNode parentProperties = NODE_FACTORY.objectNode();
+        if (fieldNode == null) {
+            ObjectNode schemaContent = (ObjectNode) schema.getContent();
+            if( schemaContent.has("properties") ) {
+                schemaProperties = (ObjectNode) schemaContent.get("properties");
+                if (schema.getParentContent() != null) {
+                    ObjectNode parentContent = (ObjectNode) schema.getParentContent();
+                    if (parentContent.has("properties")) {
+                        parentProperties = (ObjectNode) parentContent.get("properties");
+                    }
+                }
+            }
+        } else if (fieldNode != null && fieldNode.size() > 0) {
+            if( fieldNode.has("properties") && fieldNode.get("properties").isObject() && fieldNode.get("properties").size() > 0 )
+                schemaProperties = (ObjectNode) fieldNode.get("properties");
+            URI parentURI = null;
+            if( fieldNode.has("$ref") || fieldNode.has("extends") ) {
+                JsonNode refNode = fieldNode.get("$ref");
+                JsonNode extendsNode = fieldNode.get("extends");
+                if (refNode != null && refNode.isValueNode())
+                    parentURI = URI.create(refNode.asText());
+                else if (extendsNode != null && extendsNode.isObject())
+                    parentURI = URI.create(extendsNode.get("$ref").asText());
+                ObjectNode parentContent = null;
+                URI absoluteURI;
+                if (parentURI.isAbsolute())
+                    absoluteURI = parentURI;
+                else {
+                    absoluteURI = schema.getURI().resolve(parentURI);
+                    if (!absoluteURI.isAbsolute() || (absoluteURI.isAbsolute() && !getByUri(absoluteURI).isPresent() ))
+                        absoluteURI = schema.getParentURI().resolve(parentURI);
+                }
+                if (absoluteURI != null && absoluteURI.isAbsolute()) {
+                    if (getByUri(absoluteURI).isPresent())
+                        parentContent = (ObjectNode) getByUri(absoluteURI).get().getContent();
+                    if (parentContent != null && parentContent.isObject() && parentContent.has("properties")) {
+                        parentProperties = (ObjectNode) parentContent.get("properties");
+                    } else if (absoluteURI.getPath().endsWith("#properties")) {
+                        absoluteURI = URI.create(absoluteURI.toString().replace("#properties", ""));
+                        parentProperties = (ObjectNode) getByUri(absoluteURI).get().getContent().get("properties");
+                    }
+                }
+            }
+
+
+        }
+
+        ObjectNode resolvedProperties = NODE_FACTORY.objectNode();
+        if (parentProperties != null && parentProperties.size() > 0)
+            resolvedProperties = SchemaUtil.mergeProperties(schemaProperties, parentProperties);
+        else resolvedProperties = schemaProperties.deepCopy();
+
+        return resolvedProperties;
+    }
+
+    public ObjectNode resolveItems(Schema schema, ObjectNode fieldNode, String resourceId) {
+        ObjectNode schemaItems = NODE_FACTORY.objectNode();
+        ObjectNode parentItems = NODE_FACTORY.objectNode();
+        if (fieldNode == null) {
+            ObjectNode schemaContent = (ObjectNode) schema.getContent();
+            if( schemaContent.has("items") ) {
+                schemaItems = (ObjectNode) schemaContent.get("items");
+                if (schema.getParentContent() != null) {
+                    ObjectNode parentContent = (ObjectNode) schema.getParentContent();
+                    if (parentContent.has("items")) {
+                        parentItems = (ObjectNode) parentContent.get("items");
+                    }
+                }
+            }
+        } else if (fieldNode != null && fieldNode.size() > 0) {
+            if (fieldNode.has("items") && fieldNode.get("items").isObject() && fieldNode.get("items").size() > 0)
+                schemaItems = (ObjectNode) fieldNode.get("items");
+            URI parentURI = null;
+            if( fieldNode.has("$ref") || fieldNode.has("extends") ) {
+                JsonNode refNode = fieldNode.get("$ref");
+                JsonNode extendsNode = fieldNode.get("extends");
+                if (refNode != null && refNode.isValueNode())
+                    parentURI = URI.create(refNode.asText());
+                else if (extendsNode != null && extendsNode.isObject())
+                    parentURI = URI.create(extendsNode.get("$ref").asText());
+                ObjectNode parentContent = null;
+                URI absoluteURI;
+                if (parentURI.isAbsolute())
+                    absoluteURI = parentURI;
+                else {
+                    absoluteURI = schema.getURI().resolve(parentURI);
+                    if (!absoluteURI.isAbsolute() || (absoluteURI.isAbsolute() && !getByUri(absoluteURI).isPresent() ))
+                        absoluteURI = schema.getParentURI().resolve(parentURI);
+                }
+                if (absoluteURI != null && absoluteURI.isAbsolute()) {
+                    if (getByUri(absoluteURI).isPresent())
+                        parentContent = (ObjectNode) getByUri(absoluteURI).get().getContent();
+                    if (parentContent != null && parentContent.isObject() && parentContent.has("items")) {
+                        parentItems = (ObjectNode) parentContent.get("items");
+                    } else if (absoluteURI.getPath().endsWith("#items")) {
+                        absoluteURI = URI.create(absoluteURI.toString().replace("#items", ""));
+                        parentItems = (ObjectNode) getByUri(absoluteURI).get().getContent().get("items");
+                    }
+                }
+            }
+        }
+
+        ObjectNode resolvedItems = NODE_FACTORY.objectNode();
+        if (parentItems != null && parentItems.size() > 0)
+            resolvedItems = SchemaUtil.mergeProperties(schemaItems, parentItems);
+        else resolvedItems = schemaItems.deepCopy();
+
+        return resolvedItems;
+    }
+
+    @Override
+    public int compare(Schema left, Schema right) {
+        // are they the same?
+        if( left.equals(right)) return 0;
+        // is one an ancestor of the other
+        Schema candidateAncestor = left;
+        while( candidateAncestor.getParent() != null ) {
+            candidateAncestor = candidateAncestor.getParent();
+            if( candidateAncestor.equals(right))
+                return 1;
+        }
+        candidateAncestor = right;
+        while( candidateAncestor.getParent() != null ) {
+            candidateAncestor = candidateAncestor.getParent();
+            if( candidateAncestor.equals(left))
+                return -1;
+        }
+        // does one have a field that reference the other?
+        for( JsonNode refNode : left.getContent().findValues("$ref") ) {
+            String refText = refNode.asText();
+            Optional<URI> resolvedURI = safeResolve(left.getURI(), refText);
+            if( resolvedURI.isPresent() && resolvedURI.get().equals(right.getURI()))
+                return 1;
+        }
+        for( JsonNode refNode : right.getContent().findValues("$ref") ) {
+            String refText = refNode.asText();
+            Optional<URI> resolvedURI = safeResolve(right.getURI(), refText);
+            if( resolvedURI.isPresent() && resolvedURI.get().equals(left.getURI()))
+                return -1;
+        }
+        // does one have a field that reference a third schema that references the other?
+        for( JsonNode refNode : left.getContent().findValues("$ref") ) {
+            String refText = refNode.asText();
+            Optional<URI> possibleConnectorURI = safeResolve(left.getURI(), refText);
+            if( possibleConnectorURI.isPresent()) {
+                Optional<Schema> possibleConnector = getByUri(possibleConnectorURI.get());
+                if (possibleConnector.isPresent()) {
+                    for (JsonNode connectorRefNode : possibleConnector.get().getContent().findValues("$ref")) {
+                        String connectorRefText = connectorRefNode.asText();
+                        Optional<URI> resolvedURI = safeResolve(possibleConnector.get().getURI(), connectorRefText);
+                        if (resolvedURI.isPresent() && resolvedURI.get().equals(right.getURI()))
+                            return 1;
+                    }
+                }
+            }
+        }
+        for( JsonNode refNode : right.getContent().findValues("$ref") ) {
+            String refText = refNode.asText();
+            Optional<URI> possibleConnectorURI = safeResolve(right.getURI(), refText);
+            if( possibleConnectorURI.isPresent()) {
+                Optional<Schema> possibleConnector = getByUri(possibleConnectorURI.get());
+                if (possibleConnector.isPresent()) {
+                    for (JsonNode connectorRefNode : possibleConnector.get().getContent().findValues("$ref")) {
+                        String connectorRefText = connectorRefNode.asText();
+                        Optional<URI> resolvedURI = safeResolve(possibleConnector.get().getURI(), connectorRefText);
+                        if (resolvedURI.isPresent() && resolvedURI.get().equals(left.getURI()))
+                            return -1;
+                    }
+                }
+            }
+        }
+        return 0;
+    }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/schema/SchemaUtil.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/schema/SchemaUtil.java b/streams-util/src/main/java/org/apache/streams/util/schema/SchemaUtil.java
new file mode 100644
index 0000000..f8b0070
--- /dev/null
+++ b/streams-util/src/main/java/org/apache/streams/util/schema/SchemaUtil.java
@@ -0,0 +1,49 @@
+package org.apache.streams.util.schema;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.net.URL;
+import java.util.Iterator;
+import java.util.Map;
+
+import static org.apache.commons.lang3.StringUtils.isEmpty;
+
+/**
+ * SchemaUtil contains methods to assist in resolving schemas and schema fragments.
+ */
+public class SchemaUtil {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(SchemaUtil.class);
+    private static final JsonNodeFactory NODE_FACTORY = JsonNodeFactory.instance;
+    public static final String ILLEGAL_CHARACTER_REGEX = "[^0-9a-zA-Z_$]";
+
+    public static String childQualifiedName(String parentQualifiedName, String childSimpleName) {
+        String safeChildName = childSimpleName.replaceAll(ILLEGAL_CHARACTER_REGEX, "_");
+        return isEmpty(parentQualifiedName) ? safeChildName : parentQualifiedName + "." + safeChildName;
+    }
+
+    public static ObjectNode readSchema(URL schemaUrl) {
+
+        ObjectNode schemaNode = NODE_FACTORY.objectNode();
+        schemaNode.put("$ref", schemaUrl.toString());
+        return schemaNode;
+
+    }
+
+    public static ObjectNode mergeProperties(ObjectNode content, ObjectNode parent) {
+
+        ObjectNode merged = parent.deepCopy();
+        Iterator<Map.Entry<String, JsonNode>> fields = content.fields();
+        for( ; fields.hasNext(); ) {
+            Map.Entry<String, JsonNode> field = fields.next();
+            String fieldId = field.getKey();
+            merged.put(fieldId, field.getValue().deepCopy());
+        }
+        return merged;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/schema/URIUtil.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/schema/URIUtil.java b/streams-util/src/main/java/org/apache/streams/util/schema/URIUtil.java
new file mode 100644
index 0000000..af468e3
--- /dev/null
+++ b/streams-util/src/main/java/org/apache/streams/util/schema/URIUtil.java
@@ -0,0 +1,30 @@
+package org.apache.streams.util.schema;
+
+import com.google.common.base.Optional;
+import org.apache.commons.lang3.StringUtils;
+
+import java.net.URI;
+
+/**
+ * URIUtil contains methods to assist in resolving URIs and URI fragments.
+ */
+public class URIUtil {
+
+    public static URI removeFragment(URI id) {
+        return URI.create(StringUtils.substringBefore(id.toString(), "#"));
+    }
+
+    public static URI removeFile(URI id) {
+        return URI.create(StringUtils.substringBeforeLast(id.toString(), "/"));
+    }
+
+    public static Optional<URI> safeResolve(URI absolute, String relativePart) {
+        if( !absolute.isAbsolute()) return Optional.absent();
+        try {
+            return Optional.of(absolute.resolve(relativePart));
+        } catch( IllegalArgumentException e ) {
+            return Optional.absent();
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/java/org/apache/streams/util/schema/test/SchemaOrderingTest.java
----------------------------------------------------------------------
diff --git a/streams-util/src/test/java/org/apache/streams/util/schema/test/SchemaOrderingTest.java b/streams-util/src/test/java/org/apache/streams/util/schema/test/SchemaOrderingTest.java
new file mode 100644
index 0000000..6deaa98
--- /dev/null
+++ b/streams-util/src/test/java/org/apache/streams/util/schema/test/SchemaOrderingTest.java
@@ -0,0 +1,150 @@
+package org.apache.streams.util.schema.test;
+
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterators;
+import com.google.common.collect.Lists;
+import org.apache.streams.util.schema.Schema;
+import org.apache.streams.util.schema.SchemaStore;
+import org.apache.streams.util.schema.SchemaStoreImpl;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Created by sblackmon on 5/3/16.
+ */
+public class SchemaOrderingTest {
+
+    @Test
+    public void compareVerbParent() {
+        SchemaStore schemaStore = new SchemaStoreImpl();
+        File update = new File("target/test-classes/verbs/update.json");
+        schemaStore.create(update.toURI());
+        File activity = new File("target/test-classes/activity.json");
+        schemaStore.create(activity.toURI());
+        assert( schemaStore.compare( schemaStore.getByUri(update.toURI()).get(), schemaStore.getByUri(activity.toURI()).get()) == 1);
+        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
+        assertContainsItemsEndingWithInOrder(
+                schemaIterator,
+                Lists.newArrayList(
+                        "activity.json",
+                        "update.json"
+                )
+        );
+    }
+
+    @Test
+    public void compareObjectTypeParent() {
+        SchemaStore schemaStore = new SchemaStoreImpl();
+        File alert = new File("target/test-classes/objectTypes/alert.json");
+        schemaStore.create(alert.toURI());
+        File object = new File("target/test-classes/object.json");
+        schemaStore.create(object.toURI());
+        assert( schemaStore.compare( schemaStore.getByUri(object.toURI()).get(), schemaStore.getByUri(alert.toURI()).get()) == -1);
+        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
+        assertContainsItemsEndingWithInOrder(
+                schemaIterator,
+                Lists.newArrayList(
+                        "object.json",
+                        "alert.json"
+                )
+        );
+    }
+
+    @Test
+    public void compareUnrelated() {
+        SchemaStore schemaStore = new SchemaStoreImpl();
+        File alert = new File("target/test-classes/objectTypes/alert.json");
+        schemaStore.create(alert.toURI());
+        File update = new File("target/test-classes/verbs/update.json");
+        schemaStore.create(update.toURI());
+        assert( schemaStore.compare( schemaStore.getByUri(alert.toURI()).get(), schemaStore.getByUri(update.toURI()).get()) == 0);
+    }
+
+    @Test
+    public void compareVerbFieldRef() {
+        SchemaStore schemaStore = new SchemaStoreImpl();
+        File update = new File("target/test-classes/verbs/update.json");
+        schemaStore.create(update.toURI());
+        File object = new File("target/test-classes/object.json");
+        schemaStore.create(object.toURI());
+        assert( schemaStore.compare( schemaStore.getByUri(update.toURI()).get(), schemaStore.getByUri(object.toURI()).get()) == 1);
+        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
+        assertContainsItemsEndingWithInOrder(
+                schemaIterator,
+                Lists.newArrayList(
+                        "object.json",
+                        "update.json"
+                )
+        );
+    }
+
+    @Test
+    public void compareObjectTypeFieldRef() {
+        SchemaStore schemaStore = new SchemaStoreImpl();
+        File alert = new File("target/test-classes/objectTypes/alert.json");
+        schemaStore.create(alert.toURI());
+        File media_link = new File("target/test-classes/media_link.json");
+        schemaStore.create(media_link.toURI());
+        assert( schemaStore.compare( schemaStore.getByUri(media_link.toURI()).get(), schemaStore.getByUri(alert.toURI()).get()) == -1);
+        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
+        assertContainsItemsEndingWithInOrder(
+                schemaIterator,
+                Lists.newArrayList(
+                        "media_link.json",
+                        "object.json",
+                        "alert.json"
+                )
+        );
+    }
+
+    @Test
+    public void compareVerbAncestorIndirect() {
+        SchemaStore schemaStore = new SchemaStoreImpl();
+        File update = new File("target/test-classes/verbs/update.json");
+        schemaStore.create(update.toURI());
+        File media_link = new File("target/test-classes/media_link.json");
+        schemaStore.create(media_link.toURI());
+        assert( schemaStore.getByUri(media_link.toURI()).isPresent());
+        assert( schemaStore.getByUri(update.toURI()).isPresent());
+        assert( schemaStore.compare( schemaStore.getByUri(media_link.toURI()).get(), schemaStore.getByUri(update.toURI()).get()) == -1);
+        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
+        assertContainsItemsEndingWithInOrder(
+                schemaIterator,
+                Lists.newArrayList(
+                        "media_link.json",
+                        "update.json"
+                )
+        );
+    }
+
+
+    public void assertContainsItemsEndingWithInOrder(Iterator<Schema> iterator, List<String> items) {
+        for( String item : items ) {
+            Optional<Schema> tryFind = Iterators.tryFind( iterator, new SchemaUriEndsWithPredicate(item) );
+            assert( tryFind.isPresent() );
+        }
+    }
+
+    public class SchemaUriEndsWithPredicate implements Predicate<Schema> {
+
+        private String endsWith;
+
+        public SchemaUriEndsWithPredicate(String endsWith) {
+            this.endsWith = endsWith;
+        }
+
+        @Override
+        public boolean apply(Schema input) {
+            return input.getURI().getPath().endsWith(endsWith);
+        }
+
+        @Override
+        public boolean equals(Object object) {
+            return false;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/java/org/apache/streams/util/schema/test/SchemaStoreTest.java
----------------------------------------------------------------------
diff --git a/streams-util/src/test/java/org/apache/streams/util/schema/test/SchemaStoreTest.java b/streams-util/src/test/java/org/apache/streams/util/schema/test/SchemaStoreTest.java
new file mode 100644
index 0000000..9aa7661
--- /dev/null
+++ b/streams-util/src/test/java/org/apache/streams/util/schema/test/SchemaStoreTest.java
@@ -0,0 +1,71 @@
+package org.apache.streams.util.schema.test;
+
+import org.apache.streams.util.schema.Schema;
+import org.apache.streams.util.schema.SchemaStore;
+import org.apache.streams.util.schema.SchemaStoreImpl;
+import org.junit.Test;
+
+import java.io.File;
+import java.net.URI;
+
+/**
+ * Created by sblackmon on 5/2/16.
+ */
+public class SchemaStoreTest {
+
+    @Test
+    public void indexMediaLink() {
+        SchemaStore schemaStore = new SchemaStoreImpl();
+        File file = new File("target/test-classes/media_link.json");
+        schemaStore.create(file.toURI());
+        assert( schemaStore.getFileUriCount() == 1);
+        assert( schemaStore.getByUri(file.toURI()).isPresent());
+        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
+    }
+
+    @Test
+    public void indexApprove() {
+        SchemaStore schemaStore = new SchemaStoreImpl();
+        File file = new File("target/test-classes/verbs/approve.json");
+        schemaStore.create(file.toURI());
+        assert( schemaStore.getFileUriCount() == 4);
+        assert( schemaStore.getByUri(file.toURI()).isPresent());
+        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
+    }
+
+    @Test
+    public void indexCollection() {
+        SchemaStore schemaStore = new SchemaStoreImpl();
+        File file = new File("target/test-classes/collection.json");
+        schemaStore.create(file.toURI());
+        assert( schemaStore.getFileUriCount() == 3);
+        assert( schemaStore.getByUri(file.toURI()).isPresent());
+        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
+        Schema collection = schemaStore.getByUri(file.toURI()).get();
+        assert( collection.getParent() == null );
+        assert( schemaStore.getById(
+                URI.create("http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/object.json#"
+                )).isPresent());
+    }
+
+    @Test
+    public void indexUpdate() {
+        SchemaStore schemaStore = new SchemaStoreImpl();
+        File file = new File("target/test-classes/verbs/update.json");
+        schemaStore.create(file.toURI());
+        assert( schemaStore.getFileUriCount() == 4);
+        assert( schemaStore.getByUri(file.toURI()).isPresent());
+        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
+        Schema update = schemaStore.getByUri(file.toURI()).get();
+        assert( update.getParent() != null );
+        assert( update.getParent().getId().getScheme().equals("http"));
+        assert( update.getParent().getId().getHost().equals("streams.incubator.apache.org"));
+        assert( update.getParent().getId().getPath().startsWith("/site/0.3-incubating-SNAPSHOT/streams-schemas"));
+        assert( update.getParent().getId().getPath().endsWith("activity.json"));
+    }
+
+    // test create from messed up URI
+
+    // test create from URI with messed up reference
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/accept.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/accept.json b/streams-util/src/test/resources/activities/accept.json
new file mode 100644
index 0000000..c1dfd5f
--- /dev/null
+++ b/streams-util/src/test/resources/activities/accept.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "accept",
+  "object": {
+    "objectType": "job",
+    "displayName": "Director of Marketing"
+  },
+  "title": "Sally accepted the Director of Marketing job."
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/access.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/access.json b/streams-util/src/test/resources/activities/access.json
new file mode 100644
index 0000000..93bc6e2
--- /dev/null
+++ b/streams-util/src/test/resources/activities/access.json
@@ -0,0 +1,17 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "access",
+  "object": {
+    "objectType": "file",
+    "displayName": "4Q2012 Sales Forecast.xls"
+  },
+  "published": "2012-12-12T12:12:12Z",
+  "title": "Joe accessed the file \"4Q2012 Sales Forecast.xls\""
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/acknowledge.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/acknowledge.json b/streams-util/src/test/resources/activities/acknowledge.json
new file mode 100644
index 0000000..2b69fa7
--- /dev/null
+++ b/streams-util/src/test/resources/activities/acknowledge.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "acknowledge",
+  "object": {
+    "objectType": "issue",
+    "displayName": "#123: There is a problem with the build"
+  },
+  "content": "Sally acknowledged Issue #123"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/add.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/add.json b/streams-util/src/test/resources/activities/add.json
new file mode 100644
index 0000000..b4e8151
--- /dev/null
+++ b/streams-util/src/test/resources/activities/add.json
@@ -0,0 +1,21 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "add",
+  "object": {
+    "objectType": "image",
+    "displayName": "My cat",
+    "fullImage": {"url": "http://example.org/cat.jpg"}
+  },
+  "target": {
+    "objectType": "collection",
+    "displayName": "Joe's Photo Album",
+    "objectTypes": ["image"]
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/agree.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/agree.json b/streams-util/src/test/resources/activities/agree.json
new file mode 100644
index 0000000..3034cd8
--- /dev/null
+++ b/streams-util/src/test/resources/activities/agree.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "agree",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some Random Article Online"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/append.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/append.json b/streams-util/src/test/resources/activities/append.json
new file mode 100644
index 0000000..d8fb3be
--- /dev/null
+++ b/streams-util/src/test/resources/activities/append.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "append",
+  "object": {"content": "This is some text"},
+  "target": {
+    "objectType": "file",
+    "displayName": "log.txt"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/approve.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/approve.json b/streams-util/src/test/resources/activities/approve.json
new file mode 100644
index 0000000..b6f378e
--- /dev/null
+++ b/streams-util/src/test/resources/activities/approve.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "approve",
+  "object": {
+    "objectType": "task",
+    "actor": {"displayName": "Joe"},
+    "verb": "join",
+    "object": {
+      "objectType": "group",
+      "displayName": "Administrators"
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/archive.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/archive.json b/streams-util/src/test/resources/activities/archive.json
new file mode 100644
index 0000000..557dcdf
--- /dev/null
+++ b/streams-util/src/test/resources/activities/archive.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "archive",
+  "object": {
+    "objectType": "file",
+    "displayName": "4Q2012 Sales Forecast.xls"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/assign.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/assign.json b/streams-util/src/test/resources/activities/assign.json
new file mode 100644
index 0000000..51b8a51
--- /dev/null
+++ b/streams-util/src/test/resources/activities/assign.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "assign",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #123: Some Issue"
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "title": "Sally assigned Issue #123 to Joe"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/at.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/at.json b/streams-util/src/test/resources/activities/at.json
new file mode 100644
index 0000000..64a77f9
--- /dev/null
+++ b/streams-util/src/test/resources/activities/at.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "at",
+  "object": {
+    "objectType": "place",
+    "displayName": "Acme, Co."
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/attach.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/attach.json b/streams-util/src/test/resources/activities/attach.json
new file mode 100644
index 0000000..716616b
--- /dev/null
+++ b/streams-util/src/test/resources/activities/attach.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "attach",
+  "object": {
+    "objectType": "binary",
+    "data": "dGhpcyBpcyB1bmNvbXByZXNzZWQgZGF0YQo="
+  },
+  "target": {
+    "objectType": "issue",
+    "displayName": "Issue #123"
+  },
+  "title": "Sally added an attachment to Issue #123"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/attend.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/attend.json b/streams-util/src/test/resources/activities/attend.json
new file mode 100644
index 0000000..f8c0838
--- /dev/null
+++ b/streams-util/src/test/resources/activities/attend.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "attend",
+  "object": {
+    "objectType": "event",
+    "displayName": "Sally's Meeting"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/author.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/author.json b/streams-util/src/test/resources/activities/author.json
new file mode 100644
index 0000000..1903700
--- /dev/null
+++ b/streams-util/src/test/resources/activities/author.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "author",
+  "object": {
+    "objectType": "file",
+    "displayName": "4Q2012 Sales Forecast.xls"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/authorize.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/authorize.json b/streams-util/src/test/resources/activities/authorize.json
new file mode 100644
index 0000000..2d9d1b3
--- /dev/null
+++ b/streams-util/src/test/resources/activities/authorize.json
@@ -0,0 +1,23 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "authorize",
+  "object": {
+    "objectType": "task",
+    "actor": {
+      "objectType": "person",
+      "displayName": "Sally"
+    },
+    "verb": "access",
+    "object": {
+      "objectType": "place",
+      "displayName": "Joe's Home"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/borrow.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/borrow.json b/streams-util/src/test/resources/activities/borrow.json
new file mode 100644
index 0000000..e21809a
--- /dev/null
+++ b/streams-util/src/test/resources/activities/borrow.json
@@ -0,0 +1,21 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "borrow",
+  "object": {
+    "objectType": "book",
+    "displayName": "Cloud Atlas"
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "title": "Sally borrowed the book 'Cloud Atlas' from Joe"
+}
+    

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/build.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/build.json b/streams-util/src/test/resources/activities/build.json
new file mode 100644
index 0000000..78878e1
--- /dev/null
+++ b/streams-util/src/test/resources/activities/build.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "build",
+  "object": {
+    "objectType": "application",
+    "displayName": "MyApp Builder 12345"
+  }
+}
+   

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/cancel.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/cancel.json b/streams-util/src/test/resources/activities/cancel.json
new file mode 100644
index 0000000..b7aba81
--- /dev/null
+++ b/streams-util/src/test/resources/activities/cancel.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "cancel",
+  "object": {
+    "objectType": "offer",
+    "displayName": "Free Money!"
+  },
+  "title": "Sally cancelled the offer for free money."
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/checkin.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/checkin.json b/streams-util/src/test/resources/activities/checkin.json
new file mode 100644
index 0000000..97216b9
--- /dev/null
+++ b/streams-util/src/test/resources/activities/checkin.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "checkin",
+  "object": {
+    "objectType": "place",
+    "displayName": "Acme, Co"
+  },
+  "title": "Joe checked in at Acme, Co"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/close.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/close.json b/streams-util/src/test/resources/activities/close.json
new file mode 100644
index 0000000..362e3f6
--- /dev/null
+++ b/streams-util/src/test/resources/activities/close.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "close",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #123"
+  },
+  "title": "Joe closed issue #123"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/complete.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/complete.json b/streams-util/src/test/resources/activities/complete.json
new file mode 100644
index 0000000..06694a7
--- /dev/null
+++ b/streams-util/src/test/resources/activities/complete.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "complete",
+  "object": {
+    "objectType": "process",
+    "displayName": "Some long process"
+  }
+}
+    

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/confirm.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/confirm.json b/streams-util/src/test/resources/activities/confirm.json
new file mode 100644
index 0000000..9307c38
--- /dev/null
+++ b/streams-util/src/test/resources/activities/confirm.json
@@ -0,0 +1,17 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "confirm",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #123"
+  },
+  "title": "Joe confirmed issue #123"
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/consume.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/consume.json b/streams-util/src/test/resources/activities/consume.json
new file mode 100644
index 0000000..ed907e3
--- /dev/null
+++ b/streams-util/src/test/resources/activities/consume.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "consume",
+  "object": {
+    "objectType": "product",
+    "displayName": "Some amazing product"
+  }
+}
+    

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/create.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/create.json b/streams-util/src/test/resources/activities/create.json
new file mode 100644
index 0000000..5d8afb3
--- /dev/null
+++ b/streams-util/src/test/resources/activities/create.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "create",
+  "object": {
+    "objectType": "product",
+    "displayName": "Some amazing product"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/delete.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/delete.json b/streams-util/src/test/resources/activities/delete.json
new file mode 100644
index 0000000..6943046
--- /dev/null
+++ b/streams-util/src/test/resources/activities/delete.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "delete",
+  "object": {
+    "objectType": "file",
+    "displayName": "4Q2012 Sales Forecast.xls"
+  },
+  "title": "Joe is probably going to get fired."
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/deliver.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/deliver.json b/streams-util/src/test/resources/activities/deliver.json
new file mode 100644
index 0000000..620f0b5
--- /dev/null
+++ b/streams-util/src/test/resources/activities/deliver.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "deliver",
+  "object": {
+    "objectType": "note",
+    "displayName": "Bad News",
+    "content": "Joe deleted the sales forecast"
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Joe's Boss"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/deny.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/deny.json b/streams-util/src/test/resources/activities/deny.json
new file mode 100644
index 0000000..b83ca60
--- /dev/null
+++ b/streams-util/src/test/resources/activities/deny.json
@@ -0,0 +1,23 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "deny",
+  "object": {
+    "objectType": "task",
+    "actor": {
+      "objectType": "person",
+      "displayName": "Joe"
+    },
+    "verb": "delete",
+    "object": {
+      "objectType": "file",
+      "displayName": "4Q2012 Sales Forecast.xls"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/disagree.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/disagree.json b/streams-util/src/test/resources/activities/disagree.json
new file mode 100644
index 0000000..8614e88
--- /dev/null
+++ b/streams-util/src/test/resources/activities/disagree.json
@@ -0,0 +1,30 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "disagree",
+  "object": {
+    "actor": {
+      "objectType": "person",
+      "displayName": "Joe"
+    },
+    "verb": "deny",
+    "object": {
+      "objectType": "task",
+      "actor": {
+        "objectType": "person",
+        "displayName": "Joe"
+      },
+      "verb": "delete",
+      "object": {
+        "objectType": "file",
+        "displayName": "4Q2012 Sales Forecast.xls"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/dislike.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/dislike.json b/streams-util/src/test/resources/activities/dislike.json
new file mode 100644
index 0000000..16c2148
--- /dev/null
+++ b/streams-util/src/test/resources/activities/dislike.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "dislike",
+  "object": {
+    "objectType": "person",
+    "displayName": "Sally"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/experience.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/experience.json b/streams-util/src/test/resources/activities/experience.json
new file mode 100644
index 0000000..d81d024
--- /dev/null
+++ b/streams-util/src/test/resources/activities/experience.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "experience",
+  "object": {
+    "objectType": "event",
+    "displayName": "Disciplinary Action for Joe"
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/favorite.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/favorite.json b/streams-util/src/test/resources/activities/favorite.json
new file mode 100644
index 0000000..3df99bf
--- /dev/null
+++ b/streams-util/src/test/resources/activities/favorite.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe's Boss"
+  },
+  "verb": "favorite",
+  "object": {
+    "objectType": "person",
+    "displayName": "Sally"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/find.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/find.json b/streams-util/src/test/resources/activities/find.json
new file mode 100644
index 0000000..9c25c59
--- /dev/null
+++ b/streams-util/src/test/resources/activities/find.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "find",
+  "object": {
+    "objectType": "application",
+    "displayName": "Unapproved Software Application"
+  },
+  "location": {
+    "objectType": "place",
+    "displayName": "Sally's Computer"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/flag-as-inappropriate.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/flag-as-inappropriate.json b/streams-util/src/test/resources/activities/flag-as-inappropriate.json
new file mode 100644
index 0000000..6f4d202
--- /dev/null
+++ b/streams-util/src/test/resources/activities/flag-as-inappropriate.json
@@ -0,0 +1,24 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally's Boss"
+  },
+  "verb": "flag-as-inappropriate",
+  "object": {
+    "objectType": "application",
+    "displayName": "Unapproved Software Application",
+    "location": {
+      "displayName": "Sally's Computer"
+    }
+  },
+  "context": {
+    "objectType": "issue",
+    "displayName": "Issue #125",
+    "types": ["http://example.org/violation-of-corporate-policy"]
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/follow.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/follow.json b/streams-util/src/test/resources/activities/follow.json
new file mode 100644
index 0000000..fc8c992
--- /dev/null
+++ b/streams-util/src/test/resources/activities/follow.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "follow",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #125"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/give.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/give.json b/streams-util/src/test/resources/activities/give.json
new file mode 100644
index 0000000..f145296
--- /dev/null
+++ b/streams-util/src/test/resources/activities/give.json
@@ -0,0 +1,28 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe's Boss"
+  },
+  "verb": "give",
+  "object": {
+    "objectType": "note",
+    "displayName": "Notice of Employment Termination"
+  },
+  "target": {
+    "objectType": "collection",
+    "items": [
+      {
+        "objectType": "person",
+        "displayName": "Joe"
+      },
+      {
+        "objectType": "person",
+        "displayName": "Sally"
+      }
+    ]
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/host.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/host.json b/streams-util/src/test/resources/activities/host.json
new file mode 100644
index 0000000..3331353
--- /dev/null
+++ b/streams-util/src/test/resources/activities/host.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Bob"
+  },
+  "verb": "host",
+  "object": {
+    "objectType": "event",
+    "displayName": "Job Interview"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/ignore.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/ignore.json b/streams-util/src/test/resources/activities/ignore.json
new file mode 100644
index 0000000..012013a
--- /dev/null
+++ b/streams-util/src/test/resources/activities/ignore.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "ignore",
+  "object": {
+    "objectType": "note",
+    "displayName": "Joe's request for his job back."
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/insert.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/insert.json b/streams-util/src/test/resources/activities/insert.json
new file mode 100644
index 0000000..57bda66
--- /dev/null
+++ b/streams-util/src/test/resources/activities/insert.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Bob"
+  },
+  "verb": "insert",
+  "object": {
+    "objectType": "note",
+    "displayName": "Notes about Employee Disciplinary Actions"
+  },
+  "target": {
+    "objectType": "file",
+    "displayName": "2013 Corporate Policy Updates.doc"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/install.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/install.json b/streams-util/src/test/resources/activities/install.json
new file mode 100644
index 0000000..1ecdecd
--- /dev/null
+++ b/streams-util/src/test/resources/activities/install.json
@@ -0,0 +1,18 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "install",
+  "object": {
+    "objectType": "application",
+    "displayName": "Approved Software Scanning Tool",
+    "location": {
+      "displayName": "All computers in Building A"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/interact.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/interact.json b/streams-util/src/test/resources/activities/interact.json
new file mode 100644
index 0000000..f427513
--- /dev/null
+++ b/streams-util/src/test/resources/activities/interact.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Bob"
+  },
+  "verb": "interact",
+  "object": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "title": "Bob called Laura."
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/invite.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/invite.json b/streams-util/src/test/resources/activities/invite.json
new file mode 100644
index 0000000..7c84b78
--- /dev/null
+++ b/streams-util/src/test/resources/activities/invite.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "invite",
+  "object": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "target": {
+    "objectType": "event",
+    "displayName": "Job Interview"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/join.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/join.json b/streams-util/src/test/resources/activities/join.json
new file mode 100644
index 0000000..7996a9b
--- /dev/null
+++ b/streams-util/src/test/resources/activities/join.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "join",
+  "object": {
+    "objectType": "organization",
+    "displayName": "Acme, Co"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/leave.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/leave.json b/streams-util/src/test/resources/activities/leave.json
new file mode 100644
index 0000000..08516c5
--- /dev/null
+++ b/streams-util/src/test/resources/activities/leave.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "leave",
+  "object": {
+    "objectType": "organization",
+    "displayName": "Other, Co"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/like.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/like.json b/streams-util/src/test/resources/activities/like.json
new file mode 100644
index 0000000..853676f
--- /dev/null
+++ b/streams-util/src/test/resources/activities/like.json
@@ -0,0 +1,22 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "like",
+  "object": {
+    "actor": {
+      "objectType": "person",
+      "displayName": "Mark"
+    },
+    "verb": "join",
+    "object": {
+      "objectType": "organization",
+      "displayName": "Acme, Co"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/listen.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/listen.json b/streams-util/src/test/resources/activities/listen.json
new file mode 100644
index 0000000..1268060
--- /dev/null
+++ b/streams-util/src/test/resources/activities/listen.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "listen",
+  "object": {
+    "objectType": "audio",
+    "displayName": "Welcome to the Company (Podcast).mp3"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/lose.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/lose.json b/streams-util/src/test/resources/activities/lose.json
new file mode 100644
index 0000000..073e914
--- /dev/null
+++ b/streams-util/src/test/resources/activities/lose.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "organization",
+    "displayName": "New York Yankees"
+  },
+  "verb": "lose",
+  "object": {
+    "objectType": "game",
+    "displayName": "World Series"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/make-friend.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/make-friend.json b/streams-util/src/test/resources/activities/make-friend.json
new file mode 100644
index 0000000..1acf539
--- /dev/null
+++ b/streams-util/src/test/resources/activities/make-friend.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "make-friend",
+  "object": {
+    "objectType": "person",
+    "displayName": "Laura"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/open.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/open.json b/streams-util/src/test/resources/activities/open.json
new file mode 100644
index 0000000..4bf47cd
--- /dev/null
+++ b/streams-util/src/test/resources/activities/open.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "open",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #126"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/play.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/play.json b/streams-util/src/test/resources/activities/play.json
new file mode 100644
index 0000000..0605662
--- /dev/null
+++ b/streams-util/src/test/resources/activities/play.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "play",
+  "object": {
+    "objectType": "audio",
+    "displayName": "Call Me Maybe"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/post.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/post.json b/streams-util/src/test/resources/activities/post.json
new file mode 100644
index 0000000..73cfff7
--- /dev/null
+++ b/streams-util/src/test/resources/activities/post.json
@@ -0,0 +1,25 @@
+{
+  "published": "2011-02-10T15:04:55Z",
+  "actor": {
+    "url": "http://example.org/martin",
+    "objectType" : "person",
+    "id": "tag:example.org,2011:martin",
+    "image": {
+      "url": "http://example.org/martin/image",
+      "width": 250,
+      "height": 250
+    },
+    "displayName": "Martin Smith"
+  },
+  "verb": "post",
+  "object" : {
+    "url": "http://example.org/blog/2011/02/entry",
+    "id": "tag:example.org,2011:abc123/xyz"
+  },
+  "target" : {
+    "url": "http://example.org/blog/",
+    "objectType": "blog",
+    "id": "tag:example.org,2011:abc123",
+    "displayName": "Martin's Blog"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/present.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/present.json b/streams-util/src/test/resources/activities/present.json
new file mode 100644
index 0000000..8f4df12
--- /dev/null
+++ b/streams-util/src/test/resources/activities/present.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "present",
+  "object": {
+    "objectType": "file",
+    "displayName": "1Q2013 Sales Forecast.ppt"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/purchase.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/purchase.json b/streams-util/src/test/resources/activities/purchase.json
new file mode 100644
index 0000000..3354597
--- /dev/null
+++ b/streams-util/src/test/resources/activities/purchase.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "purchase",
+  "object": {
+    "objectType": "video",
+    "displayName": "The Avengers"
+  },
+  "title": "Mark purchased the movie, The Avengers"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/qualify.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/qualify.json b/streams-util/src/test/resources/activities/qualify.json
new file mode 100644
index 0000000..630bda0
--- /dev/null
+++ b/streams-util/src/test/resources/activities/qualify.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "qualify",
+  "object": {
+    "objectType": "offer",
+    "displayName": "Free Money!"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/read.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/read.json b/streams-util/src/test/resources/activities/read.json
new file mode 100644
index 0000000..3509886
--- /dev/null
+++ b/streams-util/src/test/resources/activities/read.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "read",
+  "object": {
+    "objectType": "book",
+    "displayName": "Cloud Atlas"
+  }
+}
+      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/receive.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/receive.json b/streams-util/src/test/resources/activities/receive.json
new file mode 100644
index 0000000..d61245e
--- /dev/null
+++ b/streams-util/src/test/resources/activities/receive.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "receive",
+  "object": {
+    "objectType": "badge",
+    "displayName": "Most Checkins in 24 hours"
+  },
+  "title": "Laura was awarded a badge for \"Most Checkins in 24 hours\""
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/reject.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/reject.json b/streams-util/src/test/resources/activities/reject.json
new file mode 100644
index 0000000..84d1ab1
--- /dev/null
+++ b/streams-util/src/test/resources/activities/reject.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "reject",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #126"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/remove-friend.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/remove-friend.json b/streams-util/src/test/resources/activities/remove-friend.json
new file mode 100644
index 0000000..0a593e9
--- /dev/null
+++ b/streams-util/src/test/resources/activities/remove-friend.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "remove-friend",
+  "object": {
+    "objectType": "person",
+    "displayName": "Laura"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/remove.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/remove.json b/streams-util/src/test/resources/activities/remove.json
new file mode 100644
index 0000000..1f386e9
--- /dev/null
+++ b/streams-util/src/test/resources/activities/remove.json
@@ -0,0 +1,23 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "remove",
+  "object": {
+    "objectType": "image",
+    "displayName": "Cat Photo",
+    "fullImage": {
+      "url": "http://example.org/cats.jpg"
+    }
+  },
+  "target": {
+    "objectType": "collection",
+    "displayName": "Cat Photo Album",
+    "objectTypes": ["image"]
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/replace.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/replace.json b/streams-util/src/test/resources/activities/replace.json
new file mode 100644
index 0000000..f19a35c
--- /dev/null
+++ b/streams-util/src/test/resources/activities/replace.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "replace",
+  "object": {
+    "objectType": "file",
+    "displayName": "Updated 1Q2014 Sales Forecast.xls"
+  },
+  "target": {
+    "objectType": "file",
+    "displayName": "1Q2014 Sales Forecast.xls"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/request-friend.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/request-friend.json b/streams-util/src/test/resources/activities/request-friend.json
new file mode 100644
index 0000000..3e571ee
--- /dev/null
+++ b/streams-util/src/test/resources/activities/request-friend.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "request-friend",
+  "object": {
+    "objectType": "person",
+    "displayName": "Laura"
+  }
+}
+



[17/32] incubator-streams git commit: WIP for apachecon

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
index 667661f..8d904af 100644
--- a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
+++ b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
@@ -1,14 +1,19 @@
 package org.apache.streams.plugins.test;
 
+import com.google.common.base.Predicate;
 import com.google.common.collect.Lists;
+import com.google.common.io.Files;
 import org.apache.streams.plugins.StreamsPojoGenerationConfig;
 import org.apache.streams.plugins.StreamsPojoSourceGenerator;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.annotation.Nullable;
 import java.io.File;
 import java.io.FileFilter;
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -18,6 +23,15 @@ public class StreamsPojoSourceGeneratorTest {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoSourceGeneratorTest.class);
 
+    public static final Predicate<File> javaFilter = new Predicate<File>() {
+        @Override
+        public boolean apply(@Nullable File file) {
+            if( file.getName().endsWith(".java") )
+                return true;
+            else return false;
+        }
+    };
+
     /**
      * Tests that all example activities can be loaded into Activity beans
      *
@@ -54,18 +68,16 @@ public class StreamsPojoSourceGeneratorTest {
         }
 
         File testOutput = new File( "target/generated-sources/test");
-        FileFilter javaFilter = new FileFilter() {
-            @Override
-            public boolean accept(File pathname) {
-            if( pathname.getName().endsWith(".java") )
-                return true;
-            return false;
-            }
-        };
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );
         assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(javaFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() > 133 );
+
 //        assert( testOutput.listFiles(javaFilter).length == 11 );
 //        assert( new File(testOutput + "/traits").exists() == true );
 //        assert( new File(testOutput + "/traits").isDirectory() == true );

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml b/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
index 359179e..21fd50e 100644
--- a/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
+++ b/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
@@ -104,6 +104,7 @@
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>build-helper-maven-plugin</artifactId>
+                <version>1.8</version>
                 <executions>
                     <execution>
                         <id>add-source</id>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java
index 5f83767..4173e50 100644
--- a/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java
@@ -1,11 +1,20 @@
 package org.apache.streams.schema;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * Created by steve on 5/1/16.
  */
 public class FieldUtil {
+
     public static FieldType determineFieldType(ObjectNode fieldNode) {
         String typeSchemaField = "type";
         if( !fieldNode.has(typeSchemaField))
@@ -26,4 +35,25 @@ public class FieldUtil {
         }
         else return null;
     }
+
+    public static FieldType determineArrayType(ObjectNode fieldNode) {
+        if( fieldNode == null ) return null;
+        ObjectNode itemsObjectNode = resolveItemsNode(fieldNode);
+        if( itemsObjectNode != null)
+            return determineFieldType(itemsObjectNode);
+        return null;
+    }
+
+    public static ObjectNode resolveItemsNode(ObjectNode fieldNode) {
+        ObjectNode itemsObjectNode = null;
+
+        if( fieldNode.get("items").isObject() )
+            itemsObjectNode = (ObjectNode) fieldNode.get("items");
+        else if( fieldNode.get("items").isArray() && fieldNode.size() > 0 && fieldNode.get(0).isObject()) {
+            itemsObjectNode = (ObjectNode) fieldNode.get("items").get(0);
+        }
+
+        return itemsObjectNode;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java
index 6b171f3..53f0a98 100644
--- a/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java
@@ -22,9 +22,16 @@ public class FileUtil {
     public static String dropSourcePathPrefix(String inputFile, String sourceDirectory) {
         if(Strings.isNullOrEmpty(sourceDirectory))
             return inputFile;
-        else if( inputFile.contains(sourceDirectory) ) {
-            return inputFile.substring(inputFile.indexOf(sourceDirectory)+sourceDirectory.length()+1);
-        } else return inputFile;
+        else {
+            try {
+                if( inputFile.contains(sourceDirectory) && inputFile.indexOf(sourceDirectory) > 0) {
+                    return inputFile.substring(inputFile.indexOf(sourceDirectory)+sourceDirectory.length()+1);
+                }
+            } catch( Throwable e ) {
+                return inputFile;
+            }
+        }
+        return inputFile;
     }
 
     public static String swapExtension(String inputFile, String originalExtension, String newExtension) {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java b/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java
index e0469c9..ec77367 100644
--- a/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java
@@ -48,14 +48,14 @@ public interface GenerationConfig {
      *         Setting this to false will disable additional properties support,
      *         regardless of the input schema(s).
      */
-    boolean isIncludeAdditionalProperties();
+//    boolean isIncludeAdditionalProperties();
 
     /**
      * Gets the 'targetVersion' configuration option.
      *
      *  @return The target version for generated source files.
      */
-    String getTargetVersion();
+//    String getTargetVersion();
 
 //    /**
 //     * Gets the `includeDynamicAccessors` configuraiton option.

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java
index 3e3b300..cefc5e8 100644
--- a/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java
@@ -3,7 +3,6 @@ package org.apache.streams.schema;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import com.fasterxml.jackson.databind.node.ObjectNode;
-import org.jsonschema2pojo.util.NameHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -21,9 +20,10 @@ public class SchemaUtil {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(SchemaUtil.class);
     private static final JsonNodeFactory NODE_FACTORY = JsonNodeFactory.instance;
+    public static final String ILLEGAL_CHARACTER_REGEX = "[^0-9a-zA-Z_$]";
 
     public static String childQualifiedName(String parentQualifiedName, String childSimpleName) {
-        String safeChildName = childSimpleName.replaceAll(NameHelper.ILLEGAL_CHARACTER_REGEX, "_");
+        String safeChildName = childSimpleName.replaceAll(ILLEGAL_CHARACTER_REGEX, "_");
         return isEmpty(parentQualifiedName) ? safeChildName : parentQualifiedName + "." + safeChildName;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/activity.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/activity.json b/streams-schemas/src/main/jsonschema/activity.json
index 8c058a4..2edd759 100644
--- a/streams-schemas/src/main/jsonschema/activity.json
+++ b/streams-schemas/src/main/jsonschema/activity.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/activity.json#",
     "type": "object",
     "title": "activity",
     "javaInterfaces": ["java.io.Serializable"],
@@ -61,11 +61,11 @@
         },
         "icon": {
             "type": "object",
+            "description": "An IRI[RFC3987] identifying an image resource provides a visual representation of the activity, intended for human consumption. The image SHOULD have an aspect ratio of one (horizontal) to one (vertical) and SHOULD be suitable for presentation at a small size. An activity MAY have an icon property",
             "javaInterfaces": ["java.io.Serializable"],
-            "properties": {
-                "$ref": "./media_link.json#properties"
-            },
-            "description": "An IRI[RFC3987] identifying an image resource provides a visual representation of the activity, intended for human consumption. The image SHOULD have an aspect ratio of one (horizontal) to one (vertical) and SHOULD be suitable for presentation at a small size. An activity MAY have an icon property"
+            "extends": {
+                "$ref": "./media_link.json"
+            }
         },
         "provider": {
             "type": "object",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/collection.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/collection.json b/streams-schemas/src/main/jsonschema/collection.json
index 8173b75..38f83e7 100644
--- a/streams-schemas/src/main/jsonschema/collection.json
+++ b/streams-schemas/src/main/jsonschema/collection.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/collection.json#",
     "type": "object",
     "title": "collection",
     "javaInterfaces": ["java.io.Serializable"],

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/media_link.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/media_link.json b/streams-schemas/src/main/jsonschema/media_link.json
index fa55b2f..e7eece0 100644
--- a/streams-schemas/src/main/jsonschema/media_link.json
+++ b/streams-schemas/src/main/jsonschema/media_link.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/media_link.json#",
     "type": "object",
     "title": "media_link",
     "javaInterfaces": ["java.io.Serializable"],

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/object.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/object.json b/streams-schemas/src/main/jsonschema/object.json
index 97adc3c..94f6719 100644
--- a/streams-schemas/src/main/jsonschema/object.json
+++ b/streams-schemas/src/main/jsonschema/object.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/object.json#",
     "type": "object",
     "title": "object",
     "javaInterfaces": ["java.io.Serializable"],
@@ -18,10 +18,10 @@
         "image": {
             "format": "image",
             "type": "object",
+            "description": "Description of a resource providing a visual representation of the object, intended for human consumption. An object MAY contain an image property whose value is a Media Link.",
             "extends": {
                 "$ref": "./media_link.json"
-            },
-            "description": "Description of a resource providing a visual representation of the object, intended for human consumption. An object MAY contain an image property whose value is a Media Link."
+            }
         },
         "displayName": {
             "type": "string",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/alert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/alert.json b/streams-schemas/src/main/jsonschema/objectTypes/alert.json
index 0ace5de..0fa4d60 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/alert.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/alert.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/alert.json#",
     "type": "object",
     "title": "alert",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/application.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/application.json b/streams-schemas/src/main/jsonschema/objectTypes/application.json
index ceb1208..ea3219d 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/application.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/application.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/application.json#",
     "type": "object",
     "title": "application",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/article.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/article.json b/streams-schemas/src/main/jsonschema/objectTypes/article.json
index 8abc7f7..2260532 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/article.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/article.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/article.json#",
     "type": "object",
     "title": "article",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/audio.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/audio.json b/streams-schemas/src/main/jsonschema/objectTypes/audio.json
index 92cef7f..1e94405 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/audio.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/audio.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/audio.json#",
     "type": "object",
     "title": "audio",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/badge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/badge.json b/streams-schemas/src/main/jsonschema/objectTypes/badge.json
index b743236..08af422 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/badge.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/badge.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/badge.json#",
     "type": "object",
     "title": "badge",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/binary.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/binary.json b/streams-schemas/src/main/jsonschema/objectTypes/binary.json
index 8915633..8723f51 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/binary.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/binary.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/binary.json#",
     "type": "object",
     "title": "binary",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json b/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json
index 3d3e3f1..808555f 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/badge.json#",
     "type": "object",
     "title": "bookmark",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/comment.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/comment.json b/streams-schemas/src/main/jsonschema/objectTypes/comment.json
index 90249c4..1ec2dc2 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/comment.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/comment.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/comment.json#",
     "type": "object",
     "title": "comment",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/device.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/device.json b/streams-schemas/src/main/jsonschema/objectTypes/device.json
index faea368..74dfb39 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/device.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/device.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/device.json#",
     "type": "object",
     "title": "device",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/event.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/event.json b/streams-schemas/src/main/jsonschema/objectTypes/event.json
index 479213f..f6e5fb6 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/event.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/event.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/event.json#",
     "type": "object",
     "title": "event",
     "description": "xCal fromat for vevent",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/file.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/file.json b/streams-schemas/src/main/jsonschema/objectTypes/file.json
index 695ef98..50ec239 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/file.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/file.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/file.json#",
     "type": "object",
     "title": "file",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/folder.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/folder.json b/streams-schemas/src/main/jsonschema/objectTypes/folder.json
index a319efe..35592c1 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/folder.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/folder.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/folder.json#",
     "type": "object",
     "title": "folder",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/game.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/game.json b/streams-schemas/src/main/jsonschema/objectTypes/game.json
index 5f13dfc..ca761ed 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/game.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/game.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/game.json#",
     "type": "object",
     "title": "game",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/group.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/group.json b/streams-schemas/src/main/jsonschema/objectTypes/group.json
index b67d88d..8623922 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/group.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/group.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/group.json#",
     "type": "object",
     "title": "group",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/image.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/image.json b/streams-schemas/src/main/jsonschema/objectTypes/image.json
index 8a19fd1..7eca770 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/image.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/image.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/image.json#",
     "type": "object",
     "title": "image",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/issue.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/issue.json b/streams-schemas/src/main/jsonschema/objectTypes/issue.json
index 29bfe44..29f2fad 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/issue.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/issue.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/issue.json#",
     "type": "object",
     "title": "issue",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/job.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/job.json b/streams-schemas/src/main/jsonschema/objectTypes/job.json
index 2d82975..b832f16 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/job.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/job.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/job.json#",
     "type": "object",
     "title": "job",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/list.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/list.json b/streams-schemas/src/main/jsonschema/objectTypes/list.json
index d7c164a..c93a5e8 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/list.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/list.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/list.json#",
     "type": "object",
     "title": "list",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/note.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/note.json b/streams-schemas/src/main/jsonschema/objectTypes/note.json
index 09de97c..63445d5 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/note.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/note.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/note.json#",
     "type": "object",
     "title": "note",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/offer.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/offer.json b/streams-schemas/src/main/jsonschema/objectTypes/offer.json
index 38db718..6d4b5f2 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/offer.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/offer.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/offer.json#",
     "type": "object",
     "title": "offer",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/organization.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/organization.json b/streams-schemas/src/main/jsonschema/objectTypes/organization.json
index a3fd5a2..7ee7513 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/organization.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/organization.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/organization.json#",
     "type": "object",
     "title": "organization",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/page.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/page.json b/streams-schemas/src/main/jsonschema/objectTypes/page.json
index 4f76aa2..4f18fcf 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/page.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/page.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/page.json#",
     "type": "object",
     "title": "page",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/permission.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/permission.json b/streams-schemas/src/main/jsonschema/objectTypes/permission.json
index 32b395c..2a156dc 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/permission.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/permission.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/permission.json#",
     "type": "object",
     "title": "permission",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/person.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/person.json b/streams-schemas/src/main/jsonschema/objectTypes/person.json
index f42eb8e..6855634 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/person.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/person.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/person.json#",
     "type": "object",
     "title": "person",
     "description": "vCard Format. Does not match PoCO",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json b/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json
index 933804b..1ad4b18 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/photo-album.json#",
     "type": "object",
     "title": "article",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/photo.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/photo.json b/streams-schemas/src/main/jsonschema/objectTypes/photo.json
index 347f25c..ab44aad 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/photo.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/photo.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/photo.json#",
     "type": "object",
     "title": "photo",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/place.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/place.json b/streams-schemas/src/main/jsonschema/objectTypes/place.json
index bb96a79..02d5fe4 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/place.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/place.json
@@ -4,14 +4,12 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/place.json#",
     "type": "object",
     "title": "place",
-    "extends": [
-        {
-            "$ref": "../object.json"
-        }
-    ],
+    "extends": {
+        "$ref": "../object.json"
+    },
     "properties": {
         "objectType": {
             "type": "string",
@@ -19,11 +17,9 @@
         },
         "address": {
           "type": "object",
-          "extends": [
-            {
-              "$ref": "http://www.json-schema.org/address"
-            }
-          ]
+          "extends": {
+            "$ref": "http://www.json-schema.org/address"
+          }
         },
         "position": {
           "type": "object",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/playlist.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/playlist.json b/streams-schemas/src/main/jsonschema/objectTypes/playlist.json
index 6ce9dd2..d40b109 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/playlist.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/playlist.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/playlist.json#",
     "type": "object",
     "title": "playlist",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/process.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/process.json b/streams-schemas/src/main/jsonschema/objectTypes/process.json
index d717cc7..343ff38 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/process.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/process.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/process.json#",
     "type": "object",
     "title": "process",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/product.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/product.json b/streams-schemas/src/main/jsonschema/objectTypes/product.json
index 4e035cf..7614cb9 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/product.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/product.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/product.json#",
     "type": "object",
     "title": "product",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/property.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/property.json b/streams-schemas/src/main/jsonschema/objectTypes/property.json
index 0cd630e..ff2e73b 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/property.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/property.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/property.json#",
     "type": "object",
     "title": "property",
     "description": "A property describes name, path and value. Can be used with delete, update or post verbs",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/question.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/question.json b/streams-schemas/src/main/jsonschema/objectTypes/question.json
index cccdfe0..9383caf 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/question.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/question.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/question.json#",
     "type": "object",
     "title": "question",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/review.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/review.json b/streams-schemas/src/main/jsonschema/objectTypes/review.json
index 7629cb6..5b5ab58 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/review.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/review.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/review.json#",
     "type": "object",
     "title": "review",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/role.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/role.json b/streams-schemas/src/main/jsonschema/objectTypes/role.json
index 25524ab..0521f93 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/role.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/role.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/role.json#",
     "type": "object",
     "title": "role",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/service.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/service.json b/streams-schemas/src/main/jsonschema/objectTypes/service.json
index 3d4a496..ff89fae 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/service.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/service.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/service.json#",
     "type": "object",
     "title": "service",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/song.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/song.json b/streams-schemas/src/main/jsonschema/objectTypes/song.json
index 46d6eb0..2b89d4b 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/song.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/song.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/song.json#",
     "type": "object",
     "title": "song",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/status.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/status.json b/streams-schemas/src/main/jsonschema/objectTypes/status.json
index a029f19..ac7a844 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/status.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/status.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/status.json#",
     "type": "object",
     "title": "status",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/task.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/task.json b/streams-schemas/src/main/jsonschema/objectTypes/task.json
index fb2f39f..2c8a3ea 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/task.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/task.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/task.json#",
     "type": "object",
     "title": "task",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/team.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/team.json b/streams-schemas/src/main/jsonschema/objectTypes/team.json
index 37419a0..f4f7494 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/team.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/team.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/team.json#",
     "type": "object",
     "title": "team",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/objectTypes/video.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/video.json b/streams-schemas/src/main/jsonschema/objectTypes/video.json
index 7ac63d8..88a528d 100644
--- a/streams-schemas/src/main/jsonschema/objectTypes/video.json
+++ b/streams-schemas/src/main/jsonschema/objectTypes/video.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/video.json#",
     "type": "object",
     "title": "video",
     "extends": {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/accept.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/accept.json b/streams-schemas/src/main/jsonschema/verbs/accept.json
index a9f91fe..04efee5 100644
--- a/streams-schemas/src/main/jsonschema/verbs/accept.json
+++ b/streams-schemas/src/main/jsonschema/verbs/accept.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/accept.json#",
     "type": "object",
     "title": "Accept",
     "description": "Indicates that that the actor has accepted the object. For instance, a person accepting an award, or accepting an assignment.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/access.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/access.json b/streams-schemas/src/main/jsonschema/verbs/access.json
index 156e3cb..eb08184 100644
--- a/streams-schemas/src/main/jsonschema/verbs/access.json
+++ b/streams-schemas/src/main/jsonschema/verbs/access.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/access.json#",
     "type": "object",
     "title": "Access",
     "description": "Indicates that the actor has accessed the object. For instance, a person accessing a room, or accessing a file.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/acknowledge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/acknowledge.json b/streams-schemas/src/main/jsonschema/verbs/acknowledge.json
index 2e84c43..aae6209 100644
--- a/streams-schemas/src/main/jsonschema/verbs/acknowledge.json
+++ b/streams-schemas/src/main/jsonschema/verbs/acknowledge.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/acknowledge.json#",
     "type": "object",
     "title": "Acknowledge",
     "description": "Indicates that the actor has acknowledged the object. This effectively signals that the actor is aware of the object's existence.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/add.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/add.json b/streams-schemas/src/main/jsonschema/verbs/add.json
index cec0c58..4d99411 100644
--- a/streams-schemas/src/main/jsonschema/verbs/add.json
+++ b/streams-schemas/src/main/jsonschema/verbs/add.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/add.json#",
     "type": "object",
     "title": "Add",
     "description": "Indicates that the actor has added the object to the target. For instance, adding a photo to an album.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/agree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/agree.json b/streams-schemas/src/main/jsonschema/verbs/agree.json
index 5095153..9e79c2a 100644
--- a/streams-schemas/src/main/jsonschema/verbs/agree.json
+++ b/streams-schemas/src/main/jsonschema/verbs/agree.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/agree.json#",
     "type": "object",
     "title": "Agree",
     "description": "Indicates that the actor agrees with the object. For example, a person agreeing with an argument, or expressing agreement with a particular issue.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/append.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/append.json b/streams-schemas/src/main/jsonschema/verbs/append.json
index 648d192..60e1a82 100644
--- a/streams-schemas/src/main/jsonschema/verbs/append.json
+++ b/streams-schemas/src/main/jsonschema/verbs/append.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/append.json#",
     "type": "object",
     "title": "Append",
     "description": "Indicates that the actor has appended the object to the target. For instance, a person appending a new record to a database.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/approve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/approve.json b/streams-schemas/src/main/jsonschema/verbs/approve.json
index ec66f9b..247871c 100644
--- a/streams-schemas/src/main/jsonschema/verbs/approve.json
+++ b/streams-schemas/src/main/jsonschema/verbs/approve.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/approve.json#",
     "type": "object",
     "title": "Approve",
     "description": "Indicates that the actor has approved the object. For instance, a manager might approve a travel request.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/archive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/archive.json b/streams-schemas/src/main/jsonschema/verbs/archive.json
index 24aea16..7ee2226 100644
--- a/streams-schemas/src/main/jsonschema/verbs/archive.json
+++ b/streams-schemas/src/main/jsonschema/verbs/archive.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/archive.json#",
     "type": "object",
     "title": "Archive",
     "description": "Indicates that the actor has archived the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/assign.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/assign.json b/streams-schemas/src/main/jsonschema/verbs/assign.json
index 8fe5458..1d43041 100644
--- a/streams-schemas/src/main/jsonschema/verbs/assign.json
+++ b/streams-schemas/src/main/jsonschema/verbs/assign.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/assign.json#",
     "type": "object",
     "title": "Assign",
     "description": "Indicates that the actor has assigned the object to the target.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/at.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/at.json b/streams-schemas/src/main/jsonschema/verbs/at.json
index 42c1222..34497e2 100644
--- a/streams-schemas/src/main/jsonschema/verbs/at.json
+++ b/streams-schemas/src/main/jsonschema/verbs/at.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/at.json#",
     "type": "object",
     "title": "At",
     "description": "Indicates that the actor is currently located at the object. For instance, a person being at a specific physical location.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/attach.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/attach.json b/streams-schemas/src/main/jsonschema/verbs/attach.json
index 77ff605..76c5a4f 100644
--- a/streams-schemas/src/main/jsonschema/verbs/attach.json
+++ b/streams-schemas/src/main/jsonschema/verbs/attach.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/attach.json#",
     "type": "object",
     "title": "Attach",
     "description": "Indicates that the actor has attached the object to the target.For instance, a person attaching a file to a wiki page or an email.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/attend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/attend.json b/streams-schemas/src/main/jsonschema/verbs/attend.json
index 07e60fd..6b02d07 100644
--- a/streams-schemas/src/main/jsonschema/verbs/attend.json
+++ b/streams-schemas/src/main/jsonschema/verbs/attend.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/attend.json#",
     "type": "object",
     "title": "Attend",
     "description": "Indicates that the actor has attended the object. For instance, a person attending a meeting.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/author.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/author.json b/streams-schemas/src/main/jsonschema/verbs/author.json
index adc8b28..4898139 100644
--- a/streams-schemas/src/main/jsonschema/verbs/author.json
+++ b/streams-schemas/src/main/jsonschema/verbs/author.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/author.json#",
     "type": "object",
     "title": "Author",
     "description": "Indicates that the actor has authored the object. Note that this is a more specific form of the verb \"create\".",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/authorize.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/authorize.json b/streams-schemas/src/main/jsonschema/verbs/authorize.json
index 7439b06..661e32c 100644
--- a/streams-schemas/src/main/jsonschema/verbs/authorize.json
+++ b/streams-schemas/src/main/jsonschema/verbs/authorize.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/authorize.json#",
     "type": "object",
     "title": "Authorize",
     "description": "Indicates that the actor has authorized the object. If a target is specified, it means that the authorization is specifically in regards to the target. For instance, a service can authorize a person to access a given application; in which case the actor is the service, the object is the person, and the target is the application. In contrast, a person can authorize a request; in which case the actor is the person and the object is the request and there might be no explicit target.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/borrow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/borrow.json b/streams-schemas/src/main/jsonschema/verbs/borrow.json
index ede59c1..74eee36 100644
--- a/streams-schemas/src/main/jsonschema/verbs/borrow.json
+++ b/streams-schemas/src/main/jsonschema/verbs/borrow.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/borrow.json#",
     "type": "object",
     "title": "Borrow",
     "description": "Indicates that the actor has borrowed the object. If a target is specified, it identifies the entity from which the object was borrowed. For instance, if a person borrows a book from a library, the person is the actor, the book is the object and the library is the target.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/build.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/build.json b/streams-schemas/src/main/jsonschema/verbs/build.json
index a90441f..d8e7d25 100644
--- a/streams-schemas/src/main/jsonschema/verbs/build.json
+++ b/streams-schemas/src/main/jsonschema/verbs/build.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/build.json#",
     "type": "object",
     "title": "Build",
     "description": "Indicates that the actor has built the object. For example, if a person builds a model or compiles code.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/cancel.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/cancel.json b/streams-schemas/src/main/jsonschema/verbs/cancel.json
index 4ab2406..0d82c8e 100644
--- a/streams-schemas/src/main/jsonschema/verbs/cancel.json
+++ b/streams-schemas/src/main/jsonschema/verbs/cancel.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/cancel.json#",
     "type": "object",
     "title": "Cancel",
     "description": "Indicates that the actor has canceled the object. For instance, canceling a calendar event.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/checkin.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/checkin.json b/streams-schemas/src/main/jsonschema/verbs/checkin.json
index d59a8c2..88a9c86 100644
--- a/streams-schemas/src/main/jsonschema/verbs/checkin.json
+++ b/streams-schemas/src/main/jsonschema/verbs/checkin.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/checkin.json#",
     "type": "object",
     "title": "checkin",
     "description": "Indicates that the actor has checked-in to the object. For instance, a person checking-in to a Place.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/close.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/close.json b/streams-schemas/src/main/jsonschema/verbs/close.json
index 7aa049d..88a31b6 100644
--- a/streams-schemas/src/main/jsonschema/verbs/close.json
+++ b/streams-schemas/src/main/jsonschema/verbs/close.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/close.json#",
     "type": "object",
     "title": "Close",
     "description": "Indicates that the actor has closed the object. For instance, the object could represent a ticket being tracked in an issue management system.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/complete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/complete.json b/streams-schemas/src/main/jsonschema/verbs/complete.json
index 4a95d48..ddffd0e 100644
--- a/streams-schemas/src/main/jsonschema/verbs/complete.json
+++ b/streams-schemas/src/main/jsonschema/verbs/complete.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/complete.json#",
     "type": "object",
     "title": "Complete",
     "description": "Indicates that the actor has completed the object",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/confirm.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/confirm.json b/streams-schemas/src/main/jsonschema/verbs/confirm.json
index aa8d45c..5148c8c 100644
--- a/streams-schemas/src/main/jsonschema/verbs/confirm.json
+++ b/streams-schemas/src/main/jsonschema/verbs/confirm.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/confirm.json#",
     "type": "object",
     "title": "Confirm",
     "description": "Indicates that the actor has confirmed or agrees with the object. For instance, a software developer might confirm an issue reported against a product.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/consume.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/consume.json b/streams-schemas/src/main/jsonschema/verbs/consume.json
index 3dc558a..661b40b 100644
--- a/streams-schemas/src/main/jsonschema/verbs/consume.json
+++ b/streams-schemas/src/main/jsonschema/verbs/consume.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/consume.json#",
     "type": "object",
     "title": "Consume",
     "description": "Indicates that the actor has consumed the object. The specific meaning is dependent largely on the object's type. For instance, an actor may \"consume\" an audio object, indicating that the actor has listened to it; or an actor may \"consume\" a book, indicating that the book has been read. As such, the \"consume\" verb is a more generic form of other more specific verbs such as \"read\" and \"play\".",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/create.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/create.json b/streams-schemas/src/main/jsonschema/verbs/create.json
index dda3012..c5ad298 100644
--- a/streams-schemas/src/main/jsonschema/verbs/create.json
+++ b/streams-schemas/src/main/jsonschema/verbs/create.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/create.json#",
     "type": "object",
     "title": "Create",
     "description": "Indicates that the actor has created the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/delete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/delete.json b/streams-schemas/src/main/jsonschema/verbs/delete.json
index 39966c9..544bf5d 100644
--- a/streams-schemas/src/main/jsonschema/verbs/delete.json
+++ b/streams-schemas/src/main/jsonschema/verbs/delete.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/delete.json#",
     "type": "object",
     "title": "Delete",
     "description": "Indicates that the actor has deleted the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/deliver.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/deliver.json b/streams-schemas/src/main/jsonschema/verbs/deliver.json
index a4b5648..4d3d2c1 100644
--- a/streams-schemas/src/main/jsonschema/verbs/deliver.json
+++ b/streams-schemas/src/main/jsonschema/verbs/deliver.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/deliver.json#",
     "type": "object",
     "title": "Deliver",
     "description": "Indicates that the actor has delivered the object. For example, delivering a package.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/deny.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/deny.json b/streams-schemas/src/main/jsonschema/verbs/deny.json
index 5bf473b..f880ad3 100644
--- a/streams-schemas/src/main/jsonschema/verbs/deny.json
+++ b/streams-schemas/src/main/jsonschema/verbs/deny.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/deny.json#",
     "type": "object",
     "title": "Deny",
     "description": "Indicates that the actor has denied the object. For example, a manager may deny a travel request.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/disagree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/disagree.json b/streams-schemas/src/main/jsonschema/verbs/disagree.json
index b2eb0c2..17f0c4c 100644
--- a/streams-schemas/src/main/jsonschema/verbs/disagree.json
+++ b/streams-schemas/src/main/jsonschema/verbs/disagree.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/disagree.json#",
     "type": "object",
     "title": "Disagree",
     "description": "Indicates that the actor disagrees with the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/dislike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/dislike.json b/streams-schemas/src/main/jsonschema/verbs/dislike.json
index e33cb26..308d5eb 100644
--- a/streams-schemas/src/main/jsonschema/verbs/dislike.json
+++ b/streams-schemas/src/main/jsonschema/verbs/dislike.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/dislike.json#",
     "type": "object",
     "title": "Dislike",
     "description": "Indicates that the actor dislikes the object. Note that the \"dislike\" verb is distinct from the \"unlike\" verb which assumes that the object had been previously \"liked\".",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/experience.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/experience.json b/streams-schemas/src/main/jsonschema/verbs/experience.json
index b760a5d..543ac2c 100644
--- a/streams-schemas/src/main/jsonschema/verbs/experience.json
+++ b/streams-schemas/src/main/jsonschema/verbs/experience.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/experience.json#",
     "type": "object",
     "title": "Experience",
     "description": "Indicates that the actor has experienced the object in some manner. Note that, depending on the specific object types used for both the actor and object, the meaning of this verb can overlap that of the \"consume\" and \"play\" verbs. For instance, a person might \"experience\" a movie; or \"play\" the movie; or \"consume\" the movie. The \"experience\" verb can be considered a more generic form of other more specific verbs as \"consume\", \"play\", \"watch\", \"listen\", and \"read\"",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/favorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/favorite.json b/streams-schemas/src/main/jsonschema/verbs/favorite.json
index fa7afa3..17e2490 100644
--- a/streams-schemas/src/main/jsonschema/verbs/favorite.json
+++ b/streams-schemas/src/main/jsonschema/verbs/favorite.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/favorite.json#",
     "type": "object",
     "title": "Favorite",
     "description": "Indicates that the actor marked the object as an item of special interest.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/find.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/find.json b/streams-schemas/src/main/jsonschema/verbs/find.json
index b1a7dacc..79ebbe8 100644
--- a/streams-schemas/src/main/jsonschema/verbs/find.json
+++ b/streams-schemas/src/main/jsonschema/verbs/find.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/find.json#",
     "type": "object",
     "title": "Find",
     "description": "Indicates that the actor has found the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json b/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json
index e6657aa..f7b5785 100644
--- a/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json
+++ b/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/flag-as-inappropriate.json#",
     "type": "object",
     "title": "Flag-As-Inappropriate",
     "description": "Indicates that the actor has flagged the object as being inappropriate for some reason. When using this verb, the context property can be used to provide additional detail about why the object has been flagged.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/follow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/follow.json b/streams-schemas/src/main/jsonschema/verbs/follow.json
index 8f50b89..2a922f9 100644
--- a/streams-schemas/src/main/jsonschema/verbs/follow.json
+++ b/streams-schemas/src/main/jsonschema/verbs/follow.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/follow.json#",
     "type": "object",
     "title": "Follow",
     "description": "Indicates that the actor began following the activity of the object. In most cases, the objectType will be a \"person\", but it can potentially be of any type that can sensibly generate activity. Processors MAY ignore (silently drop) successive identical \"follow\" activities.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/give.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/give.json b/streams-schemas/src/main/jsonschema/verbs/give.json
index a9b6e74..952fa59 100644
--- a/streams-schemas/src/main/jsonschema/verbs/give.json
+++ b/streams-schemas/src/main/jsonschema/verbs/give.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/give.json#",
     "type": "object",
     "title": "Give",
     "description": "Indicates that the actor is giving an object to the target. Examples include one person giving a badge object to another person. The object identifies the object being given. The target identifies the receiver.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/host.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/host.json b/streams-schemas/src/main/jsonschema/verbs/host.json
index 8c59cd0..9661abe 100644
--- a/streams-schemas/src/main/jsonschema/verbs/host.json
+++ b/streams-schemas/src/main/jsonschema/verbs/host.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/host.json#",
     "type": "object",
     "title": "Host",
     "description": "Indicates that the actor is hosting the object. As in hosting an event, or hosting a service.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/ignore.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/ignore.json b/streams-schemas/src/main/jsonschema/verbs/ignore.json
index 442de31..ae0ea6a 100644
--- a/streams-schemas/src/main/jsonschema/verbs/ignore.json
+++ b/streams-schemas/src/main/jsonschema/verbs/ignore.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/ignore.json#",
     "type": "object",
     "title": "Ignore",
     "description": "Indicates that the actor has ignored the object. For instance, this verb may be used when an actor has ignored a friend request, in which case the object may be the request-friend activity.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/insert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/insert.json b/streams-schemas/src/main/jsonschema/verbs/insert.json
index 99db2ec..8dcd756 100644
--- a/streams-schemas/src/main/jsonschema/verbs/insert.json
+++ b/streams-schemas/src/main/jsonschema/verbs/insert.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/insert.json#",
     "type": "object",
     "title": "Insert",
     "description": "Indicates that the actor has inserted the object into the target.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/install.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/install.json b/streams-schemas/src/main/jsonschema/verbs/install.json
index e3d6e0c..6b270fa 100644
--- a/streams-schemas/src/main/jsonschema/verbs/install.json
+++ b/streams-schemas/src/main/jsonschema/verbs/install.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/install.json#",
     "type": "object",
     "title": "Install",
     "description": "Indicates that the actor has installed the object, as in installing an application.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/interact.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/interact.json b/streams-schemas/src/main/jsonschema/verbs/interact.json
index d589ce4..5098ee3 100644
--- a/streams-schemas/src/main/jsonschema/verbs/interact.json
+++ b/streams-schemas/src/main/jsonschema/verbs/interact.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/interact.json#",
     "type": "object",
     "title": "Interact",
     "description": "Indicates that the actor has interacted with the object. For instance, when one person interacts with another.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/invite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/invite.json b/streams-schemas/src/main/jsonschema/verbs/invite.json
index 34a8691..625a170 100644
--- a/streams-schemas/src/main/jsonschema/verbs/invite.json
+++ b/streams-schemas/src/main/jsonschema/verbs/invite.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/invite.json#",
     "type": "object",
     "title": "Invite",
     "description": "Indicates that the actor has invited the object, typically a person object, to join or participate in the object described by the target. The target could, for instance, be an event, group or a service.",



[09/32] incubator-streams git commit: STREAMS-398 - streams-schemas

Posted by sb...@apache.org.
STREAMS-398 - streams-schemas

moves jsonschemas to a seperate module
  this averts dependency graph cycle that would occur once streams-plugin-pojo is a dependency of streams-pojo and streams-scala


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/02b5adda
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/02b5adda
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/02b5adda

Branch: refs/feature/STREAMS-389,398
Commit: 02b5adda7694698e732980c4b2702a2b67ff5548
Parents: eea0975
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Thu Apr 21 11:41:59 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Thu Apr 21 11:41:59 2016 -0500

----------------------------------------------------------------------
 streams-schemas/pom.xml                         |  71 ++++++++++++
 .../src/main/jsonschema/activity.json           | 108 +++++++++++++++++++
 .../src/main/jsonschema/collection.json         |  47 ++++++++
 .../src/main/jsonschema/media_link.json         |  34 ++++++
 streams-schemas/src/main/jsonschema/object.json |  98 +++++++++++++++++
 .../src/main/jsonschema/objectTypes/alert.json  |  19 ++++
 .../jsonschema/objectTypes/application.json     |  19 ++++
 .../main/jsonschema/objectTypes/article.json    |  19 ++++
 .../src/main/jsonschema/objectTypes/audio.json  |  19 ++++
 .../src/main/jsonschema/objectTypes/badge.json  |  19 ++++
 .../src/main/jsonschema/objectTypes/binary.json |  19 ++++
 .../main/jsonschema/objectTypes/bookmark.json   |  19 ++++
 .../main/jsonschema/objectTypes/comment.json    |  19 ++++
 .../src/main/jsonschema/objectTypes/device.json |  19 ++++
 .../src/main/jsonschema/objectTypes/event.json  |  51 +++++++++
 .../src/main/jsonschema/objectTypes/file.json   |  25 +++++
 .../src/main/jsonschema/objectTypes/folder.json |  19 ++++
 .../src/main/jsonschema/objectTypes/game.json   |  19 ++++
 .../src/main/jsonschema/objectTypes/group.json  |  19 ++++
 .../src/main/jsonschema/objectTypes/image.json  |  22 ++++
 .../src/main/jsonschema/objectTypes/issue.json  |  25 +++++
 .../src/main/jsonschema/objectTypes/job.json    |  19 ++++
 .../src/main/jsonschema/objectTypes/list.json   |  28 +++++
 .../src/main/jsonschema/objectTypes/note.json   |  19 ++++
 .../src/main/jsonschema/objectTypes/offer.json  |  19 ++++
 .../jsonschema/objectTypes/organization.json    |  19 ++++
 .../src/main/jsonschema/objectTypes/page.json   |  19 ++++
 .../main/jsonschema/objectTypes/permission.json |  36 +++++++
 .../src/main/jsonschema/objectTypes/person.json |  25 +++++
 .../jsonschema/objectTypes/photo-album.json     |  19 ++++
 .../src/main/jsonschema/objectTypes/photo.json  |  23 ++++
 .../src/main/jsonschema/objectTypes/place.json  |  43 ++++++++
 .../main/jsonschema/objectTypes/playlist.json   |  19 ++++
 .../main/jsonschema/objectTypes/process.json    |  19 ++++
 .../main/jsonschema/objectTypes/product.json    |  25 +++++
 .../main/jsonschema/objectTypes/property.json   |  48 +++++++++
 .../main/jsonschema/objectTypes/question.json   |  28 +++++
 .../src/main/jsonschema/objectTypes/review.json |  22 ++++
 .../src/main/jsonschema/objectTypes/role.json   |  25 +++++
 .../main/jsonschema/objectTypes/service.json    |  19 ++++
 .../src/main/jsonschema/objectTypes/song.json   |  19 ++++
 .../src/main/jsonschema/objectTypes/status.json |  19 ++++
 .../src/main/jsonschema/objectTypes/task.json   |  40 +++++++
 .../src/main/jsonschema/objectTypes/team.json   |  19 ++++
 .../src/main/jsonschema/objectTypes/video.json  |  19 ++++
 .../src/main/jsonschema/verbs/accept.json       |  24 +++++
 .../src/main/jsonschema/verbs/access.json       |  24 +++++
 .../src/main/jsonschema/verbs/acknowledge.json  |  24 +++++
 .../src/main/jsonschema/verbs/add.json          |  24 +++++
 .../src/main/jsonschema/verbs/agree.json        |  24 +++++
 .../src/main/jsonschema/verbs/append.json       |  24 +++++
 .../src/main/jsonschema/verbs/approve.json      |  24 +++++
 .../src/main/jsonschema/verbs/archive.json      |  24 +++++
 .../src/main/jsonschema/verbs/assign.json       |  24 +++++
 .../src/main/jsonschema/verbs/at.json           |  24 +++++
 .../src/main/jsonschema/verbs/attach.json       |  24 +++++
 .../src/main/jsonschema/verbs/attend.json       |  24 +++++
 .../src/main/jsonschema/verbs/author.json       |  24 +++++
 .../src/main/jsonschema/verbs/authorize.json    |  24 +++++
 .../src/main/jsonschema/verbs/borrow.json       |  24 +++++
 .../src/main/jsonschema/verbs/build.json        |  24 +++++
 .../src/main/jsonschema/verbs/cancel.json       |  24 +++++
 .../src/main/jsonschema/verbs/checkin.json      |  24 +++++
 .../src/main/jsonschema/verbs/close.json        |  24 +++++
 .../src/main/jsonschema/verbs/complete.json     |  24 +++++
 .../src/main/jsonschema/verbs/confirm.json      |  24 +++++
 .../src/main/jsonschema/verbs/consume.json      |  24 +++++
 .../src/main/jsonschema/verbs/create.json       |  24 +++++
 .../src/main/jsonschema/verbs/delete.json       |  24 +++++
 .../src/main/jsonschema/verbs/deliver.json      |  24 +++++
 .../src/main/jsonschema/verbs/deny.json         |  24 +++++
 .../src/main/jsonschema/verbs/disagree.json     |  24 +++++
 .../src/main/jsonschema/verbs/dislike.json      |  24 +++++
 .../src/main/jsonschema/verbs/experience.json   |  24 +++++
 .../src/main/jsonschema/verbs/favorite.json     |  24 +++++
 .../src/main/jsonschema/verbs/find.json         |  24 +++++
 .../jsonschema/verbs/flag-as-inappropriate.json |  24 +++++
 .../src/main/jsonschema/verbs/follow.json       |  24 +++++
 .../src/main/jsonschema/verbs/give.json         |  24 +++++
 .../src/main/jsonschema/verbs/host.json         |  24 +++++
 .../src/main/jsonschema/verbs/ignore.json       |  24 +++++
 .../src/main/jsonschema/verbs/insert.json       |  24 +++++
 .../src/main/jsonschema/verbs/install.json      |  24 +++++
 .../src/main/jsonschema/verbs/interact.json     |  24 +++++
 .../src/main/jsonschema/verbs/invite.json       |  24 +++++
 .../src/main/jsonschema/verbs/join.json         |  24 +++++
 .../src/main/jsonschema/verbs/leave.json        |  24 +++++
 .../src/main/jsonschema/verbs/like.json         |  24 +++++
 .../src/main/jsonschema/verbs/listen.json       |  24 +++++
 .../src/main/jsonschema/verbs/lose.json         |  24 +++++
 .../src/main/jsonschema/verbs/make-friend.json  |  24 +++++
 .../src/main/jsonschema/verbs/open.json         |  24 +++++
 .../src/main/jsonschema/verbs/play.json         |  24 +++++
 .../src/main/jsonschema/verbs/post.json         |  24 +++++
 .../src/main/jsonschema/verbs/present.json      |  24 +++++
 .../src/main/jsonschema/verbs/purchase.json     |  24 +++++
 .../src/main/jsonschema/verbs/qualify.json      |  24 +++++
 .../src/main/jsonschema/verbs/read.json         |  24 +++++
 .../src/main/jsonschema/verbs/receive.json      |  24 +++++
 .../src/main/jsonschema/verbs/reject.json       |  24 +++++
 .../main/jsonschema/verbs/remove-friend.json    |  24 +++++
 .../src/main/jsonschema/verbs/remove.json       |  24 +++++
 .../src/main/jsonschema/verbs/replace.json      |  24 +++++
 .../main/jsonschema/verbs/request-friend.json   |  24 +++++
 .../src/main/jsonschema/verbs/request.json      |  24 +++++
 .../src/main/jsonschema/verbs/resolve.json      |  24 +++++
 .../src/main/jsonschema/verbs/retract.json      |  24 +++++
 .../src/main/jsonschema/verbs/return.json       |  24 +++++
 .../src/main/jsonschema/verbs/rsvp-maybe.json   |  24 +++++
 .../src/main/jsonschema/verbs/rsvp-no.json      |  24 +++++
 .../src/main/jsonschema/verbs/rsvp-yes.json     |  24 +++++
 .../src/main/jsonschema/verbs/satisfy.json      |  24 +++++
 .../src/main/jsonschema/verbs/save.json         |  24 +++++
 .../src/main/jsonschema/verbs/schedule.json     |  24 +++++
 .../src/main/jsonschema/verbs/search.json       |  24 +++++
 .../src/main/jsonschema/verbs/sell.json         |  24 +++++
 .../src/main/jsonschema/verbs/send.json         |  24 +++++
 .../src/main/jsonschema/verbs/share.json        |  24 +++++
 .../src/main/jsonschema/verbs/sponsor.json      |  24 +++++
 .../src/main/jsonschema/verbs/start.json        |  24 +++++
 .../main/jsonschema/verbs/stop-following.json   |  24 +++++
 .../src/main/jsonschema/verbs/submit.json       |  24 +++++
 .../src/main/jsonschema/verbs/tag.json          |  24 +++++
 .../src/main/jsonschema/verbs/terminate.json    |  24 +++++
 .../src/main/jsonschema/verbs/tie.json          |  24 +++++
 .../src/main/jsonschema/verbs/unfavorite.json   |  24 +++++
 .../src/main/jsonschema/verbs/unlike.json       |  24 +++++
 .../src/main/jsonschema/verbs/unsatisfy.json    |  24 +++++
 .../src/main/jsonschema/verbs/unsave.json       |  24 +++++
 .../src/main/jsonschema/verbs/unshare.json      |  24 +++++
 .../src/main/jsonschema/verbs/update.json       |  34 ++++++
 .../src/main/jsonschema/verbs/use.json          |  24 +++++
 .../src/main/jsonschema/verbs/watch.json        |  24 +++++
 .../src/main/jsonschema/verbs/win.json          |  24 +++++
 streams-schemas/src/main/xmlschema/activity.xsd |  94 ++++++++++++++++
 .../src/site/resources/activity.json            | 108 +++++++++++++++++++
 streams-schemas/src/site/resources/activity.xsd |  94 ++++++++++++++++
 .../src/site/resources/collection.json          |  47 ++++++++
 .../src/site/resources/media_link.json          |  34 ++++++
 streams-schemas/src/site/resources/object.json  |  98 +++++++++++++++++
 .../src/site/resources/objectTypes/alert.json   |  19 ++++
 .../site/resources/objectTypes/application.json |  19 ++++
 .../src/site/resources/objectTypes/article.json |  19 ++++
 .../src/site/resources/objectTypes/audio.json   |  19 ++++
 .../src/site/resources/objectTypes/badge.json   |  19 ++++
 .../src/site/resources/objectTypes/binary.json  |  19 ++++
 .../site/resources/objectTypes/bookmark.json    |  19 ++++
 .../src/site/resources/objectTypes/comment.json |  19 ++++
 .../src/site/resources/objectTypes/device.json  |  19 ++++
 .../src/site/resources/objectTypes/event.json   |  51 +++++++++
 .../src/site/resources/objectTypes/file.json    |  25 +++++
 .../src/site/resources/objectTypes/folder.json  |  19 ++++
 .../src/site/resources/objectTypes/game.json    |  19 ++++
 .../src/site/resources/objectTypes/group.json   |  19 ++++
 .../src/site/resources/objectTypes/image.json   |  22 ++++
 .../src/site/resources/objectTypes/issue.json   |  25 +++++
 .../src/site/resources/objectTypes/job.json     |  19 ++++
 .../src/site/resources/objectTypes/list.json    |  28 +++++
 .../src/site/resources/objectTypes/note.json    |  19 ++++
 .../src/site/resources/objectTypes/offer.json   |  19 ++++
 .../resources/objectTypes/organization.json     |  19 ++++
 .../src/site/resources/objectTypes/page.json    |  19 ++++
 .../site/resources/objectTypes/permission.json  |  36 +++++++
 .../src/site/resources/objectTypes/person.json  |  25 +++++
 .../site/resources/objectTypes/photo-album.json |  19 ++++
 .../src/site/resources/objectTypes/photo.json   |  23 ++++
 .../src/site/resources/objectTypes/place.json   |  43 ++++++++
 .../site/resources/objectTypes/playlist.json    |  19 ++++
 .../src/site/resources/objectTypes/process.json |  19 ++++
 .../src/site/resources/objectTypes/product.json |  25 +++++
 .../site/resources/objectTypes/property.json    |  48 +++++++++
 .../site/resources/objectTypes/question.json    |  28 +++++
 .../src/site/resources/objectTypes/review.json  |  22 ++++
 .../src/site/resources/objectTypes/role.json    |  25 +++++
 .../src/site/resources/objectTypes/service.json |  19 ++++
 .../src/site/resources/objectTypes/song.json    |  19 ++++
 .../src/site/resources/objectTypes/status.json  |  19 ++++
 .../src/site/resources/objectTypes/task.json    |  40 +++++++
 .../src/site/resources/objectTypes/team.json    |  19 ++++
 .../src/site/resources/objectTypes/video.json   |  19 ++++
 .../src/site/resources/verbs/accept.json        |  24 +++++
 .../src/site/resources/verbs/access.json        |  24 +++++
 .../src/site/resources/verbs/acknowledge.json   |  24 +++++
 .../src/site/resources/verbs/add.json           |  24 +++++
 .../src/site/resources/verbs/agree.json         |  24 +++++
 .../src/site/resources/verbs/append.json        |  24 +++++
 .../src/site/resources/verbs/approve.json       |  24 +++++
 .../src/site/resources/verbs/archive.json       |  24 +++++
 .../src/site/resources/verbs/assign.json        |  24 +++++
 .../src/site/resources/verbs/at.json            |  24 +++++
 .../src/site/resources/verbs/attach.json        |  24 +++++
 .../src/site/resources/verbs/attend.json        |  24 +++++
 .../src/site/resources/verbs/author.json        |  24 +++++
 .../src/site/resources/verbs/authorize.json     |  24 +++++
 .../src/site/resources/verbs/borrow.json        |  24 +++++
 .../src/site/resources/verbs/build.json         |  24 +++++
 .../src/site/resources/verbs/cancel.json        |  24 +++++
 .../src/site/resources/verbs/checkin.json       |  24 +++++
 .../src/site/resources/verbs/close.json         |  24 +++++
 .../src/site/resources/verbs/complete.json      |  24 +++++
 .../src/site/resources/verbs/confirm.json       |  24 +++++
 .../src/site/resources/verbs/consume.json       |  24 +++++
 .../src/site/resources/verbs/create.json        |  24 +++++
 .../src/site/resources/verbs/delete.json        |  24 +++++
 .../src/site/resources/verbs/deliver.json       |  24 +++++
 .../src/site/resources/verbs/deny.json          |  24 +++++
 .../src/site/resources/verbs/disagree.json      |  24 +++++
 .../src/site/resources/verbs/dislike.json       |  24 +++++
 .../src/site/resources/verbs/experience.json    |  24 +++++
 .../src/site/resources/verbs/favorite.json      |  24 +++++
 .../src/site/resources/verbs/find.json          |  24 +++++
 .../resources/verbs/flag-as-inappropriate.json  |  24 +++++
 .../src/site/resources/verbs/follow.json        |  24 +++++
 .../src/site/resources/verbs/give.json          |  24 +++++
 .../src/site/resources/verbs/host.json          |  24 +++++
 .../src/site/resources/verbs/ignore.json        |  24 +++++
 .../src/site/resources/verbs/insert.json        |  24 +++++
 .../src/site/resources/verbs/install.json       |  24 +++++
 .../src/site/resources/verbs/interact.json      |  24 +++++
 .../src/site/resources/verbs/invite.json        |  24 +++++
 .../src/site/resources/verbs/join.json          |  24 +++++
 .../src/site/resources/verbs/leave.json         |  24 +++++
 .../src/site/resources/verbs/like.json          |  24 +++++
 .../src/site/resources/verbs/listen.json        |  24 +++++
 .../src/site/resources/verbs/lose.json          |  24 +++++
 .../src/site/resources/verbs/make-friend.json   |  24 +++++
 .../src/site/resources/verbs/open.json          |  24 +++++
 .../src/site/resources/verbs/play.json          |  24 +++++
 .../src/site/resources/verbs/post.json          |  24 +++++
 .../src/site/resources/verbs/present.json       |  24 +++++
 .../src/site/resources/verbs/purchase.json      |  24 +++++
 .../src/site/resources/verbs/qualify.json       |  24 +++++
 .../src/site/resources/verbs/read.json          |  24 +++++
 .../src/site/resources/verbs/receive.json       |  24 +++++
 .../src/site/resources/verbs/reject.json        |  24 +++++
 .../src/site/resources/verbs/remove-friend.json |  24 +++++
 .../src/site/resources/verbs/remove.json        |  24 +++++
 .../src/site/resources/verbs/replace.json       |  24 +++++
 .../site/resources/verbs/request-friend.json    |  24 +++++
 .../src/site/resources/verbs/request.json       |  24 +++++
 .../src/site/resources/verbs/resolve.json       |  24 +++++
 .../src/site/resources/verbs/retract.json       |  24 +++++
 .../src/site/resources/verbs/return.json        |  24 +++++
 .../src/site/resources/verbs/rsvp-maybe.json    |  24 +++++
 .../src/site/resources/verbs/rsvp-no.json       |  24 +++++
 .../src/site/resources/verbs/rsvp-yes.json      |  24 +++++
 .../src/site/resources/verbs/satisfy.json       |  24 +++++
 .../src/site/resources/verbs/save.json          |  24 +++++
 .../src/site/resources/verbs/schedule.json      |  24 +++++
 .../src/site/resources/verbs/search.json        |  24 +++++
 .../src/site/resources/verbs/sell.json          |  24 +++++
 .../src/site/resources/verbs/send.json          |  24 +++++
 .../src/site/resources/verbs/share.json         |  24 +++++
 .../src/site/resources/verbs/sponsor.json       |  24 +++++
 .../src/site/resources/verbs/start.json         |  24 +++++
 .../site/resources/verbs/stop-following.json    |  24 +++++
 .../src/site/resources/verbs/submit.json        |  24 +++++
 .../src/site/resources/verbs/tag.json           |  24 +++++
 .../src/site/resources/verbs/terminate.json     |  24 +++++
 .../src/site/resources/verbs/tie.json           |  24 +++++
 .../src/site/resources/verbs/unfavorite.json    |  24 +++++
 .../src/site/resources/verbs/unlike.json        |  24 +++++
 .../src/site/resources/verbs/unsatisfy.json     |  24 +++++
 .../src/site/resources/verbs/unsave.json        |  24 +++++
 .../src/site/resources/verbs/unshare.json       |  24 +++++
 .../src/site/resources/verbs/update.json        |  34 ++++++
 .../src/site/resources/verbs/use.json           |  24 +++++
 .../src/site/resources/verbs/watch.json         |  24 +++++
 .../src/site/resources/verbs/win.json           |  24 +++++
 269 files changed, 7007 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/pom.xml
----------------------------------------------------------------------
diff --git a/streams-schemas/pom.xml b/streams-schemas/pom.xml
new file mode 100644
index 0000000..d64359a
--- /dev/null
+++ b/streams-schemas/pom.xml
@@ -0,0 +1,71 @@
+<?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
+  ~
+  ~   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>
+
+    <parent>
+        <groupId>org.apache.streams</groupId>
+        <artifactId>streams-project</artifactId>
+        <version>0.3-incubating-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>streams-schemas</artifactId>
+    <name>${project.artifactId}</name>
+
+    <description>Activity Streams schemas</description>
+
+    <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>add-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-resource</goal>
+                        </goals>
+                        <configuration>
+                            <resources>
+                                <resource>
+                                    <directory>src/main/jsonschema</directory>
+                                </resource>
+                                <resource>
+                                    <directory>src/main/xmlschema</directory>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/activity.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/activity.json b/streams-schemas/src/main/jsonschema/activity.json
new file mode 100644
index 0000000..8c058a4
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/activity.json
@@ -0,0 +1,108 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "activity",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "An activity construct recounts what an actor did to an object in the past. If there is no actor it simply describes the change.",
+    "additionalProperties": true,
+    "properties": {
+        "id": {
+            "type": "string",
+            "description": "Uniquely identifies each activity within the service",
+            "required": true
+        },
+        "actor": {
+            "type": "object",
+            "required": true,
+            "description": "Describes the entity that performed the activity. An activity MUST contain one actor property whose value is a single Object.",
+            "javaInterfaces": ["java.io.Serializable"],
+            "$ref": "./object.json"
+        },
+        "verb": {
+            "title": "verb",
+            "type": "string",
+            "default": "post",
+            "required": true,
+            "description": "Identifies the action that the activity describes. An activity MUST contain a verb property whose value is a JSON String that is non-empty and matches either the \"isegment-nz-nc\" or the \"IRI\" production in [RFC3987]. Note that the use of a relative reference other than a simple name is not allowed."
+        },
+        "object": {
+            "type": "object",
+            "required": true,
+            "description": "Describes the primary object of the activity. For instance, in the activity, \"John saved a movie to his wishlist\", the object of the activity is \"movie\". An activity SHOULD contain an object property whose value is a single Object. If the object property is not contained, the primary object of the activity MAY be implied by context.",
+            "$ref": "./object.json"
+        },
+        "target": {
+            "type": "object",
+            "description": "Describes the target of the activity. The precise meaning of the activity's target is dependent on the activities verb, but will often be the object the English preposition \"to\". For instance, in the activity, \"John saved a movie to his wishlist\", the target of the activity is \"wishlist\". The activity target MUST NOT be used to identity an indirect object that is not a target of the activity. An activity MAY contain a target property whose value is a single Object.",
+            "$ref": "./object.json"
+        },
+        "published": {
+            "type": "string",
+            "description": "The date and time at which the activity occurred. It is important to note that this is not necessarily the same as the time at which the activity was published. An activity MUST contain a postedTime property.",
+            "format": "date-time"
+        },
+        "updated": {
+            "type": "string",
+            "description": "The date and time at which a previously published activity has been modified. An Activity MAY contain an updatedTime property",
+            "format": "date-time"
+        },
+        "generator": {
+            "type": "object",
+            "description": "Describes the application that generated the activity. An activity MAY contain a generator property whose value is a single Object.",
+            "javaInterfaces": ["java.io.Serializable"],
+            "extends": {
+                "$ref": "./object.json"
+            }
+        },
+        "icon": {
+            "type": "object",
+            "javaInterfaces": ["java.io.Serializable"],
+            "properties": {
+                "$ref": "./media_link.json#properties"
+            },
+            "description": "An IRI[RFC3987] identifying an image resource provides a visual representation of the activity, intended for human consumption. The image SHOULD have an aspect ratio of one (horizontal) to one (vertical) and SHOULD be suitable for presentation at a small size. An activity MAY have an icon property"
+        },
+        "provider": {
+            "type": "object",
+            "description": "Describes the application that published the activity. Note that this is not necessarily the same entity that generated the activity. An activity MAY contain a provider property whose value is a single Object",
+            "javaInterfaces": ["java.io.Serializable"],
+            "extends": {
+                "$ref": "./object.json"
+            }
+        },
+        "title": {
+            "type": "string",
+            "description": "Natural-language title or headline for the activity encoded as a single JSON String containing HTML markup. An activity MAY contain a title property",
+            "format": "html"
+        },
+        "content": {
+            "type": "string",
+            "description": "Natural-language description of the activity encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a content property",
+            "format": "html"
+        },
+        "url": {
+            "type": "string",
+            "description": "An IRI [RFC3987] identifying a resource providing an HTML representation of the activity. An activity MAY contain a url property",
+            "format": "url"
+        },
+        "links": {
+            "type": "array",
+            "description": "Links between this object and other resources as defined in Web Linking",
+            "note": "Tell JSON schema team to not put links inside http://json-schema.org/hyper-schema#properties",
+            "items": {
+                "type": "string"
+            }
+        }
+    },
+    "links": [
+        {
+            "rel": "describedby",
+            "href": "./verbs/{verb}.json"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/collection.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/collection.json b/streams-schemas/src/main/jsonschema/collection.json
new file mode 100644
index 0000000..8173b75
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/collection.json
@@ -0,0 +1,47 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "collection",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "A collection is a generic list of Objects of any object type. The objectType of each item in the collection MAY be omitted if the type of object can be established through context. The collection is used primarily as the root of an Activity Streams document, but can be used as the value of extension properties in a variety of situations. ",
+    "properties": {
+        "url": {
+            "type": "string",
+            "description": "An IRI [RFC3987] referencing a JSON document containing the full listing of objects in the collection."
+        },
+        "totalItems": {
+            "type": "integer",
+            "description": "Non-negative integer specifying the total number of activities within the stream. The Stream serialization MAY contain a count property."
+        },
+        "items": {
+            "type": "array",
+            "required": true,
+            "description": "An array containing a listing of Objects of any object type. If used in combination with the url property, the items array can be used to provide a subset of the objects that may be found in the resource identified by the url.",
+            "items": {
+                "type": "object",
+                "extends": {
+                    "$ref": "./object.json"
+                }
+            }
+        },
+        "links": {
+            "type": "array",
+            "optional": true,
+            "description": "Links between an this object and other resources as defined in Web Linking",
+            "extends": {
+                "$ref": "http://json-schema.org/links#properties"
+            }
+        }
+    },
+    "links": [
+        {
+            "rel": "describedby",
+            "href": "http://json-schema.org/schema"
+        }
+    ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/media_link.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/media_link.json b/streams-schemas/src/main/jsonschema/media_link.json
new file mode 100644
index 0000000..fa55b2f
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/media_link.json
@@ -0,0 +1,34 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "media_link",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "Visual representation of an object in the form of an image, video or embedded HTML fragments",
+    "properties": {
+        "duration": {
+            "title": "duration",
+            "type": "number",
+            "description": "A hint to the consumer about the length, in seconds, of the media resource identified by the url property. A media link MAY contain a \"duration\" property when the target resource is a time-based media item such as an audio or video."
+        },
+        "height": {
+            "title": "height",
+            "type": "integer",
+            "description": "A hint to the consumer about the height, in pixels, of the media resource identified by the url property. A media link MAY contain a height property when the target resource is a visual media item such as an image, video or embeddable HTML page."
+        },
+        "width": {
+            "title": "width",
+            "type": "integer",
+            "description": "A hint to the consumer about the width, in pixels, of the media resource identified by the url property. A media link MAY contain a width property when the target resource is a visual media item such as an image, video or embeddable HTML page."
+        },
+        "url": {
+            "type": "string",
+            "required": true,
+            "description": "The IRI of the media resource being linked. A media link MUST have a url property."
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/object.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/object.json b/streams-schemas/src/main/jsonschema/object.json
new file mode 100644
index 0000000..97adc3c
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/object.json
@@ -0,0 +1,98 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "object",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "Basic object on the web. The only required property is the id",
+    "properties": {
+        "id": {
+            "type": "string",
+            "description": "Provides a permanent, universally unique identifier for the object in the form of an absolute IRI [RFC3987]. An object SHOULD contain a single id property. If an object does not contain an id property, consumers MAY use the value of the url property as a less-reliable, non-unique identifier.",
+            "required": true
+        },
+        "image": {
+            "format": "image",
+            "type": "object",
+            "extends": {
+                "$ref": "./media_link.json"
+            },
+            "description": "Description of a resource providing a visual representation of the object, intended for human consumption. An object MAY contain an image property whose value is a Media Link."
+        },
+        "displayName": {
+            "type": "string",
+            "description": "A natural-language, human-readable and plain-text name for the object. HTML markup MUST NOT be included. An object MAY contain a displayName property. If the object does not specify an objectType property, the object SHOULD specify a displayName"
+        },
+        "summary": {
+            "type": "string",
+            "description": "Natural-language summary of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a summary property"
+        },
+        "content": {
+            "type": "string",
+            "description": "Natural-language description of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An object MAY contain a content property"
+        },
+        "url": {
+            "type": "string",
+            "format": "url",
+            "description": "An IRI [RFC3987] identifying a resource providing an HTML representation of the object. An object MAY contain a url property"
+        },
+        "objectType": {
+            "type": "string",
+            "description": "Identifies the type of object. An object MAY contain an objectType property whose value is a JSON String that is non-empty and matches either the \"isegment-nz-nc\" or the \"IRI\" production in [RFC3987]. Note that the use of a relative reference other than a simple name is not allowed. If no objectType property is contained, the object has no specific type."
+        },
+        "author": {
+            "type": "object",
+            "description": "Describes the entity that created or authored the object. An object MAY contain a single author property whose value is an Object of any type. Note that the author field identifies the entity that created the object and does not necessarily identify the entity that published the object. For instance, it may be the case that an object created by one person is posted and published to a system by an entirely different entity",
+            "javaInterfaces": ["java.io.Serializable"],
+            "extends": {
+                "$ref": "./object.json"
+            }
+        },
+        "published": {
+            "type": "string",
+            "description": "[RFC3339] date-time. The date and time at which the object was published. An object MAY contain a published property",
+            "format": "date-time"
+        },
+        "updated": {
+            "type": "string",
+            "description": "[RFC3339] date-time. The date and time at which a previously published object has been modified. An Object MAY contain an updated property.",
+            "format": "date-time"
+        },
+        "attachments": {
+            "title": "Related objects",
+            "description": "A collection of one or more additional, associated objects, similar to the concept of attached files in an email message. An object MAY have an attachedObjects property whose value is a JSON Array of Objects.",
+            "type": "array",
+            "items": {
+                "type": "object",
+                "javaType": "org.apache.streams.pojo.json.Attachment",
+                "javaInterfaces": ["java.io.Serializable"],
+                "$ref": "./object.json"
+            }
+        },
+        "upstreamDuplicates": {
+            "type": "array",
+            "description": "A JSON Array of one or more absolute IRI's [RFC3987] identifying objects that duplicate this object's content. An object SHOULD contain an upstreamDuplicates property when a publisher is knowingly duplicating with a new ID the content from another object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources",
+            "items": {
+                "type": "string"
+            }
+        },
+        "downstreamDuplicates": {
+            "type": "array",
+            "description": "A JSON Array of one or more absolute IRI's [RFC3987] identifying objects that duplicate this object's content. An object SHOULD contain a downstreamDuplicates property when there are known objects, possibly in a different system, that duplicate the content in this object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources.",
+            "items": {
+                "type": "string"
+            }
+        }
+    },
+    "additionalProperties": true,
+    "links": [
+        {
+            "rel": "describedby",
+            "href": "./objectType/{objectType}.json"
+        }
+    ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/alert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/alert.json b/streams-schemas/src/main/jsonschema/objectTypes/alert.json
new file mode 100644
index 0000000..0ace5de
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/alert.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "alert",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "alert"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/application.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/application.json b/streams-schemas/src/main/jsonschema/objectTypes/application.json
new file mode 100644
index 0000000..ceb1208
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/application.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "application",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "application"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/article.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/article.json b/streams-schemas/src/main/jsonschema/objectTypes/article.json
new file mode 100644
index 0000000..8abc7f7
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/article.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "article",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "article"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/audio.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/audio.json b/streams-schemas/src/main/jsonschema/objectTypes/audio.json
new file mode 100644
index 0000000..92cef7f
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/audio.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "audio",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "audio"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/badge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/badge.json b/streams-schemas/src/main/jsonschema/objectTypes/badge.json
new file mode 100644
index 0000000..b743236
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/badge.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "badge",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "badge"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/binary.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/binary.json b/streams-schemas/src/main/jsonschema/objectTypes/binary.json
new file mode 100644
index 0000000..8915633
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/binary.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "binary",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "binary"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json b/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json
new file mode 100644
index 0000000..3d3e3f1
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "bookmark",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "bookmark"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/comment.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/comment.json b/streams-schemas/src/main/jsonschema/objectTypes/comment.json
new file mode 100644
index 0000000..90249c4
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/comment.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "comment",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "comment"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/device.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/device.json b/streams-schemas/src/main/jsonschema/objectTypes/device.json
new file mode 100644
index 0000000..faea368
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/device.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "device",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "device"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/event.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/event.json b/streams-schemas/src/main/jsonschema/objectTypes/event.json
new file mode 100644
index 0000000..479213f
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/event.json
@@ -0,0 +1,51 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "event",
+    "description": "xCal fromat for vevent",
+    "extends": [
+        {
+            "$ref": "../object.json"
+        },
+        {
+            "$ref": "http://www.json-schema.org/calendar"
+        }
+    ],
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "event"
+        },
+        "attendedBy": {
+            "type": "../collection.json"
+        },
+        "attending": {
+          "type": "../collection.json"
+        },
+        "endTime": {
+          "type": "string",
+          "format": "date-time"
+        },
+        "invited": {
+          "type": "../collection.json"
+        },
+        "maybeAttending": {
+          "type": "../collection.json"
+        },
+        "notAttendedBy": {
+          "type": "../collection.json"
+        },
+        "notAttending": {
+          "type": "../collection.json"
+        },
+        "startTime": {
+          "type": "string",
+          "format": "date-time"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/file.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/file.json b/streams-schemas/src/main/jsonschema/objectTypes/file.json
new file mode 100644
index 0000000..695ef98
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/file.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "file",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "file"
+        },
+        "fileUrl": {
+          "type": "string"
+        },
+        "mimeType": {
+          "type": "string"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/folder.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/folder.json b/streams-schemas/src/main/jsonschema/objectTypes/folder.json
new file mode 100644
index 0000000..a319efe
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/folder.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "folder",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "folder"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/game.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/game.json b/streams-schemas/src/main/jsonschema/objectTypes/game.json
new file mode 100644
index 0000000..5f13dfc
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/game.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "game",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "game"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/group.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/group.json b/streams-schemas/src/main/jsonschema/objectTypes/group.json
new file mode 100644
index 0000000..b67d88d
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/group.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "group",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "group"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/image.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/image.json b/streams-schemas/src/main/jsonschema/objectTypes/image.json
new file mode 100644
index 0000000..8a19fd1
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/image.json
@@ -0,0 +1,22 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "image",
+    "extends": {
+        "$ref": "../media_link.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "image"
+        },
+        "fullImage": {
+          "type": "string"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/issue.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/issue.json b/streams-schemas/src/main/jsonschema/objectTypes/issue.json
new file mode 100644
index 0000000..29bfe44
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/issue.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "issue",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "issue"
+        },
+        "types": {
+          "type": "array",
+          "items": {
+            "type": "string"
+          }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/job.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/job.json b/streams-schemas/src/main/jsonschema/objectTypes/job.json
new file mode 100644
index 0000000..2d82975
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/job.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "job",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "job"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/list.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/list.json b/streams-schemas/src/main/jsonschema/objectTypes/list.json
new file mode 100644
index 0000000..d7c164a
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/list.json
@@ -0,0 +1,28 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "list",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "list"
+        },
+        "items": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "properties": {
+                    "$ref": "../object.json"
+                }
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/note.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/note.json b/streams-schemas/src/main/jsonschema/objectTypes/note.json
new file mode 100644
index 0000000..09de97c
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/note.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "note",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "note"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/offer.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/offer.json b/streams-schemas/src/main/jsonschema/objectTypes/offer.json
new file mode 100644
index 0000000..38db718
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/offer.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "offer",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "offer"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/organization.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/organization.json b/streams-schemas/src/main/jsonschema/objectTypes/organization.json
new file mode 100644
index 0000000..a3fd5a2
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/organization.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "organization",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "organization"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/page.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/page.json b/streams-schemas/src/main/jsonschema/objectTypes/page.json
new file mode 100644
index 0000000..4f76aa2
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/page.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "page",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "page"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/permission.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/permission.json b/streams-schemas/src/main/jsonschema/objectTypes/permission.json
new file mode 100644
index 0000000..32b395c
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/permission.json
@@ -0,0 +1,36 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "permission",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "permission"
+        },
+        "scope": {
+            "type": "object",
+            "extends": {
+              "$ref": "../object.json"
+            }
+        },
+        "actions": {
+            "type": "array",
+            "items": {
+               "type": "string",
+               "enumeration": [
+                  "create",
+                  "delete",
+                  "modify"
+               ]
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/person.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/person.json b/streams-schemas/src/main/jsonschema/objectTypes/person.json
new file mode 100644
index 0000000..f42eb8e
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/person.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "person",
+    "description": "vCard Format. Does not match PoCO",
+    "extends": [
+        {
+            "$ref": "../object.json"
+        },
+        {
+            "$ref": "http://www.json-schema.org/card"
+        }
+    ],
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "person"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json b/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json
new file mode 100644
index 0000000..933804b
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "article",
+    "extends": {
+        "$ref": "../objectTypes/list.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "photo-album"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/photo.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/photo.json b/streams-schemas/src/main/jsonschema/objectTypes/photo.json
new file mode 100644
index 0000000..347f25c
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/photo.json
@@ -0,0 +1,23 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "photo",
+    "extends": {
+        "$ref": "../objectTypes/file.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "photo"
+        },
+        "displayName": {
+            "type": "string",
+            "default": "a photo"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/place.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/place.json b/streams-schemas/src/main/jsonschema/objectTypes/place.json
new file mode 100644
index 0000000..bb96a79
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/place.json
@@ -0,0 +1,43 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "place",
+    "extends": [
+        {
+            "$ref": "../object.json"
+        }
+    ],
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "place"
+        },
+        "address": {
+          "type": "object",
+          "extends": [
+            {
+              "$ref": "http://www.json-schema.org/address"
+            }
+          ]
+        },
+        "position": {
+          "type": "object",
+          "properties": {
+            "altitude": {
+              "type": "number"
+            },
+            "latitude": {
+              "type": "number"
+            },
+            "longitude": {
+              "type": "number"
+            }
+          }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/playlist.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/playlist.json b/streams-schemas/src/main/jsonschema/objectTypes/playlist.json
new file mode 100644
index 0000000..6ce9dd2
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/playlist.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "playlist",
+    "extends": {
+        "$ref": "../objectTypes/list.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "playlist"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/process.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/process.json b/streams-schemas/src/main/jsonschema/objectTypes/process.json
new file mode 100644
index 0000000..d717cc7
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/process.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "process",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "process"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/product.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/product.json b/streams-schemas/src/main/jsonschema/objectTypes/product.json
new file mode 100644
index 0000000..4e035cf
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/product.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "product",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "product"
+        },
+        "fullImage": {
+            "type": "object",
+            "extends": {
+              "$ref": "../media_link.json"
+            }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/property.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/property.json b/streams-schemas/src/main/jsonschema/objectTypes/property.json
new file mode 100644
index 0000000..0cd630e
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/property.json
@@ -0,0 +1,48 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "property",
+    "description": "A property describes name, path and value. Can be used with delete, update or post verbs",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "property"
+        },
+        "displayName": {
+            "type": "string",
+            "description": "The human readable name of the property in the appropriate language",
+            "optional": true
+        },
+        "path": {
+            "type": "string",
+            "description": "dot delimited path to the property in the target. Ex: streetAddress"
+        }
+    },
+    "example": {
+        "actor": {
+            "id": 1212,
+            "displayName": "Peter"
+        },
+        "verb": "update",
+        "time": "2010-08-02T15:29:00Z",
+        "object": {
+            "objectType": "property",
+            "displayName": "street address",
+            "path": "streetAddress",
+            "content": "234 Amazing St"
+        },
+        "target": {
+            "id": 12121,
+            "time": "2010-08-02T15:29:00Z",
+            "displayName": "Peter's House"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/question.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/question.json b/streams-schemas/src/main/jsonschema/objectTypes/question.json
new file mode 100644
index 0000000..cccdfe0
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/question.json
@@ -0,0 +1,28 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "question",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "question"
+        },
+        "options": {
+            "type": "array",
+            "items": {
+               "type": "object",
+                "extends": {
+                  "$ref": "../object.json"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/review.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/review.json b/streams-schemas/src/main/jsonschema/objectTypes/review.json
new file mode 100644
index 0000000..7629cb6
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/review.json
@@ -0,0 +1,22 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "review",
+    "extends": {
+        "$ref": "../objectTypes/article.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "review"
+        },
+        "rating": {
+           "type": "number"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/role.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/role.json b/streams-schemas/src/main/jsonschema/objectTypes/role.json
new file mode 100644
index 0000000..25524ab
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/role.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "role",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "role"
+        },
+        "members": {
+            "type": "object",
+            "extends": {
+              "$ref": "../collection.json"
+            }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/service.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/service.json b/streams-schemas/src/main/jsonschema/objectTypes/service.json
new file mode 100644
index 0000000..3d4a496
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/service.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "service",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "service"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/song.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/song.json b/streams-schemas/src/main/jsonschema/objectTypes/song.json
new file mode 100644
index 0000000..46d6eb0
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/song.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "song",
+    "extends": {
+        "$ref": "../objectTypes/audio.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "song"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/status.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/status.json b/streams-schemas/src/main/jsonschema/objectTypes/status.json
new file mode 100644
index 0000000..a029f19
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/status.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "status",
+    "extends": {
+        "$ref": "../objectTypes/note.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "song"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/task.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/task.json b/streams-schemas/src/main/jsonschema/objectTypes/task.json
new file mode 100644
index 0000000..fb2f39f
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/task.json
@@ -0,0 +1,40 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "task",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "task"
+        },
+        "by": {
+          "type": "string",
+          "format": "date-time"
+        },
+        "prerequisites": {
+          "type": "array",
+          "items": {
+            "type": "object",
+            "$ref": "../activity.json"
+          }
+        },
+        "required": {
+          "type": "boolean"
+        },
+        "supersedes": {
+          "type": "array",
+          "items": {
+            "type": "object",
+            "$ref": "../activity.json"
+          }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/team.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/team.json b/streams-schemas/src/main/jsonschema/objectTypes/team.json
new file mode 100644
index 0000000..37419a0
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/team.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "team",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "team"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/objectTypes/video.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/video.json b/streams-schemas/src/main/jsonschema/objectTypes/video.json
new file mode 100644
index 0000000..7ac63d8
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/objectTypes/video.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "video",
+    "extends": {
+        "$ref": "../objectTypes/file.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "video"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/accept.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/accept.json b/streams-schemas/src/main/jsonschema/verbs/accept.json
new file mode 100644
index 0000000..a9f91fe
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/accept.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Accept",
+    "description": "Indicates that that the actor has accepted the object. For instance, a person accepting an award, or accepting an assignment.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "accept"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} accepted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/access.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/access.json b/streams-schemas/src/main/jsonschema/verbs/access.json
new file mode 100644
index 0000000..156e3cb
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/access.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Access",
+    "description": "Indicates that the actor has accessed the object. For instance, a person accessing a room, or accessing a file.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "access"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} accessed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/acknowledge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/acknowledge.json b/streams-schemas/src/main/jsonschema/verbs/acknowledge.json
new file mode 100644
index 0000000..2e84c43
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/acknowledge.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Acknowledge",
+    "description": "Indicates that the actor has acknowledged the object. This effectively signals that the actor is aware of the object's existence.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "acknowledge"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} acknowledge {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/add.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/add.json b/streams-schemas/src/main/jsonschema/verbs/add.json
new file mode 100644
index 0000000..cec0c58
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/add.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Add",
+    "description": "Indicates that the actor has added the object to the target. For instance, adding a photo to an album.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "add"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} added {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/agree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/agree.json b/streams-schemas/src/main/jsonschema/verbs/agree.json
new file mode 100644
index 0000000..5095153
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/agree.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Agree",
+    "description": "Indicates that the actor agrees with the object. For example, a person agreeing with an argument, or expressing agreement with a particular issue.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "agree"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} agrees with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/append.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/append.json b/streams-schemas/src/main/jsonschema/verbs/append.json
new file mode 100644
index 0000000..648d192
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/append.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Append",
+    "description": "Indicates that the actor has appended the object to the target. For instance, a person appending a new record to a database.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "append"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} append {object.displayName} to {target.displayName}"
+        }
+    }
+}



[16/32] incubator-streams git commit: WIP for apachecon

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/join.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/join.json b/streams-schemas/src/main/jsonschema/verbs/join.json
index 78daed8..5276072 100644
--- a/streams-schemas/src/main/jsonschema/verbs/join.json
+++ b/streams-schemas/src/main/jsonschema/verbs/join.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/join.json#",
     "type": "object",
     "title": "Join",
     "description": "Indicates that the actor has become a member of the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/leave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/leave.json b/streams-schemas/src/main/jsonschema/verbs/leave.json
index 1ce73bc..9995099 100644
--- a/streams-schemas/src/main/jsonschema/verbs/leave.json
+++ b/streams-schemas/src/main/jsonschema/verbs/leave.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/leave.json#",
     "type": "object",
     "title": "Leave",
     "description": "Indicates that the actor has left the object. For instance, a Person leaving a Group or checking-out of a Place.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/like.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/like.json b/streams-schemas/src/main/jsonschema/verbs/like.json
index 4ac1bf7..d583305 100644
--- a/streams-schemas/src/main/jsonschema/verbs/like.json
+++ b/streams-schemas/src/main/jsonschema/verbs/like.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/like.json#",
     "type": "object",
     "title": "Like",
     "description": "Indicates that the actor marked the object as an item of special interest.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/listen.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/listen.json b/streams-schemas/src/main/jsonschema/verbs/listen.json
index 3476144..9982ac6 100644
--- a/streams-schemas/src/main/jsonschema/verbs/listen.json
+++ b/streams-schemas/src/main/jsonschema/verbs/listen.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/listen.json#",
     "type": "object",
     "title": "Listen",
     "description": "Indicates that the actor has listened to the object. This is typically only applicable for objects representing audio content, such as music, an audio-book, or a radio broadcast.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/lose.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/lose.json b/streams-schemas/src/main/jsonschema/verbs/lose.json
index 60899ba..1d959a4 100644
--- a/streams-schemas/src/main/jsonschema/verbs/lose.json
+++ b/streams-schemas/src/main/jsonschema/verbs/lose.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/lose.json#",
     "type": "object",
     "title": "Lose",
     "description": "Indicates that the actor has lost the object. For instance, if a person loses a game.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/make-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/make-friend.json b/streams-schemas/src/main/jsonschema/verbs/make-friend.json
index a6440f1..141aba7 100644
--- a/streams-schemas/src/main/jsonschema/verbs/make-friend.json
+++ b/streams-schemas/src/main/jsonschema/verbs/make-friend.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/make-friend.json#",
     "type": "object",
     "title": "Befriend",
     "description": "Indicates the creation of a friendship that is reciprocated by the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/open.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/open.json b/streams-schemas/src/main/jsonschema/verbs/open.json
index 0145bab..6c06529 100644
--- a/streams-schemas/src/main/jsonschema/verbs/open.json
+++ b/streams-schemas/src/main/jsonschema/verbs/open.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/open.json#",
     "type": "object",
     "title": "Open",
     "description": "Indicates that the actor has opened the object. For instance, the object could represent a ticket being tracked in an issue management system.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/play.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/play.json b/streams-schemas/src/main/jsonschema/verbs/play.json
index 3f25748..115ac11 100644
--- a/streams-schemas/src/main/jsonschema/verbs/play.json
+++ b/streams-schemas/src/main/jsonschema/verbs/play.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/play.json#",
     "type": "object",
     "title": "Play",
     "description": "Indicates that the actor spent some time enjoying the object. For example, if the object is a video this indicates that the subject watched all or part of the video.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/post.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/post.json b/streams-schemas/src/main/jsonschema/verbs/post.json
index ea1ad39..20a5feb 100644
--- a/streams-schemas/src/main/jsonschema/verbs/post.json
+++ b/streams-schemas/src/main/jsonschema/verbs/post.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/post.json#",
     "type": "object",
     "title": "Post",
     "description": "To publish an object",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/present.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/present.json b/streams-schemas/src/main/jsonschema/verbs/present.json
index bcfb1dc..0cf7154 100644
--- a/streams-schemas/src/main/jsonschema/verbs/present.json
+++ b/streams-schemas/src/main/jsonschema/verbs/present.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/present.json#",
     "type": "object",
     "title": "Present",
     "description": "Indicates that the actor has presented the object. For instance, when a person gives a presentation at a conference.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/purchase.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/purchase.json b/streams-schemas/src/main/jsonschema/verbs/purchase.json
index 303386a..e867ad9 100644
--- a/streams-schemas/src/main/jsonschema/verbs/purchase.json
+++ b/streams-schemas/src/main/jsonschema/verbs/purchase.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/purchase.json#",
     "type": "object",
     "title": "Purchase",
     "description": "Indicates that the actor has purchased the object. If a target is specified, in indicates the entity from which the object was purchased.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/qualify.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/qualify.json b/streams-schemas/src/main/jsonschema/verbs/qualify.json
index 974448f..8bc5248 100644
--- a/streams-schemas/src/main/jsonschema/verbs/qualify.json
+++ b/streams-schemas/src/main/jsonschema/verbs/qualify.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/qualify.json#",
     "type": "object",
     "title": "Qualify",
     "description": "Indicates that the actor has qualified for the object. If a target is specified, it indicates the context within which the qualification applies.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/read.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/read.json b/streams-schemas/src/main/jsonschema/verbs/read.json
index e797f41..2776a4e 100644
--- a/streams-schemas/src/main/jsonschema/verbs/read.json
+++ b/streams-schemas/src/main/jsonschema/verbs/read.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/read.json#",
     "type": "object",
     "title": "Read",
     "description": "Indicates that the actor read the object. This is typically only applicable for objects representing printed or written content, such as a book, a message or a comment.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/receive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/receive.json b/streams-schemas/src/main/jsonschema/verbs/receive.json
index 0d44aef..da88b34 100644
--- a/streams-schemas/src/main/jsonschema/verbs/receive.json
+++ b/streams-schemas/src/main/jsonschema/verbs/receive.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/receive.json#",
     "type": "object",
     "title": "Receive",
     "description": "Indicates that the actor is receiving an object. Examples include a person receiving a badge object. The object identifies the object being received.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/reject.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/reject.json b/streams-schemas/src/main/jsonschema/verbs/reject.json
index b82fac7..d8a8bb4 100644
--- a/streams-schemas/src/main/jsonschema/verbs/reject.json
+++ b/streams-schemas/src/main/jsonschema/verbs/reject.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/reject.json#",
     "type": "object",
     "title": "Reject",
     "description": "Indicates that the actor has rejected the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/remove-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/remove-friend.json b/streams-schemas/src/main/jsonschema/verbs/remove-friend.json
index 073441d..84f6b78 100644
--- a/streams-schemas/src/main/jsonschema/verbs/remove-friend.json
+++ b/streams-schemas/src/main/jsonschema/verbs/remove-friend.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/remove-friend.json#",
     "type": "object",
     "title": "UnFriend",
     "description": "Indicates that the actor has removed the object from the collection of friends.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/remove.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/remove.json b/streams-schemas/src/main/jsonschema/verbs/remove.json
index 5b694db..367da5d 100644
--- a/streams-schemas/src/main/jsonschema/verbs/remove.json
+++ b/streams-schemas/src/main/jsonschema/verbs/remove.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/remove.json#",
     "type": "object",
     "title": "Remove",
     "description": "Indicates that the actor has removed the object from the target.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/replace.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/replace.json b/streams-schemas/src/main/jsonschema/verbs/replace.json
index 198c8c5..418ea94 100644
--- a/streams-schemas/src/main/jsonschema/verbs/replace.json
+++ b/streams-schemas/src/main/jsonschema/verbs/replace.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/replace.json#",
     "type": "object",
     "title": "Replace",
     "description": "Indicates that the actor has replaced the target with the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/request-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/request-friend.json b/streams-schemas/src/main/jsonschema/verbs/request-friend.json
index 9e246ca..51333e2 100644
--- a/streams-schemas/src/main/jsonschema/verbs/request-friend.json
+++ b/streams-schemas/src/main/jsonschema/verbs/request-friend.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/request-friend.json#",
     "type": "object",
     "title": "RequestFriend",
     "description": "Indicates the creation of a friendship that has not yet been reciprocated by the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/request.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/request.json b/streams-schemas/src/main/jsonschema/verbs/request.json
index 35807f5..f15104c 100644
--- a/streams-schemas/src/main/jsonschema/verbs/request.json
+++ b/streams-schemas/src/main/jsonschema/verbs/request.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/request.json#",
     "type": "object",
     "title": "Request",
     "description": "Indicates that the actor has requested the object. If a target is specified, it indicates the entity from which the object is being requested.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/resolve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/resolve.json b/streams-schemas/src/main/jsonschema/verbs/resolve.json
index 0b71ce3..2b8365d 100644
--- a/streams-schemas/src/main/jsonschema/verbs/resolve.json
+++ b/streams-schemas/src/main/jsonschema/verbs/resolve.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/resolve.json#",
     "type": "object",
     "title": "Resolve",
     "description": "Indicates that the actor has resolved the object. For instance, the object could represent a ticket being tracked in an issue management system.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/retract.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/retract.json b/streams-schemas/src/main/jsonschema/verbs/retract.json
index ff7cbe7..8ddbcbc 100644
--- a/streams-schemas/src/main/jsonschema/verbs/retract.json
+++ b/streams-schemas/src/main/jsonschema/verbs/retract.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/retract.json#",
     "type": "object",
     "title": "Retract",
     "description": "Indicates that the actor has retracted the object. For instance, if an actor wishes to retract a previously published activity, the object would be the previously published activity that is being retracted.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/return.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/return.json b/streams-schemas/src/main/jsonschema/verbs/return.json
index 14a8cfb..40426cf 100644
--- a/streams-schemas/src/main/jsonschema/verbs/return.json
+++ b/streams-schemas/src/main/jsonschema/verbs/return.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/return.json#",
     "type": "object",
     "title": "Return",
     "description": "Indicates that the actor has returned the object. If a target is specified, it indicates the entity to which the object was returned.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json b/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json
index 4838406..6e9e8f5 100644
--- a/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json
+++ b/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/rsvp-maybe.json#",
     "type": "object",
     "title": "Rsvp Maybe",
     "description": "To indicate that the actor may attend an event",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json b/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json
index dc36ee3..6339f1e 100644
--- a/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json
+++ b/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/rsvp-no.json#",
     "type": "object",
     "title": "Rsvp No",
     "description": "To indicate that the actor will not attend an event",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json b/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json
index f62141e..7fecc78 100644
--- a/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json
+++ b/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/rsvp-yes.json#",
     "type": "object",
     "title": "Rsvp Yes",
     "description": "To indicate that the actor will attend an event",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/satisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/satisfy.json b/streams-schemas/src/main/jsonschema/verbs/satisfy.json
index a719680..9c36006 100644
--- a/streams-schemas/src/main/jsonschema/verbs/satisfy.json
+++ b/streams-schemas/src/main/jsonschema/verbs/satisfy.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/satisfy.json#",
     "type": "object",
     "title": "Satisfy",
     "description": "Indicates that the actor has satisfied the object. If a target is specified, it indicate the context within which the object was satisfied. For instance, if a person satisfies the requirements for a particular challenge, the person is the actor; the requirement is the object; and the challenge is the target.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/save.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/save.json b/streams-schemas/src/main/jsonschema/verbs/save.json
index 1bdbc4b..06ec16f 100644
--- a/streams-schemas/src/main/jsonschema/verbs/save.json
+++ b/streams-schemas/src/main/jsonschema/verbs/save.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/save.json#",
     "type": "object",
     "title": "Save",
     "description": "Indicates that the actor has called out the object as being of interest primarily to him- or herself. Though this action MAY be shared publicly, the implication is that the object has been saved primarily for the actor's own benefit rather than to show it to others as would be indicated by the \"share\" verb.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/schedule.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/schedule.json b/streams-schemas/src/main/jsonschema/verbs/schedule.json
index a9824a3..a42d955 100644
--- a/streams-schemas/src/main/jsonschema/verbs/schedule.json
+++ b/streams-schemas/src/main/jsonschema/verbs/schedule.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/schedule.json#",
     "type": "object",
     "title": "Schedule",
     "description": "Indicates that the actor has scheduled the object. For instance, scheduling a meeting.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/search.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/search.json b/streams-schemas/src/main/jsonschema/verbs/search.json
index 3263bbb..1cb8572 100644
--- a/streams-schemas/src/main/jsonschema/verbs/search.json
+++ b/streams-schemas/src/main/jsonschema/verbs/search.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/search.json#",
     "type": "object",
     "title": "Search",
     "description": "Indicates that the actor is or has searched for the object. If a target is specified, it indicates the context within which the search is or has been conducted.",
@@ -14,7 +14,7 @@
     "properties": {
         "verb": {
             "type": "string",
-            "default": "satisfy"
+            "default": "search"
         },
         "title": {
             "type": "string",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/sell.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/sell.json b/streams-schemas/src/main/jsonschema/verbs/sell.json
index 16aa351..4ec46b6 100644
--- a/streams-schemas/src/main/jsonschema/verbs/sell.json
+++ b/streams-schemas/src/main/jsonschema/verbs/sell.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/sell.json#",
     "type": "object",
     "title": "Sell",
     "description": "Indicates that the actor has sold the object. If a target is specified, it indicates the entity to which the object was sold.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/send.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/send.json b/streams-schemas/src/main/jsonschema/verbs/send.json
index ead4108..69f565c 100644
--- a/streams-schemas/src/main/jsonschema/verbs/send.json
+++ b/streams-schemas/src/main/jsonschema/verbs/send.json
@@ -4,21 +4,21 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/send.json#",
     "type": "object",
-    "title": "Share",
-    "description": "Indicates that the actor has called out the object to readers. In most cases, the actor did not create the object being shared, but is instead drawing attention to it.",
+    "title": "Send",
+    "description": "Indicates that the actor has sent the object to the target.",
     "extends": {
         "$ref": "../activity.json"
     },
     "properties": {
         "verb": {
             "type": "string",
-            "default": "share"
+            "default": "send"
         },
         "title": {
             "type": "string",
-            "default": "{actor.displayName} shared {object.displayName}"
+            "default": "{actor.displayName} sent {object.displayName}"
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/share.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/share.json b/streams-schemas/src/main/jsonschema/verbs/share.json
index 18c0aea..576f5fb 100644
--- a/streams-schemas/src/main/jsonschema/verbs/share.json
+++ b/streams-schemas/src/main/jsonschema/verbs/share.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/share.json#",
     "type": "object",
     "title": "Share",
     "description": "To share an object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/sponsor.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/sponsor.json b/streams-schemas/src/main/jsonschema/verbs/sponsor.json
index cc6f5cf..55445b7 100644
--- a/streams-schemas/src/main/jsonschema/verbs/sponsor.json
+++ b/streams-schemas/src/main/jsonschema/verbs/sponsor.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/sponsor.json#",
     "type": "object",
     "title": "Sponsor",
     "description": "Indicates that the actor has sponsored the object. If a target is specified, it indicates the context within which the sponsorship is offered. For instance, a company can sponsor an event; or an individual can sponsor a project; etc.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/start.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/start.json b/streams-schemas/src/main/jsonschema/verbs/start.json
index 61eaf06..3e52c12 100644
--- a/streams-schemas/src/main/jsonschema/verbs/start.json
+++ b/streams-schemas/src/main/jsonschema/verbs/start.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/start.json#",
     "type": "object",
     "title": "Start",
     "description": "Indicates that the actor has started the object. For instance, when a person starts a project.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/stop-following.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/stop-following.json b/streams-schemas/src/main/jsonschema/verbs/stop-following.json
index e09317d..cd7c521 100644
--- a/streams-schemas/src/main/jsonschema/verbs/stop-following.json
+++ b/streams-schemas/src/main/jsonschema/verbs/stop-following.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/stop-following.json#",
     "type": "object",
     "title": "UnFollow",
     "description": "Indicates that the actor has stopped following the object.",
@@ -14,7 +14,7 @@
     "properties": {
         "verb": {
             "type": "string",
-            "default": "follow"
+            "default": "stop-following"
         },
         "title": {
             "type": "string",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/submit.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/submit.json b/streams-schemas/src/main/jsonschema/verbs/submit.json
index c1d25b1..58582ee 100644
--- a/streams-schemas/src/main/jsonschema/verbs/submit.json
+++ b/streams-schemas/src/main/jsonschema/verbs/submit.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/submit.json#",
     "type": "object",
     "title": "Submit",
     "description": "Indicates that the actor has submitted the object. If a target is specified, it indicates the entity to which the object was submitted.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/tag.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/tag.json b/streams-schemas/src/main/jsonschema/verbs/tag.json
index 6208eae..6ed1632 100644
--- a/streams-schemas/src/main/jsonschema/verbs/tag.json
+++ b/streams-schemas/src/main/jsonschema/verbs/tag.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/tag.json#",
     "type": "object",
     "title": "Tag",
     "description": "Indicates that the actor has associated the object with the target. For example, if the actor specifies that a particular user appears in a photo. the object is the user and the target is the photo.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/terminate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/terminate.json b/streams-schemas/src/main/jsonschema/verbs/terminate.json
index 280eb31..9a4d94c 100644
--- a/streams-schemas/src/main/jsonschema/verbs/terminate.json
+++ b/streams-schemas/src/main/jsonschema/verbs/terminate.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/terminate.json#",
     "type": "object",
     "title": "Terminate",
     "description": "Indicates that the actor has terminated the object.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/tie.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/tie.json b/streams-schemas/src/main/jsonschema/verbs/tie.json
index 7530ed2..6637fb9 100644
--- a/streams-schemas/src/main/jsonschema/verbs/tie.json
+++ b/streams-schemas/src/main/jsonschema/verbs/tie.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/tie.json#",
     "type": "object",
     "title": "Tie",
     "description": "Indicates that the actor has neither won or lost the object. This verb is generally only applicable when the object represents some form of competition, such as a game.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/unfavorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unfavorite.json b/streams-schemas/src/main/jsonschema/verbs/unfavorite.json
index bfa9c20..2b642b4 100644
--- a/streams-schemas/src/main/jsonschema/verbs/unfavorite.json
+++ b/streams-schemas/src/main/jsonschema/verbs/unfavorite.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unfavorite.json#",
     "type": "object",
     "title": "UnFavorite",
     "description": "Indicates that the actor has removed the object from the collection of favorited items.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/unlike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unlike.json b/streams-schemas/src/main/jsonschema/verbs/unlike.json
index 4dc75f6..db0b7bc 100644
--- a/streams-schemas/src/main/jsonschema/verbs/unlike.json
+++ b/streams-schemas/src/main/jsonschema/verbs/unlike.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unlike.json#",
     "type": "object",
     "title": "UnLike",
     "description": "Indicates that the actor has removed the object from the collection of liked items.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json b/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json
index 8ea075b..381818a 100644
--- a/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json
+++ b/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unsatisfy.json#",
     "type": "object",
     "title": "UnSatisfy",
     "description": "Indicates that the actor has not satisfied the object. If a target is specified, it indicates the context within which the object was not satisfied. For instance, if a person fails to satisfy the requirements of some particular challenge, the person is the actor; the requirement is the object and the challenge is the target.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/unsave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unsave.json b/streams-schemas/src/main/jsonschema/verbs/unsave.json
index e45a97f..09f7123 100644
--- a/streams-schemas/src/main/jsonschema/verbs/unsave.json
+++ b/streams-schemas/src/main/jsonschema/verbs/unsave.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unsave.json#",
     "type": "object",
     "title": "UnSave",
     "description": "Indicates that the actor has removed the object from the collection of saved items.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/unshare.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unshare.json b/streams-schemas/src/main/jsonschema/verbs/unshare.json
index 4ca924b..9aceb25 100644
--- a/streams-schemas/src/main/jsonschema/verbs/unshare.json
+++ b/streams-schemas/src/main/jsonschema/verbs/unshare.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unshare.json#",
     "type": "object",
     "title": "UnSave",
     "description": "Indicates that the actor is no longer sharing the object. If a target is specified, it indicates the entity with whom the object is no longer being shared.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/update.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/update.json b/streams-schemas/src/main/jsonschema/verbs/update.json
index 4b143fc..4272bb4 100644
--- a/streams-schemas/src/main/jsonschema/verbs/update.json
+++ b/streams-schemas/src/main/jsonschema/verbs/update.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/update.json#",
     "type": "object",
     "title": "Update",
     "description": "The \"update\" verb indicates that the actor has modified the object. Use of the \"update\" verb is generally reserved to indicate modifications to existing objects or data such as changing an existing user's profile information.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/use.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/use.json b/streams-schemas/src/main/jsonschema/verbs/use.json
index d5a79fd..26c69a6 100644
--- a/streams-schemas/src/main/jsonschema/verbs/use.json
+++ b/streams-schemas/src/main/jsonschema/verbs/use.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/use.json#",
     "type": "object",
     "title": "Use",
     "description": "Indicates that the actor has used the object in some manner.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/watch.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/watch.json b/streams-schemas/src/main/jsonschema/verbs/watch.json
index 192d56e..08d7eb0 100644
--- a/streams-schemas/src/main/jsonschema/verbs/watch.json
+++ b/streams-schemas/src/main/jsonschema/verbs/watch.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/watch.json#",
     "type": "object",
     "title": "Watch",
     "description": "Indicates that the actor has watched the object. This verb is typically applicable only when the object represents dynamic, visible content such as a movie, a television show or a public performance.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/main/jsonschema/verbs/win.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/win.json b/streams-schemas/src/main/jsonschema/verbs/win.json
index a5bef2a..baedbaa 100644
--- a/streams-schemas/src/main/jsonschema/verbs/win.json
+++ b/streams-schemas/src/main/jsonschema/verbs/win.json
@@ -4,7 +4,7 @@
         "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
         "http://www.apache.org/licenses/LICENSE-2.0"
     ],
-    "id": "#",
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/win.json#",
     "type": "object",
     "title": "Win",
     "description": "Indicates that the actor has won the object.  For instance, if a person wins a game.",

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/activity.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/activity.json b/streams-schemas/src/site/resources/activity.json
deleted file mode 100644
index 8c058a4..0000000
--- a/streams-schemas/src/site/resources/activity.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "activity",
-    "javaInterfaces": ["java.io.Serializable"],
-    "description": "An activity construct recounts what an actor did to an object in the past. If there is no actor it simply describes the change.",
-    "additionalProperties": true,
-    "properties": {
-        "id": {
-            "type": "string",
-            "description": "Uniquely identifies each activity within the service",
-            "required": true
-        },
-        "actor": {
-            "type": "object",
-            "required": true,
-            "description": "Describes the entity that performed the activity. An activity MUST contain one actor property whose value is a single Object.",
-            "javaInterfaces": ["java.io.Serializable"],
-            "$ref": "./object.json"
-        },
-        "verb": {
-            "title": "verb",
-            "type": "string",
-            "default": "post",
-            "required": true,
-            "description": "Identifies the action that the activity describes. An activity MUST contain a verb property whose value is a JSON String that is non-empty and matches either the \"isegment-nz-nc\" or the \"IRI\" production in [RFC3987]. Note that the use of a relative reference other than a simple name is not allowed."
-        },
-        "object": {
-            "type": "object",
-            "required": true,
-            "description": "Describes the primary object of the activity. For instance, in the activity, \"John saved a movie to his wishlist\", the object of the activity is \"movie\". An activity SHOULD contain an object property whose value is a single Object. If the object property is not contained, the primary object of the activity MAY be implied by context.",
-            "$ref": "./object.json"
-        },
-        "target": {
-            "type": "object",
-            "description": "Describes the target of the activity. The precise meaning of the activity's target is dependent on the activities verb, but will often be the object the English preposition \"to\". For instance, in the activity, \"John saved a movie to his wishlist\", the target of the activity is \"wishlist\". The activity target MUST NOT be used to identity an indirect object that is not a target of the activity. An activity MAY contain a target property whose value is a single Object.",
-            "$ref": "./object.json"
-        },
-        "published": {
-            "type": "string",
-            "description": "The date and time at which the activity occurred. It is important to note that this is not necessarily the same as the time at which the activity was published. An activity MUST contain a postedTime property.",
-            "format": "date-time"
-        },
-        "updated": {
-            "type": "string",
-            "description": "The date and time at which a previously published activity has been modified. An Activity MAY contain an updatedTime property",
-            "format": "date-time"
-        },
-        "generator": {
-            "type": "object",
-            "description": "Describes the application that generated the activity. An activity MAY contain a generator property whose value is a single Object.",
-            "javaInterfaces": ["java.io.Serializable"],
-            "extends": {
-                "$ref": "./object.json"
-            }
-        },
-        "icon": {
-            "type": "object",
-            "javaInterfaces": ["java.io.Serializable"],
-            "properties": {
-                "$ref": "./media_link.json#properties"
-            },
-            "description": "An IRI[RFC3987] identifying an image resource provides a visual representation of the activity, intended for human consumption. The image SHOULD have an aspect ratio of one (horizontal) to one (vertical) and SHOULD be suitable for presentation at a small size. An activity MAY have an icon property"
-        },
-        "provider": {
-            "type": "object",
-            "description": "Describes the application that published the activity. Note that this is not necessarily the same entity that generated the activity. An activity MAY contain a provider property whose value is a single Object",
-            "javaInterfaces": ["java.io.Serializable"],
-            "extends": {
-                "$ref": "./object.json"
-            }
-        },
-        "title": {
-            "type": "string",
-            "description": "Natural-language title or headline for the activity encoded as a single JSON String containing HTML markup. An activity MAY contain a title property",
-            "format": "html"
-        },
-        "content": {
-            "type": "string",
-            "description": "Natural-language description of the activity encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a content property",
-            "format": "html"
-        },
-        "url": {
-            "type": "string",
-            "description": "An IRI [RFC3987] identifying a resource providing an HTML representation of the activity. An activity MAY contain a url property",
-            "format": "url"
-        },
-        "links": {
-            "type": "array",
-            "description": "Links between this object and other resources as defined in Web Linking",
-            "note": "Tell JSON schema team to not put links inside http://json-schema.org/hyper-schema#properties",
-            "items": {
-                "type": "string"
-            }
-        }
-    },
-    "links": [
-        {
-            "rel": "describedby",
-            "href": "./verbs/{verb}.json"
-        }
-    ]
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/activity.xsd
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/activity.xsd b/streams-schemas/src/site/resources/activity.xsd
deleted file mode 100644
index 1d81b44..0000000
--- a/streams-schemas/src/site/resources/activity.xsd
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
-  ~ 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
-  ~
-  ~   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.
-  -->
-
-<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-    <xs:element name="id" type="xs:string"/>
-    <xs:element name="actor" type="objectType"/>
-    <xs:element name="verb" type="verbType"/>
-    <xs:element name="object" type="objectType"/>
-    <xs:element name="target" type="objectType"/>
-    <xs:element name="object-type" type="xs:string"/>
-    <xs:element name="published" type="xs:dateTime"/>
-    <xs:element name="updated" type="xs:dateTime"/>
-    <xs:element name="provider" type="objectType"/>
-    <xs:element name="title" type="xs:string"/>
-    <xs:element name="content" type="xs:string"/>
-    <xs:element name="url" type="xs:string"/>
-
-    <xs:simpleType name="verbType">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="favorite"/>
-            <xs:enumeration value="follow"/>
-            <xs:enumeration value="join"/>
-            <xs:enumeration value="like"/>
-            <xs:enumeration value="make-friend"/>
-            <xs:enumeration value="play"/>
-            <xs:enumeration value="post"/>
-            <xs:enumeration value="rsvp-yes"/>
-            <xs:enumeration value="rsvp-no"/>
-            <xs:enumeration value="rsvp-maybe"/>
-            <xs:enumeration value="save"/>
-            <xs:enumeration value="share"/>
-            <xs:enumeration value="tag"/>
-            <xs:enumeration value="update"/>
-        </xs:restriction>
-    </xs:simpleType>
-
-    <xs:complexType name="objectType">
-        <xs:sequence>
-            <xs:element name="id" type="xs:string"/>
-            <xs:element name="image" type="mediaLink"/>
-            <xs:element name="displayName" type="xs:string"/>
-            <xs:element name="summary" type="xs:string"/>
-            <xs:element name="content" type="xs:string"/>
-            <xs:element name="url" type="xs:string"/>
-            <xs:element name="published" type="xs:string"/>
-            <xs:element name="updated" type="xs:string"/>
-            <xs:element name="object-type" >
-                <xs:simpleType>
-                    <xs:restriction base="xs:string">
-                        <xs:enumeration value="article"/>
-                        <xs:enumeration value="audio"/>
-                        <xs:enumeration value="badge"/>
-                        <xs:enumeration value="collection"/>
-                        <xs:enumeration value="comment"/>
-                        <xs:enumeration value="course"/>
-                        <xs:enumeration value="file"/>
-                        <xs:enumeration value="image"/>
-                        <xs:enumeration value="person"/>
-                        <xs:enumeration value="review"/>
-                        <xs:enumeration value="service"/>
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:element>
-        </xs:sequence>
-
-    </xs:complexType>
-
-    <xs:complexType name="mediaLink">
-        <xs:sequence>
-            <xs:element name="duration" type="xs:positiveInteger"/>
-            <xs:element name="height" type="xs:positiveInteger"/>
-            <xs:element name="width" type="xs:positiveInteger"/>
-            <xs:element name="url" type="xs:string"/>
-        </xs:sequence>
-    </xs:complexType>
-
-</xs:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/collection.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/collection.json b/streams-schemas/src/site/resources/collection.json
deleted file mode 100644
index 8173b75..0000000
--- a/streams-schemas/src/site/resources/collection.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "collection",
-    "javaInterfaces": ["java.io.Serializable"],
-    "description": "A collection is a generic list of Objects of any object type. The objectType of each item in the collection MAY be omitted if the type of object can be established through context. The collection is used primarily as the root of an Activity Streams document, but can be used as the value of extension properties in a variety of situations. ",
-    "properties": {
-        "url": {
-            "type": "string",
-            "description": "An IRI [RFC3987] referencing a JSON document containing the full listing of objects in the collection."
-        },
-        "totalItems": {
-            "type": "integer",
-            "description": "Non-negative integer specifying the total number of activities within the stream. The Stream serialization MAY contain a count property."
-        },
-        "items": {
-            "type": "array",
-            "required": true,
-            "description": "An array containing a listing of Objects of any object type. If used in combination with the url property, the items array can be used to provide a subset of the objects that may be found in the resource identified by the url.",
-            "items": {
-                "type": "object",
-                "extends": {
-                    "$ref": "./object.json"
-                }
-            }
-        },
-        "links": {
-            "type": "array",
-            "optional": true,
-            "description": "Links between an this object and other resources as defined in Web Linking",
-            "extends": {
-                "$ref": "http://json-schema.org/links#properties"
-            }
-        }
-    },
-    "links": [
-        {
-            "rel": "describedby",
-            "href": "http://json-schema.org/schema"
-        }
-    ]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/media_link.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/media_link.json b/streams-schemas/src/site/resources/media_link.json
deleted file mode 100644
index fa55b2f..0000000
--- a/streams-schemas/src/site/resources/media_link.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "media_link",
-    "javaInterfaces": ["java.io.Serializable"],
-    "description": "Visual representation of an object in the form of an image, video or embedded HTML fragments",
-    "properties": {
-        "duration": {
-            "title": "duration",
-            "type": "number",
-            "description": "A hint to the consumer about the length, in seconds, of the media resource identified by the url property. A media link MAY contain a \"duration\" property when the target resource is a time-based media item such as an audio or video."
-        },
-        "height": {
-            "title": "height",
-            "type": "integer",
-            "description": "A hint to the consumer about the height, in pixels, of the media resource identified by the url property. A media link MAY contain a height property when the target resource is a visual media item such as an image, video or embeddable HTML page."
-        },
-        "width": {
-            "title": "width",
-            "type": "integer",
-            "description": "A hint to the consumer about the width, in pixels, of the media resource identified by the url property. A media link MAY contain a width property when the target resource is a visual media item such as an image, video or embeddable HTML page."
-        },
-        "url": {
-            "type": "string",
-            "required": true,
-            "description": "The IRI of the media resource being linked. A media link MUST have a url property."
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/object.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/object.json b/streams-schemas/src/site/resources/object.json
deleted file mode 100644
index 97adc3c..0000000
--- a/streams-schemas/src/site/resources/object.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "object",
-    "javaInterfaces": ["java.io.Serializable"],
-    "description": "Basic object on the web. The only required property is the id",
-    "properties": {
-        "id": {
-            "type": "string",
-            "description": "Provides a permanent, universally unique identifier for the object in the form of an absolute IRI [RFC3987]. An object SHOULD contain a single id property. If an object does not contain an id property, consumers MAY use the value of the url property as a less-reliable, non-unique identifier.",
-            "required": true
-        },
-        "image": {
-            "format": "image",
-            "type": "object",
-            "extends": {
-                "$ref": "./media_link.json"
-            },
-            "description": "Description of a resource providing a visual representation of the object, intended for human consumption. An object MAY contain an image property whose value is a Media Link."
-        },
-        "displayName": {
-            "type": "string",
-            "description": "A natural-language, human-readable and plain-text name for the object. HTML markup MUST NOT be included. An object MAY contain a displayName property. If the object does not specify an objectType property, the object SHOULD specify a displayName"
-        },
-        "summary": {
-            "type": "string",
-            "description": "Natural-language summary of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a summary property"
-        },
-        "content": {
-            "type": "string",
-            "description": "Natural-language description of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An object MAY contain a content property"
-        },
-        "url": {
-            "type": "string",
-            "format": "url",
-            "description": "An IRI [RFC3987] identifying a resource providing an HTML representation of the object. An object MAY contain a url property"
-        },
-        "objectType": {
-            "type": "string",
-            "description": "Identifies the type of object. An object MAY contain an objectType property whose value is a JSON String that is non-empty and matches either the \"isegment-nz-nc\" or the \"IRI\" production in [RFC3987]. Note that the use of a relative reference other than a simple name is not allowed. If no objectType property is contained, the object has no specific type."
-        },
-        "author": {
-            "type": "object",
-            "description": "Describes the entity that created or authored the object. An object MAY contain a single author property whose value is an Object of any type. Note that the author field identifies the entity that created the object and does not necessarily identify the entity that published the object. For instance, it may be the case that an object created by one person is posted and published to a system by an entirely different entity",
-            "javaInterfaces": ["java.io.Serializable"],
-            "extends": {
-                "$ref": "./object.json"
-            }
-        },
-        "published": {
-            "type": "string",
-            "description": "[RFC3339] date-time. The date and time at which the object was published. An object MAY contain a published property",
-            "format": "date-time"
-        },
-        "updated": {
-            "type": "string",
-            "description": "[RFC3339] date-time. The date and time at which a previously published object has been modified. An Object MAY contain an updated property.",
-            "format": "date-time"
-        },
-        "attachments": {
-            "title": "Related objects",
-            "description": "A collection of one or more additional, associated objects, similar to the concept of attached files in an email message. An object MAY have an attachedObjects property whose value is a JSON Array of Objects.",
-            "type": "array",
-            "items": {
-                "type": "object",
-                "javaType": "org.apache.streams.pojo.json.Attachment",
-                "javaInterfaces": ["java.io.Serializable"],
-                "$ref": "./object.json"
-            }
-        },
-        "upstreamDuplicates": {
-            "type": "array",
-            "description": "A JSON Array of one or more absolute IRI's [RFC3987] identifying objects that duplicate this object's content. An object SHOULD contain an upstreamDuplicates property when a publisher is knowingly duplicating with a new ID the content from another object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources",
-            "items": {
-                "type": "string"
-            }
-        },
-        "downstreamDuplicates": {
-            "type": "array",
-            "description": "A JSON Array of one or more absolute IRI's [RFC3987] identifying objects that duplicate this object's content. An object SHOULD contain a downstreamDuplicates property when there are known objects, possibly in a different system, that duplicate the content in this object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources.",
-            "items": {
-                "type": "string"
-            }
-        }
-    },
-    "additionalProperties": true,
-    "links": [
-        {
-            "rel": "describedby",
-            "href": "./objectType/{objectType}.json"
-        }
-    ]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/alert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/alert.json b/streams-schemas/src/site/resources/objectTypes/alert.json
deleted file mode 100644
index 0ace5de..0000000
--- a/streams-schemas/src/site/resources/objectTypes/alert.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "alert",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "alert"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/application.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/application.json b/streams-schemas/src/site/resources/objectTypes/application.json
deleted file mode 100644
index ceb1208..0000000
--- a/streams-schemas/src/site/resources/objectTypes/application.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "application",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "application"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/article.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/article.json b/streams-schemas/src/site/resources/objectTypes/article.json
deleted file mode 100644
index 8abc7f7..0000000
--- a/streams-schemas/src/site/resources/objectTypes/article.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "article",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "article"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/audio.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/audio.json b/streams-schemas/src/site/resources/objectTypes/audio.json
deleted file mode 100644
index 92cef7f..0000000
--- a/streams-schemas/src/site/resources/objectTypes/audio.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "audio",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "audio"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/badge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/badge.json b/streams-schemas/src/site/resources/objectTypes/badge.json
deleted file mode 100644
index b743236..0000000
--- a/streams-schemas/src/site/resources/objectTypes/badge.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "badge",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "badge"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/binary.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/binary.json b/streams-schemas/src/site/resources/objectTypes/binary.json
deleted file mode 100644
index 8915633..0000000
--- a/streams-schemas/src/site/resources/objectTypes/binary.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "binary",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "binary"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/bookmark.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/bookmark.json b/streams-schemas/src/site/resources/objectTypes/bookmark.json
deleted file mode 100644
index 3d3e3f1..0000000
--- a/streams-schemas/src/site/resources/objectTypes/bookmark.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "bookmark",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "bookmark"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/comment.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/comment.json b/streams-schemas/src/site/resources/objectTypes/comment.json
deleted file mode 100644
index 90249c4..0000000
--- a/streams-schemas/src/site/resources/objectTypes/comment.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "comment",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "comment"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/device.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/device.json b/streams-schemas/src/site/resources/objectTypes/device.json
deleted file mode 100644
index faea368..0000000
--- a/streams-schemas/src/site/resources/objectTypes/device.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "device",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "device"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/event.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/event.json b/streams-schemas/src/site/resources/objectTypes/event.json
deleted file mode 100644
index 479213f..0000000
--- a/streams-schemas/src/site/resources/objectTypes/event.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "event",
-    "description": "xCal fromat for vevent",
-    "extends": [
-        {
-            "$ref": "../object.json"
-        },
-        {
-            "$ref": "http://www.json-schema.org/calendar"
-        }
-    ],
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "event"
-        },
-        "attendedBy": {
-            "type": "../collection.json"
-        },
-        "attending": {
-          "type": "../collection.json"
-        },
-        "endTime": {
-          "type": "string",
-          "format": "date-time"
-        },
-        "invited": {
-          "type": "../collection.json"
-        },
-        "maybeAttending": {
-          "type": "../collection.json"
-        },
-        "notAttendedBy": {
-          "type": "../collection.json"
-        },
-        "notAttending": {
-          "type": "../collection.json"
-        },
-        "startTime": {
-          "type": "string",
-          "format": "date-time"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/file.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/file.json b/streams-schemas/src/site/resources/objectTypes/file.json
deleted file mode 100644
index 695ef98..0000000
--- a/streams-schemas/src/site/resources/objectTypes/file.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "file",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "file"
-        },
-        "fileUrl": {
-          "type": "string"
-        },
-        "mimeType": {
-          "type": "string"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/folder.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/folder.json b/streams-schemas/src/site/resources/objectTypes/folder.json
deleted file mode 100644
index a319efe..0000000
--- a/streams-schemas/src/site/resources/objectTypes/folder.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "folder",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "folder"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/game.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/game.json b/streams-schemas/src/site/resources/objectTypes/game.json
deleted file mode 100644
index 5f13dfc..0000000
--- a/streams-schemas/src/site/resources/objectTypes/game.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "game",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "game"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/group.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/group.json b/streams-schemas/src/site/resources/objectTypes/group.json
deleted file mode 100644
index b67d88d..0000000
--- a/streams-schemas/src/site/resources/objectTypes/group.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "group",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "group"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/image.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/image.json b/streams-schemas/src/site/resources/objectTypes/image.json
deleted file mode 100644
index 8a19fd1..0000000
--- a/streams-schemas/src/site/resources/objectTypes/image.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "image",
-    "extends": {
-        "$ref": "../media_link.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "image"
-        },
-        "fullImage": {
-          "type": "string"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/issue.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/issue.json b/streams-schemas/src/site/resources/objectTypes/issue.json
deleted file mode 100644
index 29bfe44..0000000
--- a/streams-schemas/src/site/resources/objectTypes/issue.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "issue",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "issue"
-        },
-        "types": {
-          "type": "array",
-          "items": {
-            "type": "string"
-          }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/job.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/job.json b/streams-schemas/src/site/resources/objectTypes/job.json
deleted file mode 100644
index 2d82975..0000000
--- a/streams-schemas/src/site/resources/objectTypes/job.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "job",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "job"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/list.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/list.json b/streams-schemas/src/site/resources/objectTypes/list.json
deleted file mode 100644
index d7c164a..0000000
--- a/streams-schemas/src/site/resources/objectTypes/list.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "list",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "list"
-        },
-        "items": {
-            "type": "array",
-            "items": {
-                "type": "object",
-                "properties": {
-                    "$ref": "../object.json"
-                }
-            }
-        }
-    }
-}



[27/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json b/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json
deleted file mode 100644
index 6339f1e..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/rsvp-no.json#",
-    "type": "object",
-    "title": "Rsvp No",
-    "description": "To indicate that the actor will not attend an event",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "rsvp-no"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} will not attend {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json b/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json
deleted file mode 100644
index 7fecc78..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/rsvp-yes.json#",
-    "type": "object",
-    "title": "Rsvp Yes",
-    "description": "To indicate that the actor will attend an event",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "rsvp-yes"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} is attending {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/satisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/satisfy.json b/streams-schemas/src/main/jsonschema/verbs/satisfy.json
deleted file mode 100644
index 9c36006..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/satisfy.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/satisfy.json#",
-    "type": "object",
-    "title": "Satisfy",
-    "description": "Indicates that the actor has satisfied the object. If a target is specified, it indicate the context within which the object was satisfied. For instance, if a person satisfies the requirements for a particular challenge, the person is the actor; the requirement is the object; and the challenge is the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "satisfy"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} has satisfied {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/save.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/save.json b/streams-schemas/src/main/jsonschema/verbs/save.json
deleted file mode 100644
index 06ec16f..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/save.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/save.json#",
-    "type": "object",
-    "title": "Save",
-    "description": "Indicates that the actor has called out the object as being of interest primarily to him- or herself. Though this action MAY be shared publicly, the implication is that the object has been saved primarily for the actor's own benefit rather than to show it to others as would be indicated by the \"share\" verb.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "save"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} saved {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/schedule.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/schedule.json b/streams-schemas/src/main/jsonschema/verbs/schedule.json
deleted file mode 100644
index a42d955..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/schedule.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/schedule.json#",
-    "type": "object",
-    "title": "Schedule",
-    "description": "Indicates that the actor has scheduled the object. For instance, scheduling a meeting.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "schedule"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} scheduled {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/search.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/search.json b/streams-schemas/src/main/jsonschema/verbs/search.json
deleted file mode 100644
index 1cb8572..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/search.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/search.json#",
-    "type": "object",
-    "title": "Search",
-    "description": "Indicates that the actor is or has searched for the object. If a target is specified, it indicates the context within which the search is or has been conducted.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "search"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} search for {object.displayName} in {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/sell.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/sell.json b/streams-schemas/src/main/jsonschema/verbs/sell.json
deleted file mode 100644
index 4ec46b6..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/sell.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/sell.json#",
-    "type": "object",
-    "title": "Sell",
-    "description": "Indicates that the actor has sold the object. If a target is specified, it indicates the entity to which the object was sold.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "sell"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} sold {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/send.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/send.json b/streams-schemas/src/main/jsonschema/verbs/send.json
deleted file mode 100644
index 69f565c..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/send.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/send.json#",
-    "type": "object",
-    "title": "Send",
-    "description": "Indicates that the actor has sent the object to the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "send"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} sent {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/share.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/share.json b/streams-schemas/src/main/jsonschema/verbs/share.json
deleted file mode 100644
index 576f5fb..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/share.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/share.json#",
-    "type": "object",
-    "title": "Share",
-    "description": "To share an object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "share"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} shared {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/sponsor.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/sponsor.json b/streams-schemas/src/main/jsonschema/verbs/sponsor.json
deleted file mode 100644
index 55445b7..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/sponsor.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/sponsor.json#",
-    "type": "object",
-    "title": "Sponsor",
-    "description": "Indicates that the actor has sponsored the object. If a target is specified, it indicates the context within which the sponsorship is offered. For instance, a company can sponsor an event; or an individual can sponsor a project; etc.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "sponsor"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} sponsored {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/start.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/start.json b/streams-schemas/src/main/jsonschema/verbs/start.json
deleted file mode 100644
index 3e52c12..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/start.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/start.json#",
-    "type": "object",
-    "title": "Start",
-    "description": "Indicates that the actor has started the object. For instance, when a person starts a project.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "start"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} started {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/stop-following.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/stop-following.json b/streams-schemas/src/main/jsonschema/verbs/stop-following.json
deleted file mode 100644
index cd7c521..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/stop-following.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/stop-following.json#",
-    "type": "object",
-    "title": "UnFollow",
-    "description": "Indicates that the actor has stopped following the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "stop-following"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} stopped following {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/submit.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/submit.json b/streams-schemas/src/main/jsonschema/verbs/submit.json
deleted file mode 100644
index 58582ee..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/submit.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/submit.json#",
-    "type": "object",
-    "title": "Submit",
-    "description": "Indicates that the actor has submitted the object. If a target is specified, it indicates the entity to which the object was submitted.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "submit"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} submitted {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/tag.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/tag.json b/streams-schemas/src/main/jsonschema/verbs/tag.json
deleted file mode 100644
index 6ed1632..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/tag.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/tag.json#",
-    "type": "object",
-    "title": "Tag",
-    "description": "Indicates that the actor has associated the object with the target. For example, if the actor specifies that a particular user appears in a photo. the object is the user and the target is the photo.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "tag"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} tagged {object.displayName} as {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/terminate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/terminate.json b/streams-schemas/src/main/jsonschema/verbs/terminate.json
deleted file mode 100644
index 9a4d94c..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/terminate.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/terminate.json#",
-    "type": "object",
-    "title": "Terminate",
-    "description": "Indicates that the actor has terminated the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "terminate"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} terminated {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/tie.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/tie.json b/streams-schemas/src/main/jsonschema/verbs/tie.json
deleted file mode 100644
index 6637fb9..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/tie.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/tie.json#",
-    "type": "object",
-    "title": "Tie",
-    "description": "Indicates that the actor has neither won or lost the object. This verb is generally only applicable when the object represents some form of competition, such as a game.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "tie"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} tied at {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/unfavorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unfavorite.json b/streams-schemas/src/main/jsonschema/verbs/unfavorite.json
deleted file mode 100644
index 2b642b4..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/unfavorite.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unfavorite.json#",
-    "type": "object",
-    "title": "UnFavorite",
-    "description": "Indicates that the actor has removed the object from the collection of favorited items.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "unfavorite"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} removed {object.displayName} as a favorite"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/unlike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unlike.json b/streams-schemas/src/main/jsonschema/verbs/unlike.json
deleted file mode 100644
index db0b7bc..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/unlike.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unlike.json#",
-    "type": "object",
-    "title": "UnLike",
-    "description": "Indicates that the actor has removed the object from the collection of liked items.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "unlike"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} no longer likes {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json b/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json
deleted file mode 100644
index 381818a..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unsatisfy.json#",
-    "type": "object",
-    "title": "UnSatisfy",
-    "description": "Indicates that the actor has not satisfied the object. If a target is specified, it indicates the context within which the object was not satisfied. For instance, if a person fails to satisfy the requirements of some particular challenge, the person is the actor; the requirement is the object and the challenge is the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "unsatisfy"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} has not satisfied {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/unsave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unsave.json b/streams-schemas/src/main/jsonschema/verbs/unsave.json
deleted file mode 100644
index 09f7123..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/unsave.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unsave.json#",
-    "type": "object",
-    "title": "UnSave",
-    "description": "Indicates that the actor has removed the object from the collection of saved items.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "unsave"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} unsaved {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/unshare.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unshare.json b/streams-schemas/src/main/jsonschema/verbs/unshare.json
deleted file mode 100644
index 9aceb25..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/unshare.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unshare.json#",
-    "type": "object",
-    "title": "UnSave",
-    "description": "Indicates that the actor is no longer sharing the object. If a target is specified, it indicates the entity with whom the object is no longer being shared.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "unshare"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} is no longer sharing {object.displayName} with {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/update.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/update.json b/streams-schemas/src/main/jsonschema/verbs/update.json
deleted file mode 100644
index 4272bb4..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/update.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/update.json#",
-    "type": "object",
-    "title": "Update",
-    "description": "The \"update\" verb indicates that the actor has modified the object. Use of the \"update\" verb is generally reserved to indicate modifications to existing objects or data such as changing an existing user's profile information.",
-    "notes": "The new property value can be a scalar value or an object. See the property object type",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "update"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} updated {target.displayName}'s {object.displayName} to {object.value}"
-        },
-        "object": {
-            "type": "object",
-            "$ref": "../object.json"
-        },
-        "target": {
-            "type": "object",
-            "optional": true,
-            "$ref": "../object.json"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/use.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/use.json b/streams-schemas/src/main/jsonschema/verbs/use.json
deleted file mode 100644
index 26c69a6..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/use.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/use.json#",
-    "type": "object",
-    "title": "Use",
-    "description": "Indicates that the actor has used the object in some manner.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "use"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} used {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/watch.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/watch.json b/streams-schemas/src/main/jsonschema/verbs/watch.json
deleted file mode 100644
index 08d7eb0..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/watch.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/watch.json#",
-    "type": "object",
-    "title": "Watch",
-    "description": "Indicates that the actor has watched the object. This verb is typically applicable only when the object represents dynamic, visible content such as a movie, a television show or a public performance.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "watch"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} watched {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/win.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/win.json b/streams-schemas/src/main/jsonschema/verbs/win.json
deleted file mode 100644
index baedbaa..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/win.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/win.json#",
-    "type": "object",
-    "title": "Win",
-    "description": "Indicates that the actor has won the object.  For instance, if a person wins a game.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "win"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} won {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/xmlschema/activity.xsd
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/xmlschema/activity.xsd b/streams-schemas/src/main/xmlschema/activity.xsd
deleted file mode 100644
index 1d81b44..0000000
--- a/streams-schemas/src/main/xmlschema/activity.xsd
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
-  ~ 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
-  ~
-  ~   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.
-  -->
-
-<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-    <xs:element name="id" type="xs:string"/>
-    <xs:element name="actor" type="objectType"/>
-    <xs:element name="verb" type="verbType"/>
-    <xs:element name="object" type="objectType"/>
-    <xs:element name="target" type="objectType"/>
-    <xs:element name="object-type" type="xs:string"/>
-    <xs:element name="published" type="xs:dateTime"/>
-    <xs:element name="updated" type="xs:dateTime"/>
-    <xs:element name="provider" type="objectType"/>
-    <xs:element name="title" type="xs:string"/>
-    <xs:element name="content" type="xs:string"/>
-    <xs:element name="url" type="xs:string"/>
-
-    <xs:simpleType name="verbType">
-        <xs:restriction base="xs:string">
-            <xs:enumeration value="favorite"/>
-            <xs:enumeration value="follow"/>
-            <xs:enumeration value="join"/>
-            <xs:enumeration value="like"/>
-            <xs:enumeration value="make-friend"/>
-            <xs:enumeration value="play"/>
-            <xs:enumeration value="post"/>
-            <xs:enumeration value="rsvp-yes"/>
-            <xs:enumeration value="rsvp-no"/>
-            <xs:enumeration value="rsvp-maybe"/>
-            <xs:enumeration value="save"/>
-            <xs:enumeration value="share"/>
-            <xs:enumeration value="tag"/>
-            <xs:enumeration value="update"/>
-        </xs:restriction>
-    </xs:simpleType>
-
-    <xs:complexType name="objectType">
-        <xs:sequence>
-            <xs:element name="id" type="xs:string"/>
-            <xs:element name="image" type="mediaLink"/>
-            <xs:element name="displayName" type="xs:string"/>
-            <xs:element name="summary" type="xs:string"/>
-            <xs:element name="content" type="xs:string"/>
-            <xs:element name="url" type="xs:string"/>
-            <xs:element name="published" type="xs:string"/>
-            <xs:element name="updated" type="xs:string"/>
-            <xs:element name="object-type" >
-                <xs:simpleType>
-                    <xs:restriction base="xs:string">
-                        <xs:enumeration value="article"/>
-                        <xs:enumeration value="audio"/>
-                        <xs:enumeration value="badge"/>
-                        <xs:enumeration value="collection"/>
-                        <xs:enumeration value="comment"/>
-                        <xs:enumeration value="course"/>
-                        <xs:enumeration value="file"/>
-                        <xs:enumeration value="image"/>
-                        <xs:enumeration value="person"/>
-                        <xs:enumeration value="review"/>
-                        <xs:enumeration value="service"/>
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:element>
-        </xs:sequence>
-
-    </xs:complexType>
-
-    <xs:complexType name="mediaLink">
-        <xs:sequence>
-            <xs:element name="duration" type="xs:positiveInteger"/>
-            <xs:element name="height" type="xs:positiveInteger"/>
-            <xs:element name="width" type="xs:positiveInteger"/>
-            <xs:element name="url" type="xs:string"/>
-        </xs:sequence>
-    </xs:complexType>
-
-</xs:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaOrderingTests.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaOrderingTests.java b/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaOrderingTests.java
deleted file mode 100644
index 9979250..0000000
--- a/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaOrderingTests.java
+++ /dev/null
@@ -1,146 +0,0 @@
-package org.apache.streams.schema.test;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterators;
-import com.google.common.collect.Lists;
-import org.apache.streams.schema.Schema;
-import org.apache.streams.schema.SchemaStore;
-import org.junit.Test;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Created by sblackmon on 5/3/16.
- */
-public class SchemaOrderingTests {
-
-    @Test
-    public void compareVerbParent() {
-        SchemaStore schemaStore = new SchemaStore();
-        File update = new File("target/classes/verbs/update.json");
-        schemaStore.create(update.toURI());
-        File activity = new File("target/classes/activity.json");
-        schemaStore.create(activity.toURI());
-        assert( schemaStore.compare( schemaStore.getByUri(update.toURI()).get(), schemaStore.getByUri(activity.toURI()).get()) == 1);
-        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
-        assertContainsItemsEndingWithInOrder(
-                schemaIterator,
-                Lists.newArrayList(
-                        "activity.json",
-                        "update.json"
-                )
-        );
-    }
-
-    @Test
-    public void compareObjectTypeParent() {
-        SchemaStore schemaStore = new SchemaStore();
-        File alert = new File("target/classes/objectTypes/alert.json");
-        schemaStore.create(alert.toURI());
-        File object = new File("target/classes/object.json");
-        schemaStore.create(object.toURI());
-        assert( schemaStore.compare( schemaStore.getByUri(object.toURI()).get(), schemaStore.getByUri(alert.toURI()).get()) == -1);
-        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
-        assertContainsItemsEndingWithInOrder(
-                schemaIterator,
-                Lists.newArrayList(
-                        "object.json",
-                        "alert.json"
-                )
-        );
-    }
-
-    @Test
-    public void compareUnrelated() {
-        SchemaStore schemaStore = new SchemaStore();
-        File alert = new File("target/classes/objectTypes/alert.json");
-        schemaStore.create(alert.toURI());
-        File update = new File("target/classes/verbs/update.json");
-        schemaStore.create(update.toURI());
-        assert( schemaStore.compare( schemaStore.getByUri(alert.toURI()).get(), schemaStore.getByUri(update.toURI()).get()) == 0);
-    }
-
-    @Test
-    public void compareVerbFieldRef() {
-        SchemaStore schemaStore = new SchemaStore();
-        File update = new File("target/classes/verbs/update.json");
-        schemaStore.create(update.toURI());
-        File object = new File("target/classes/object.json");
-        schemaStore.create(object.toURI());
-        assert( schemaStore.compare( schemaStore.getByUri(update.toURI()).get(), schemaStore.getByUri(object.toURI()).get()) == 1);
-        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
-        assertContainsItemsEndingWithInOrder(
-                schemaIterator,
-                Lists.newArrayList(
-                        "object.json",
-                        "update.json"
-                )
-        );
-    }
-
-    @Test
-    public void compareObjectTypeFieldRef() {
-        SchemaStore schemaStore = new SchemaStore();
-        File alert = new File("target/classes/objectTypes/alert.json");
-        schemaStore.create(alert.toURI());
-        File media_link = new File("target/classes/media_link.json");
-        schemaStore.create(media_link.toURI());
-        assert( schemaStore.compare( schemaStore.getByUri(media_link.toURI()).get(), schemaStore.getByUri(alert.toURI()).get()) == -1);
-        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
-        assertContainsItemsEndingWithInOrder(
-                schemaIterator,
-                Lists.newArrayList(
-                        "media_link.json",
-                        "object.json",
-                        "alert.json"
-                )
-        );
-    }
-
-    @Test
-    public void compareVerbAncestorIndirect() {
-        SchemaStore schemaStore = new SchemaStore();
-        File update = new File("target/classes/verbs/update.json");
-        schemaStore.create(update.toURI());
-        File media_link = new File("target/classes/media_link.json");
-        assert( schemaStore.compare( schemaStore.getByUri(media_link.toURI()).get(), schemaStore.getByUri(update.toURI()).get()) == -1);
-        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
-        assertContainsItemsEndingWithInOrder(
-                schemaIterator,
-                Lists.newArrayList(
-                        "media_link.json",
-                        "update.json"
-                )
-        );
-    }
-
-
-    public void assertContainsItemsEndingWithInOrder(Iterator<Schema> iterator, List<String> items) {
-        for( String item : items ) {
-            Optional<Schema> tryFind = Iterators.tryFind( iterator, new SchemaUriEndsWithPredicate(item) );
-            assert( tryFind.isPresent() );
-        }
-    }
-
-    public class SchemaUriEndsWithPredicate implements Predicate<Schema> {
-
-        private String endsWith;
-
-        public SchemaUriEndsWithPredicate(String endsWith) {
-            this.endsWith = endsWith;
-        }
-
-        @Override
-        public boolean apply(Schema input) {
-            return input.getURI().getPath().endsWith(endsWith);
-        }
-
-        @Override
-        public boolean equals(Object object) {
-            return false;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaStoreTests.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaStoreTests.java b/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaStoreTests.java
deleted file mode 100644
index 9e354fe..0000000
--- a/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaStoreTests.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.apache.streams.schema.test;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterators;
-import com.google.common.collect.Lists;
-import org.apache.streams.schema.Schema;
-import org.apache.streams.schema.SchemaStore;
-import org.junit.Test;
-
-import java.io.File;
-import java.net.URI;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Created by sblackmon on 5/2/16.
- */
-public class SchemaStoreTests {
-
-    @Test
-    public void indexMediaLink() {
-        SchemaStore schemaStore = new SchemaStore();
-        File file = new File("target/classes/media_link.json");
-        schemaStore.create(file.toURI());
-        assert( schemaStore.getFileUriCount() == 1);
-        assert( schemaStore.getByUri(file.toURI()).isPresent());
-        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
-    }
-
-    @Test
-    public void indexApprove() {
-        SchemaStore schemaStore = new SchemaStore();
-        File file = new File("target/classes/verbs/approve.json");
-        schemaStore.create(file.toURI());
-        assert( schemaStore.getFileUriCount() == 4);
-        assert( schemaStore.getByUri(file.toURI()).isPresent());
-        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
-    }
-
-    @Test
-    public void indexCollection() {
-        SchemaStore schemaStore = new SchemaStore();
-        File file = new File("target/classes/collection.json");
-        schemaStore.create(file.toURI());
-        assert( schemaStore.getFileUriCount() == 3);
-        assert( schemaStore.getByUri(file.toURI()).isPresent());
-        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
-        Schema collection = schemaStore.getByUri(file.toURI()).get();
-        assert( collection.getParent() == null );
-        assert( schemaStore.getById(
-                URI.create("http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/object.json#"
-                )).isPresent());
-    }
-
-    @Test
-    public void indexUpdate() {
-        SchemaStore schemaStore = new SchemaStore();
-        File file = new File("target/classes/verbs/update.json");
-        schemaStore.create(file.toURI());
-        assert( schemaStore.getFileUriCount() == 4);
-        assert( schemaStore.getByUri(file.toURI()).isPresent());
-        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
-        Schema update = schemaStore.getByUri(file.toURI()).get();
-        assert( update.getParent() != null );
-        assert( update.getParent().getId().getScheme().equals("http"));
-        assert( update.getParent().getId().getHost().equals("streams.incubator.apache.org"));
-        assert( update.getParent().getId().getPath().startsWith("/site/0.3-incubating-SNAPSHOT/streams-schemas"));
-        assert( update.getParent().getId().getPath().endsWith("activity.json"));
-    }
-
-    // test create from messed up URI
-
-    // test create from URI with messed up reference
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/accept.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/accept.json b/streams-schemas/src/test/resources/activities/accept.json
deleted file mode 100644
index c1dfd5f..0000000
--- a/streams-schemas/src/test/resources/activities/accept.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "accept",
-  "object": {
-    "objectType": "job",
-    "displayName": "Director of Marketing"
-  },
-  "title": "Sally accepted the Director of Marketing job."
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/access.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/access.json b/streams-schemas/src/test/resources/activities/access.json
deleted file mode 100644
index 93bc6e2..0000000
--- a/streams-schemas/src/test/resources/activities/access.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "access",
-  "object": {
-    "objectType": "file",
-    "displayName": "4Q2012 Sales Forecast.xls"
-  },
-  "published": "2012-12-12T12:12:12Z",
-  "title": "Joe accessed the file \"4Q2012 Sales Forecast.xls\""
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/acknowledge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/acknowledge.json b/streams-schemas/src/test/resources/activities/acknowledge.json
deleted file mode 100644
index 2b69fa7..0000000
--- a/streams-schemas/src/test/resources/activities/acknowledge.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "acknowledge",
-  "object": {
-    "objectType": "issue",
-    "displayName": "#123: There is a problem with the build"
-  },
-  "content": "Sally acknowledged Issue #123"
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/add.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/add.json b/streams-schemas/src/test/resources/activities/add.json
deleted file mode 100644
index b4e8151..0000000
--- a/streams-schemas/src/test/resources/activities/add.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "add",
-  "object": {
-    "objectType": "image",
-    "displayName": "My cat",
-    "fullImage": {"url": "http://example.org/cat.jpg"}
-  },
-  "target": {
-    "objectType": "collection",
-    "displayName": "Joe's Photo Album",
-    "objectTypes": ["image"]
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/agree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/agree.json b/streams-schemas/src/test/resources/activities/agree.json
deleted file mode 100644
index 3034cd8..0000000
--- a/streams-schemas/src/test/resources/activities/agree.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "agree",
-  "object": {
-    "objectType": "article",
-    "displayName": "Some Random Article Online"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/append.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/append.json b/streams-schemas/src/test/resources/activities/append.json
deleted file mode 100644
index d8fb3be..0000000
--- a/streams-schemas/src/test/resources/activities/append.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "append",
-  "object": {"content": "This is some text"},
-  "target": {
-    "objectType": "file",
-    "displayName": "log.txt"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/approve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/approve.json b/streams-schemas/src/test/resources/activities/approve.json
deleted file mode 100644
index b6f378e..0000000
--- a/streams-schemas/src/test/resources/activities/approve.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "approve",
-  "object": {
-    "objectType": "task",
-    "actor": {"displayName": "Joe"},
-    "verb": "join",
-    "object": {
-      "objectType": "group",
-      "displayName": "Administrators"
-    }
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/archive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/archive.json b/streams-schemas/src/test/resources/activities/archive.json
deleted file mode 100644
index 557dcdf..0000000
--- a/streams-schemas/src/test/resources/activities/archive.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "archive",
-  "object": {
-    "objectType": "file",
-    "displayName": "4Q2012 Sales Forecast.xls"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/assign.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/assign.json b/streams-schemas/src/test/resources/activities/assign.json
deleted file mode 100644
index 51b8a51..0000000
--- a/streams-schemas/src/test/resources/activities/assign.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "assign",
-  "object": {
-    "objectType": "issue",
-    "displayName": "Issue #123: Some Issue"
-  },
-  "target": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "title": "Sally assigned Issue #123 to Joe"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/at.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/at.json b/streams-schemas/src/test/resources/activities/at.json
deleted file mode 100644
index 64a77f9..0000000
--- a/streams-schemas/src/test/resources/activities/at.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "at",
-  "object": {
-    "objectType": "place",
-    "displayName": "Acme, Co."
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/attach.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/attach.json b/streams-schemas/src/test/resources/activities/attach.json
deleted file mode 100644
index 716616b..0000000
--- a/streams-schemas/src/test/resources/activities/attach.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "attach",
-  "object": {
-    "objectType": "binary",
-    "data": "dGhpcyBpcyB1bmNvbXByZXNzZWQgZGF0YQo="
-  },
-  "target": {
-    "objectType": "issue",
-    "displayName": "Issue #123"
-  },
-  "title": "Sally added an attachment to Issue #123"
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/attend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/attend.json b/streams-schemas/src/test/resources/activities/attend.json
deleted file mode 100644
index f8c0838..0000000
--- a/streams-schemas/src/test/resources/activities/attend.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "attend",
-  "object": {
-    "objectType": "event",
-    "displayName": "Sally's Meeting"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/author.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/author.json b/streams-schemas/src/test/resources/activities/author.json
deleted file mode 100644
index 1903700..0000000
--- a/streams-schemas/src/test/resources/activities/author.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "author",
-  "object": {
-    "objectType": "file",
-    "displayName": "4Q2012 Sales Forecast.xls"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/authorize.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/authorize.json b/streams-schemas/src/test/resources/activities/authorize.json
deleted file mode 100644
index 2d9d1b3..0000000
--- a/streams-schemas/src/test/resources/activities/authorize.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "authorize",
-  "object": {
-    "objectType": "task",
-    "actor": {
-      "objectType": "person",
-      "displayName": "Sally"
-    },
-    "verb": "access",
-    "object": {
-      "objectType": "place",
-      "displayName": "Joe's Home"
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/borrow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/borrow.json b/streams-schemas/src/test/resources/activities/borrow.json
deleted file mode 100644
index e21809a..0000000
--- a/streams-schemas/src/test/resources/activities/borrow.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "borrow",
-  "object": {
-    "objectType": "book",
-    "displayName": "Cloud Atlas"
-  },
-  "target": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "title": "Sally borrowed the book 'Cloud Atlas' from Joe"
-}
-    

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/build.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/build.json b/streams-schemas/src/test/resources/activities/build.json
deleted file mode 100644
index 78878e1..0000000
--- a/streams-schemas/src/test/resources/activities/build.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "build",
-  "object": {
-    "objectType": "application",
-    "displayName": "MyApp Builder 12345"
-  }
-}
-   

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/cancel.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/cancel.json b/streams-schemas/src/test/resources/activities/cancel.json
deleted file mode 100644
index b7aba81..0000000
--- a/streams-schemas/src/test/resources/activities/cancel.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "cancel",
-  "object": {
-    "objectType": "offer",
-    "displayName": "Free Money!"
-  },
-  "title": "Sally cancelled the offer for free money."
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/checkin.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/checkin.json b/streams-schemas/src/test/resources/activities/checkin.json
deleted file mode 100644
index 97216b9..0000000
--- a/streams-schemas/src/test/resources/activities/checkin.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "checkin",
-  "object": {
-    "objectType": "place",
-    "displayName": "Acme, Co"
-  },
-  "title": "Joe checked in at Acme, Co"
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/close.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/close.json b/streams-schemas/src/test/resources/activities/close.json
deleted file mode 100644
index 362e3f6..0000000
--- a/streams-schemas/src/test/resources/activities/close.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "close",
-  "object": {
-    "objectType": "issue",
-    "displayName": "Issue #123"
-  },
-  "title": "Joe closed issue #123"
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/complete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/complete.json b/streams-schemas/src/test/resources/activities/complete.json
deleted file mode 100644
index 06694a7..0000000
--- a/streams-schemas/src/test/resources/activities/complete.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "complete",
-  "object": {
-    "objectType": "process",
-    "displayName": "Some long process"
-  }
-}
-    

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/confirm.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/confirm.json b/streams-schemas/src/test/resources/activities/confirm.json
deleted file mode 100644
index 9307c38..0000000
--- a/streams-schemas/src/test/resources/activities/confirm.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "confirm",
-  "object": {
-    "objectType": "issue",
-    "displayName": "Issue #123"
-  },
-  "title": "Joe confirmed issue #123"
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/consume.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/consume.json b/streams-schemas/src/test/resources/activities/consume.json
deleted file mode 100644
index ed907e3..0000000
--- a/streams-schemas/src/test/resources/activities/consume.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "consume",
-  "object": {
-    "objectType": "product",
-    "displayName": "Some amazing product"
-  }
-}
-    

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/create.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/create.json b/streams-schemas/src/test/resources/activities/create.json
deleted file mode 100644
index 5d8afb3..0000000
--- a/streams-schemas/src/test/resources/activities/create.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "create",
-  "object": {
-    "objectType": "product",
-    "displayName": "Some amazing product"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/delete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/delete.json b/streams-schemas/src/test/resources/activities/delete.json
deleted file mode 100644
index 6943046..0000000
--- a/streams-schemas/src/test/resources/activities/delete.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "delete",
-  "object": {
-    "objectType": "file",
-    "displayName": "4Q2012 Sales Forecast.xls"
-  },
-  "title": "Joe is probably going to get fired."
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/deliver.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/deliver.json b/streams-schemas/src/test/resources/activities/deliver.json
deleted file mode 100644
index 620f0b5..0000000
--- a/streams-schemas/src/test/resources/activities/deliver.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "deliver",
-  "object": {
-    "objectType": "note",
-    "displayName": "Bad News",
-    "content": "Joe deleted the sales forecast"
-  },
-  "target": {
-    "objectType": "person",
-    "displayName": "Joe's Boss"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/deny.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/deny.json b/streams-schemas/src/test/resources/activities/deny.json
deleted file mode 100644
index b83ca60..0000000
--- a/streams-schemas/src/test/resources/activities/deny.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "deny",
-  "object": {
-    "objectType": "task",
-    "actor": {
-      "objectType": "person",
-      "displayName": "Joe"
-    },
-    "verb": "delete",
-    "object": {
-      "objectType": "file",
-      "displayName": "4Q2012 Sales Forecast.xls"
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/disagree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/disagree.json b/streams-schemas/src/test/resources/activities/disagree.json
deleted file mode 100644
index 8614e88..0000000
--- a/streams-schemas/src/test/resources/activities/disagree.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "disagree",
-  "object": {
-    "actor": {
-      "objectType": "person",
-      "displayName": "Joe"
-    },
-    "verb": "deny",
-    "object": {
-      "objectType": "task",
-      "actor": {
-        "objectType": "person",
-        "displayName": "Joe"
-      },
-      "verb": "delete",
-      "object": {
-        "objectType": "file",
-        "displayName": "4Q2012 Sales Forecast.xls"
-      }
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/dislike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/dislike.json b/streams-schemas/src/test/resources/activities/dislike.json
deleted file mode 100644
index 16c2148..0000000
--- a/streams-schemas/src/test/resources/activities/dislike.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "dislike",
-  "object": {
-    "objectType": "person",
-    "displayName": "Sally"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/experience.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/experience.json b/streams-schemas/src/test/resources/activities/experience.json
deleted file mode 100644
index d81d024..0000000
--- a/streams-schemas/src/test/resources/activities/experience.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally"
-  },
-  "verb": "experience",
-  "object": {
-    "objectType": "event",
-    "displayName": "Disciplinary Action for Joe"
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/favorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/favorite.json b/streams-schemas/src/test/resources/activities/favorite.json
deleted file mode 100644
index 3df99bf..0000000
--- a/streams-schemas/src/test/resources/activities/favorite.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe's Boss"
-  },
-  "verb": "favorite",
-  "object": {
-    "objectType": "person",
-    "displayName": "Sally"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/find.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/find.json b/streams-schemas/src/test/resources/activities/find.json
deleted file mode 100644
index 9c25c59..0000000
--- a/streams-schemas/src/test/resources/activities/find.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "find",
-  "object": {
-    "objectType": "application",
-    "displayName": "Unapproved Software Application"
-  },
-  "location": {
-    "objectType": "place",
-    "displayName": "Sally's Computer"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/flag-as-inappropriate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/flag-as-inappropriate.json b/streams-schemas/src/test/resources/activities/flag-as-inappropriate.json
deleted file mode 100644
index 6f4d202..0000000
--- a/streams-schemas/src/test/resources/activities/flag-as-inappropriate.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Sally's Boss"
-  },
-  "verb": "flag-as-inappropriate",
-  "object": {
-    "objectType": "application",
-    "displayName": "Unapproved Software Application",
-    "location": {
-      "displayName": "Sally's Computer"
-    }
-  },
-  "context": {
-    "objectType": "issue",
-    "displayName": "Issue #125",
-    "types": ["http://example.org/violation-of-corporate-policy"]
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/follow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/follow.json b/streams-schemas/src/test/resources/activities/follow.json
deleted file mode 100644
index fc8c992..0000000
--- a/streams-schemas/src/test/resources/activities/follow.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe"
-  },
-  "verb": "follow",
-  "object": {
-    "objectType": "issue",
-    "displayName": "Issue #125"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/give.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/give.json b/streams-schemas/src/test/resources/activities/give.json
deleted file mode 100644
index f145296..0000000
--- a/streams-schemas/src/test/resources/activities/give.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Joe's Boss"
-  },
-  "verb": "give",
-  "object": {
-    "objectType": "note",
-    "displayName": "Notice of Employment Termination"
-  },
-  "target": {
-    "objectType": "collection",
-    "items": [
-      {
-        "objectType": "person",
-        "displayName": "Joe"
-      },
-      {
-        "objectType": "person",
-        "displayName": "Sally"
-      }
-    ]
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/host.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/host.json b/streams-schemas/src/test/resources/activities/host.json
deleted file mode 100644
index 3331353..0000000
--- a/streams-schemas/src/test/resources/activities/host.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Bob"
-  },
-  "verb": "host",
-  "object": {
-    "objectType": "event",
-    "displayName": "Job Interview"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/ignore.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/ignore.json b/streams-schemas/src/test/resources/activities/ignore.json
deleted file mode 100644
index 012013a..0000000
--- a/streams-schemas/src/test/resources/activities/ignore.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "ignore",
-  "object": {
-    "objectType": "note",
-    "displayName": "Joe's request for his job back."
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/insert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/insert.json b/streams-schemas/src/test/resources/activities/insert.json
deleted file mode 100644
index 57bda66..0000000
--- a/streams-schemas/src/test/resources/activities/insert.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Bob"
-  },
-  "verb": "insert",
-  "object": {
-    "objectType": "note",
-    "displayName": "Notes about Employee Disciplinary Actions"
-  },
-  "target": {
-    "objectType": "file",
-    "displayName": "2013 Corporate Policy Updates.doc"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/install.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/install.json b/streams-schemas/src/test/resources/activities/install.json
deleted file mode 100644
index 1ecdecd..0000000
--- a/streams-schemas/src/test/resources/activities/install.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "install",
-  "object": {
-    "objectType": "application",
-    "displayName": "Approved Software Scanning Tool",
-    "location": {
-      "displayName": "All computers in Building A"
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/interact.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/interact.json b/streams-schemas/src/test/resources/activities/interact.json
deleted file mode 100644
index f427513..0000000
--- a/streams-schemas/src/test/resources/activities/interact.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Bob"
-  },
-  "verb": "interact",
-  "object": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "title": "Bob called Laura."
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/invite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/invite.json b/streams-schemas/src/test/resources/activities/invite.json
deleted file mode 100644
index 7c84b78..0000000
--- a/streams-schemas/src/test/resources/activities/invite.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "invite",
-  "object": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "target": {
-    "objectType": "event",
-    "displayName": "Job Interview"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/join.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/join.json b/streams-schemas/src/test/resources/activities/join.json
deleted file mode 100644
index 7996a9b..0000000
--- a/streams-schemas/src/test/resources/activities/join.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "join",
-  "object": {
-    "objectType": "organization",
-    "displayName": "Acme, Co"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/leave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/leave.json b/streams-schemas/src/test/resources/activities/leave.json
deleted file mode 100644
index 08516c5..0000000
--- a/streams-schemas/src/test/resources/activities/leave.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "leave",
-  "object": {
-    "objectType": "organization",
-    "displayName": "Other, Co"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/like.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/like.json b/streams-schemas/src/test/resources/activities/like.json
deleted file mode 100644
index 853676f..0000000
--- a/streams-schemas/src/test/resources/activities/like.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "like",
-  "object": {
-    "actor": {
-      "objectType": "person",
-      "displayName": "Mark"
-    },
-    "verb": "join",
-    "object": {
-      "objectType": "organization",
-      "displayName": "Acme, Co"
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/listen.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/listen.json b/streams-schemas/src/test/resources/activities/listen.json
deleted file mode 100644
index 1268060..0000000
--- a/streams-schemas/src/test/resources/activities/listen.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "listen",
-  "object": {
-    "objectType": "audio",
-    "displayName": "Welcome to the Company (Podcast).mp3"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/lose.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/lose.json b/streams-schemas/src/test/resources/activities/lose.json
deleted file mode 100644
index 073e914..0000000
--- a/streams-schemas/src/test/resources/activities/lose.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "organization",
-    "displayName": "New York Yankees"
-  },
-  "verb": "lose",
-  "object": {
-    "objectType": "game",
-    "displayName": "World Series"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/make-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/make-friend.json b/streams-schemas/src/test/resources/activities/make-friend.json
deleted file mode 100644
index 1acf539..0000000
--- a/streams-schemas/src/test/resources/activities/make-friend.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "make-friend",
-  "object": {
-    "objectType": "person",
-    "displayName": "Laura"
-  }
-}



[11/32] incubator-streams git commit: hive generation is looking pretty good

Posted by sb...@apache.org.
hive generation is looking pretty good


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/9618adaf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/9618adaf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/9618adaf

Branch: refs/feature/STREAMS-389,398
Commit: 9618adaf3f828f9f3682226f666e5732824e4212
Parents: bf31cbe
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Tue May 3 16:32:58 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Tue May 3 16:32:58 2016 -0500

----------------------------------------------------------------------
 streams-plugins/streams-plugin-hive/pom.xml     |  23 +-
 .../plugins/StreamsHiveResourceGenerator.java   | 221 -------------
 .../StreamsHiveResourceGeneratorMojo.java       |  68 ----
 .../hive/StreamsHiveGenerationConfig.java       |  84 +++++
 .../hive/StreamsHiveResourceGenerator.java      | 322 +++++++++++++++++++
 .../hive/StreamsHiveResourceGeneratorMojo.java  |  76 +++++
 .../test/StreamsHiveResourceGeneratorTest.java  |  88 ++++-
 .../src/test/resources/expected/activity.hql    | 203 ++++++++++++
 .../src/test/resources/expected/collection.hql  |  47 +++
 .../src/test/resources/expected/media_link.hql  |  11 +
 .../src/test/resources/expected/object.hql      |  61 ++++
 .../resources/expected/objectTypes/place.hql    |  79 +++++
 .../test/resources/expected/verbs/purchase.hql  | 203 ++++++++++++
 streams-schemas/pom.xml                         |  37 ++-
 .../org/apache/streams/schema/FieldType.java    |  13 +
 .../org/apache/streams/schema/FieldUtil.java    |  29 ++
 .../org/apache/streams/schema/FileUtil.java     |  69 ++++
 .../apache/streams/schema/GenerationConfig.java | 115 +++++++
 .../java/org/apache/streams/schema/Schema.java  |  57 ++++
 .../org/apache/streams/schema/SchemaStore.java  | 283 ++++++++++++++++
 .../org/apache/streams/schema/SchemaUtil.java   |  50 +++
 .../java/org/apache/streams/schema/URIUtil.java |  31 ++
 22 files changed, 1860 insertions(+), 310 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/pom.xml b/streams-plugins/streams-plugin-hive/pom.xml
index 22d75ce..b173a8d 100644
--- a/streams-plugins/streams-plugin-hive/pom.xml
+++ b/streams-plugins/streams-plugin-hive/pom.xml
@@ -40,6 +40,12 @@
             <groupId>org.apache.streams</groupId>
             <artifactId>streams-config</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
@@ -47,15 +53,13 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.jsonschema2pojo</groupId>
-            <artifactId>jsonschema2pojo-core</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-pojo</artifactId>
+            <artifactId>streams-schemas</artifactId>
             <version>${project.version}</version>
-            <scope>test</scope>
-            <type>test-jar</type>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
         </dependency>
         <dependency>
             <groupId>org.reflections</groupId>
@@ -219,9 +223,10 @@
                             <goal>unpack-dependencies</goal>
                         </goals>
                         <configuration>
-                            <includeArtifactIds>streams-pojo</includeArtifactIds>
+                            <includeGroupIds>org.apache.streams</includeGroupIds>
+                            <includeArtifactIds>streams-schemas</includeArtifactIds>
                             <includes>**/*.json</includes>
-                            <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
+                            <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
                         </configuration>
                     </execution>
                 </executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java
deleted file mode 100644
index 1efb15e..0000000
--- a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java
+++ /dev/null
@@ -1,221 +0,0 @@
-package org.apache.streams.plugins;
-
-import com.google.common.base.Strings;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import org.reflections.ReflectionUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.Serializable;
-import java.lang.reflect.Field;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.nio.file.StandardOpenOption;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Created by sblackmon on 11/18/15.
- */
-public class StreamsHiveResourceGenerator implements Runnable {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHiveResourceGenerator.class);
-
-    private final static String LS = System.getProperty("line.separator");
-
-    private StreamsHiveResourceGeneratorMojo mojo;
-
-    String inDir = "./target/test-classes/activities";
-    String outDir = "./target/generated-sources/hive";
-
-    public void main(String[] args) {
-        StreamsHiveResourceGenerator streamsHiveResourceGenerator = new StreamsHiveResourceGenerator();
-        Thread thread = new Thread(streamsHiveResourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
-    }
-
-    public StreamsHiveResourceGenerator(StreamsHiveResourceGeneratorMojo mojo) {
-        this.mojo = mojo;
-        if (    mojo != null &&
-                mojo.getTarget() != null &&
-                !Strings.isNullOrEmpty(mojo.getTarget().getAbsolutePath())
-            )
-            outDir = mojo.getTarget().getAbsolutePath();
-
-        if (    mojo != null &&
-                mojo.getPackages() != null &&
-                mojo.getPackages().length > 0
-            )
-            packages = mojo.getPackages();
-    }
-
-    public StreamsHiveResourceGenerator() {
-    }
-
-    public void run() {
-
-        List<File> schemaFiles;
-
-
-        List<Class<?>> serializableClasses = detectSerializableClasses();
-
-        LOGGER.info("Detected {} serialiables:", serializableClasses.size());
-        for( Class clazz : serializableClasses )
-            LOGGER.debug(clazz.toString());
-
-        List<Class<?>> pojoClasses = detectPojoClasses(serializableClasses);
-
-        LOGGER.info("Detected {} pojos:", pojoClasses.size());
-        for( Class clazz : pojoClasses ) {
-            LOGGER.debug(clazz.toString());
-
-        }
-
-
-        for( Class clazz : pojoClasses ) {
-            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".hive").replace(".","/")+"/";
-            String pojoName = clazz.getSimpleName()+".hql";
-            String pojoHive = renderPojo(clazz);
-            writeFile(outDir+"/"+pojoPath+pojoName, pojoHive);
-        }
-
-    }
-
-    private void writeFile(String pojoFile, String pojoHive) {
-        try {
-            File path = new File(pojoFile);
-            File dir = path.getParentFile();
-            if( !dir.exists() )
-                dir.mkdirs();
-            Files.write(Paths.get(pojoFile), pojoHive.getBytes(), StandardOpenOption.CREATE_NEW);
-        } catch (Exception e) {
-            LOGGER.error("Write Exception: {}", e);
-        }
-    }
-
-    public List<Class<?>> detectSerializableClasses() {
-
-        Set<Class<? extends Serializable>> classes =
-                reflections.getSubTypesOf(java.io.Serializable.class);
-
-        List<Class<?>> result = Lists.newArrayList();
-
-        for( Class clazz : classes ) {
-            result.add(clazz);
-        }
-
-        return result;
-    }
-
-    public List<Class<?>> detectPojoClasses(List<Class<?>> classes) {
-
-        List<Class<?>> result = Lists.newArrayList();
-
-        for( Class clazz : classes ) {
-            try {
-                clazz.newInstance().toString();
-            } catch( Exception e) {}
-            // super-halfass way to know if this is a jsonschema2pojo
-            if( clazz.getAnnotations().length >= 1 )
-                result.add(clazz);
-        }
-
-        return result;
-    }
-
-    public String renderPojo(Class<?> pojoClass) {
-        StringBuffer stringBuffer = new StringBuffer();
-        stringBuffer.append("CREATE TABLE ");
-        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".hive"));
-        stringBuffer.append(LS);
-        stringBuffer.append("(");
-        stringBuffer.append(LS);
-
-        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
-        appendFields(stringBuffer, fields, "", ",");
-
-        stringBuffer.append(")");
-
-        return stringBuffer.toString();
-    }
-
-    private void appendFields(StringBuffer stringBuffer, Set<Field> fields, String varDef, String fieldDelimiter) {
-        if( fields.size() > 0 ) {
-            stringBuffer.append(LS);
-            Map<String,Field> fieldsToAppend = uniqueFields(fields);
-            for( Iterator<Field> iter = fieldsToAppend.values().iterator(); iter.hasNext(); ) {
-                Field field = iter.next();
-                stringBuffer.append(name(field));
-                stringBuffer.append(": ");
-                stringBuffer.append(type(field));
-                if( iter.hasNext()) stringBuffer.append(fieldDelimiter);
-                stringBuffer.append(LS);
-            }
-        } else {
-            stringBuffer.append(LS);
-        }
-    }
-
-    private String value(Field field) {
-        if( field.getName().equals("verb")) {
-            return "\"post\"";
-        } else if( field.getName().equals("objectType")) {
-            return "\"application\"";
-        } else return null;
-    }
-
-    private String type(Field field) {
-        if( field.getType().equals(java.lang.String.class)) {
-            return "STRING";
-        } else if( field.getType().equals(java.lang.Integer.class)) {
-            return "INT";
-        } else if( field.getType().equals(org.joda.time.DateTime.class)) {
-            return "DATE";
-        }else if( field.getType().equals(java.util.Map.class)) {
-            return "MAP";
-        } else if( field.getType().equals(java.util.List.class)) {
-            return "ARRAY";
-        }
-        return field.getType().getCanonicalName().replace(".pojo.json", ".scala");
-    }
-
-    private Map<String,Field> uniqueFields(Set<Field> fieldset) {
-        Map<String,Field> fields = Maps.newTreeMap();
-        Field item = null;
-        for( Iterator<Field> it = fieldset.iterator(); it.hasNext(); item = it.next() ) {
-            if( item != null && item.getName() != null ) {
-                Field added = fields.put(item.getName(), item);
-            }
-            // ensure right class will get used
-        }
-        return fields;
-    }
-
-    private String name(Field field) {
-        if( field.getName().equals("object"))
-            return "obj";
-        else return field.getName();
-    }
-
-    private boolean override(Field field) {
-        try {
-            if( field.getDeclaringClass().getSuperclass().getField(field.getName()) != null )
-                return true;
-            else return false;
-        } catch( Exception e ) {
-            return false;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGeneratorMojo.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGeneratorMojo.java
deleted file mode 100644
index 1f8c782..0000000
--- a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGeneratorMojo.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.apache.streams.plugins;
-
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugins.annotations.Component;
-import org.apache.maven.plugins.annotations.Execute;
-import org.apache.maven.plugins.annotations.LifecyclePhase;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.MavenProject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-
-@Mojo(  name = "hive",
-        defaultPhase = LifecyclePhase.GENERATE_SOURCES
-)
-@Execute(   goal = "hive",
-            phase = LifecyclePhase.GENERATE_SOURCES
-)
-public class StreamsHiveResourceGeneratorMojo extends AbstractMojo {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHiveResourceGeneratorMojo.class);
-
-    @Component
-    private MavenProject project;
-
-//    @Component
-//    private Settings settings;
-//
-//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
-//    protected ArtifactRepository localRepository;
-//
-//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
-//    private PluginDescriptor plugin;
-//
-    @Parameter( defaultValue = "${project.basedir}", readonly = true )
-    private File basedir;
-
-    @Parameter(defaultValue = "${project.build.directory}", readonly = true)
-    private File target;
-
-    @Parameter(defaultValue = "org.apache.streams.pojo.json", readonly = true)
-    private String[] packages;
-
-    public void execute() throws MojoExecutionException {
-        StreamsHiveResourceGenerator streamsPojoScala = new StreamsHiveResourceGenerator(this);
-        Thread thread = new Thread(streamsPojoScala);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
-    }
-
-    public File getTarget() {
-        return target;
-    }
-
-    public String[] getPackages() {
-        return packages;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveGenerationConfig.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveGenerationConfig.java
new file mode 100644
index 0000000..7e3bf35
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveGenerationConfig.java
@@ -0,0 +1,84 @@
+package org.apache.streams.plugins.hive;
+
+import org.apache.streams.schema.GenerationConfig;
+import org.jsonschema2pojo.DefaultGenerationConfig;
+import org.jsonschema2pojo.util.URLUtil;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Configures StreamsHiveResourceGenerator
+ *
+ *
+ */
+public class StreamsHiveGenerationConfig extends DefaultGenerationConfig implements GenerationConfig {
+
+    public String getSourceDirectory() {
+        return sourceDirectory;
+    }
+
+    public List<String> getSourcePaths() {
+        return sourcePaths;
+    }
+
+    private String sourceDirectory;
+    private List<String> sourcePaths = new ArrayList<String>();
+    private String targetDirectory;
+    private int maxDepth = 1;
+
+    public Set<String> getExclusions() {
+        return exclusions;
+    }
+
+    public void setExclusions(Set<String> exclusions) {
+        this.exclusions = exclusions;
+    }
+
+    private Set<String> exclusions = new HashSet<String>();
+
+    public int getMaxDepth() {
+        return maxDepth;
+    }
+
+    public void setSourceDirectory(String sourceDirectory) {
+        this.sourceDirectory = sourceDirectory;
+    }
+
+    public void setSourcePaths(List<String> sourcePaths) {
+        this.sourcePaths = sourcePaths;
+    }
+
+    public void setTargetDirectory(String targetDirectory) {
+        this.targetDirectory = targetDirectory;
+    }
+
+    @Override
+    public File getTargetDirectory() {
+        return new File(targetDirectory);
+    }
+
+    @Override
+    public Iterator<URL> getSource() {
+        if (null != sourceDirectory) {
+            return Collections.singleton(URLUtil.parseURL(sourceDirectory)).iterator();
+        }
+        List<URL> sourceURLs = new ArrayList<URL>();
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            for (String source : sourcePaths) {
+                sourceURLs.add(URLUtil.parseURL(source));
+            }
+        return sourceURLs.iterator();
+    }
+
+    public void setMaxDepth(int maxDepth) {
+        this.maxDepth = maxDepth;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
new file mode 100644
index 0000000..06c1499
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
@@ -0,0 +1,322 @@
+package org.apache.streams.plugins.hive;
+
+import com.fasterxml.jackson.core.JsonFactory;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.base.Joiner;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+import org.apache.streams.schema.FieldType;
+import org.apache.streams.schema.FieldUtil;
+import org.apache.streams.schema.FileUtil;
+import org.apache.streams.schema.GenerationConfig;
+import org.apache.streams.schema.Schema;
+import org.apache.streams.schema.SchemaStore;
+import org.apache.streams.schema.SchemaUtil;
+import org.apache.streams.schema.URIUtil;
+import org.jsonschema2pojo.util.URLUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+import java.util.*;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.commons.lang3.StringUtils.defaultString;
+import static org.apache.streams.schema.FileUtil.*;
+
+/**
+ * Generates hive table definitions for using org.openx.data.jsonserde.JsonSerDe on new-line delimited json documents.
+ *
+ *
+ */
+public class StreamsHiveResourceGenerator implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHiveResourceGenerator.class);
+
+    private final static String LS = System.getProperty("line.separator");
+
+    private StreamsHiveGenerationConfig config;
+
+    private SchemaStore schemaStore = new SchemaStore();
+
+    private int currentDepth = 0;
+
+    public void main(String[] args) {
+        StreamsHiveGenerationConfig config = new StreamsHiveGenerationConfig();
+
+        String sourceDirectory = "./target/test-classes/activities";
+        String targetDirectory = "./target/generated-sources/streams-plugin-hive";
+        String targetPackage = "";
+
+        if( args.length > 0 )
+            sourceDirectory = args[0];
+        if( args.length > 1 )
+            targetDirectory = args[1];
+
+        config.setSourceDirectory(sourceDirectory);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsHiveResourceGenerator streamsPojoSourceGenerator = new StreamsHiveResourceGenerator(config);
+        Thread thread = new Thread(streamsPojoSourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public StreamsHiveResourceGenerator(StreamsHiveGenerationConfig config) {
+        this.config = config;
+    }
+
+    public void run() {
+
+        checkNotNull(config);
+
+        generate(config);
+
+    }
+
+    public void generate(StreamsHiveGenerationConfig config) {
+
+        LinkedList<File> sourceFiles = new LinkedList<File>();
+
+        for (Iterator<URL> sources = config.getSource(); sources.hasNext();) {
+            URL source = sources.next();
+            sourceFiles.add(URLUtil.getFileFromURL(source));
+        }
+
+        LOGGER.info("Seeded with {} source paths:", sourceFiles.size());
+
+        FileUtil.resolveRecursive((GenerationConfig)config, sourceFiles);
+
+        LOGGER.info("Resolved {} schema files:", sourceFiles.size());
+
+        for (Iterator<File> iterator = sourceFiles.iterator(); iterator.hasNext();) {
+            File item = iterator.next();
+            schemaStore.create(item.toURI());
+        }
+
+        LOGGER.info("Identified {} objects:", schemaStore.getSize());
+
+        for (Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator(); schemaIterator.hasNext(); ) {
+            Schema schema = schemaIterator.next();
+            currentDepth = 0;
+            if( schema.getURI().getScheme().equals("file")) {
+                String inputFile = schema.getURI().getPath();
+                String resourcePath = dropSourcePathPrefix(inputFile, config.getSourceDirectory());
+                for (String sourcePath : config.getSourcePaths()) {
+                    resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
+                }
+                String outputFile = config.getTargetDirectory() + "/" + swapExtension(resourcePath, "json", "hql");
+
+                LOGGER.info("Processing {}:", resourcePath);
+
+                String resourceId = dropExtension(resourcePath).replace("/", "_");
+
+                String resourceContent = generateResource(schema, resourceId);
+
+                writeFile(outputFile, resourceContent);
+
+                LOGGER.info("Wrote {}:", outputFile);
+            }
+        }
+    }
+
+    public String generateResource(Schema schema, String resourceId) {
+        StringBuilder resourceBuilder = new StringBuilder();
+        resourceBuilder.append("CREATE TABLE ");
+        resourceBuilder.append(hqlEscape(resourceId));
+        resourceBuilder.append(LS);
+        resourceBuilder.append("(");
+        resourceBuilder.append(LS);
+        resourceBuilder = appendRootObject(resourceBuilder, schema, resourceId, ' ');
+        resourceBuilder.append(")");
+        resourceBuilder.append(LS);
+        resourceBuilder.append("ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'");
+        resourceBuilder.append(LS);
+        resourceBuilder.append("WITH SERDEPROPERTIES (\"ignore.malformed.json\" = \"true\"");
+        resourceBuilder.append(LS);
+        resourceBuilder.append("STORED AS TEXTFILE");
+        resourceBuilder.append(LS);
+        resourceBuilder.append("LOCATION '${hiveconf:path}';");
+        resourceBuilder.append(LS);
+        return resourceBuilder.toString();
+    }
+
+    public StringBuilder appendRootObject(StringBuilder builder, Schema schema, String resourceId, Character seperator) {
+        ObjectNode propertiesNode = schemaStore.resolveProperties(schema, null, resourceId);
+        if( propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0) {
+            builder = appendPropertiesNode(builder, schema, propertiesNode, seperator);
+        }
+        return builder;
+    }
+
+    private StringBuilder appendValueField(StringBuilder builder, Schema schema, String fieldId, FieldType fieldType, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        builder.append(hqlEscape(fieldId));
+        builder.append(seperator);
+        builder.append(hqlType(fieldType));
+        return builder;
+    }
+
+    public StringBuilder appendArrayItems(StringBuilder builder, Schema schema, String fieldId, ObjectNode itemsNode, Character seperator) {
+        // not safe to append nothing
+        checkNotNull(builder);
+        if( itemsNode == null ) return builder;
+        if( itemsNode.has("type")) {
+            try {
+                FieldType itemType = FieldUtil.determineFieldType(itemsNode);
+                switch( itemType ) {
+                    case OBJECT:
+                        builder = appendArrayObject(builder, schema, fieldId, itemsNode, seperator);
+                        break;
+                    case ARRAY:
+                        ObjectNode subArrayItems = (ObjectNode) itemsNode.get("items");
+                        builder = appendArrayItems(builder, schema, fieldId, subArrayItems, seperator);
+                        break;
+                    default:
+                        builder = appendArrayField(builder, schema, fieldId, itemType, seperator);
+                }
+            } catch (Exception e) {
+                LOGGER.warn("No item type resolvable for {}", fieldId);
+            }
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendArrayField(StringBuilder builder, Schema schema, String fieldId, FieldType fieldType, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        checkNotNull(fieldId);
+        builder.append(hqlEscape(fieldId));
+        builder.append(seperator);
+        builder.append("ARRAY<"+hqlType(fieldType)+">");
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendArrayObject(StringBuilder builder, Schema schema, String fieldId, ObjectNode fieldNode, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        checkNotNull(fieldNode);
+        if( !Strings.isNullOrEmpty(fieldId)) {
+            builder.append(hqlEscape(fieldId));
+            builder.append(seperator);
+        }
+        builder.append("ARRAY");
+        builder.append(LS);
+        builder.append("<");
+        builder.append(LS);
+        ObjectNode propertiesNode = schemaStore.resolveProperties(schema, fieldNode, fieldId);
+        builder = appendStructField(builder, schema, "", propertiesNode, ':');
+        builder.append(">");
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendStructField(StringBuilder builder, Schema schema, String fieldId, ObjectNode propertiesNode, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        checkNotNull(propertiesNode);
+
+        if( propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0 ) {
+
+            currentDepth += 1;
+
+            if( !Strings.isNullOrEmpty(fieldId)) {
+                builder.append(hqlEscape(fieldId));
+                builder.append(seperator);
+            }
+            builder.append("STRUCT");
+            builder.append(LS);
+            builder.append("<");
+            builder.append(LS);
+
+            builder = appendPropertiesNode(builder, schema, propertiesNode, ':');
+
+            builder.append(">");
+            builder.append(LS);
+
+            currentDepth -= 1;
+
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendPropertiesNode(StringBuilder builder, Schema schema, ObjectNode propertiesNode, Character seperator) {
+        checkNotNull(builder);
+        checkNotNull(propertiesNode);
+        Iterator<Map.Entry<String, JsonNode>> fields = propertiesNode.fields();
+        Joiner joiner = Joiner.on(","+LS).skipNulls();
+        List<String> fieldStrings = Lists.newArrayList();
+        for( ; fields.hasNext(); ) {
+            Map.Entry<String, JsonNode> field = fields.next();
+            String fieldId = field.getKey();
+            if( !config.getExclusions().contains(fieldId) && field.getValue().isObject()) {
+                ObjectNode fieldNode = (ObjectNode) field.getValue();
+                FieldType fieldType = FieldUtil.determineFieldType(fieldNode);
+                if (fieldType != null ) {
+                    switch (fieldType) {
+                        case ARRAY:
+                            ObjectNode itemsNode = (ObjectNode) fieldNode.get("items");
+                            if( currentDepth <= config.getMaxDepth()) {
+                                StringBuilder arrayItemsBuilder = appendArrayItems(new StringBuilder(), schema, fieldId, itemsNode, seperator);
+                                if( !Strings.isNullOrEmpty(arrayItemsBuilder.toString())) {
+                                    fieldStrings.add(arrayItemsBuilder.toString());
+                                }
+                            }
+                            break;
+                        case OBJECT:
+                            ObjectNode childProperties = schemaStore.resolveProperties(schema, fieldNode, fieldId);
+                            if( currentDepth < config.getMaxDepth()) {
+                                StringBuilder structFieldBuilder = appendStructField(new StringBuilder(), schema, fieldId, childProperties, seperator);
+                                if( !Strings.isNullOrEmpty(structFieldBuilder.toString())) {
+                                    fieldStrings.add(structFieldBuilder.toString());
+                                }
+                            }
+                            break;
+                        default:
+                            StringBuilder valueFieldBuilder = appendValueField(new StringBuilder(), schema, fieldId, fieldType, seperator);
+                            if( !Strings.isNullOrEmpty(valueFieldBuilder.toString())) {
+                                fieldStrings.add(valueFieldBuilder.toString());
+                            }
+                    }
+                }
+            }
+        }
+        builder.append(joiner.join(fieldStrings)).append(LS);
+        Preconditions.checkNotNull(builder);
+        return builder;
+    }
+
+    private static String hqlEscape( String fieldId ) {
+        return "`"+fieldId+"`";
+    }
+
+    private static String hqlType( FieldType fieldType ) {
+        switch( fieldType ) {
+            case INTEGER:
+                return "INT";
+            case NUMBER:
+                return "FLOAT";
+            case OBJECT:
+                return "STRUCT";
+            default:
+                return fieldType.name().toUpperCase();
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
new file mode 100644
index 0000000..9cf71a9
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
@@ -0,0 +1,76 @@
+package org.apache.streams.plugins.hive;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.List;
+
+@Mojo(  name = "hive",
+        defaultPhase = LifecyclePhase.GENERATE_SOURCES
+)
+@Execute(   goal = "hive",
+            phase = LifecyclePhase.GENERATE_SOURCES
+)
+public class StreamsHiveResourceGeneratorMojo extends AbstractMojo {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHiveResourceGeneratorMojo.class);
+
+    @Component
+    private MavenProject project;
+
+//    @Component
+//    private Settings settings;
+//
+//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+//    protected ArtifactRepository localRepository;
+//
+//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
+//    private PluginDescriptor plugin;
+//
+    @Parameter( defaultValue = "${project.basedir}", readonly = true )
+    private File basedir;
+
+    @Parameter( defaultValue = "./src/main/jsonschema", readonly = true ) // Maven 3 only
+    public String sourceDirectory;
+
+    @Parameter( readonly = true ) // Maven 3 only
+    public List<String> sourcePaths;
+
+    @Parameter(defaultValue = "./target/generated-sources/streams-plugin-hive", readonly = true)
+    public String targetDirectory;
+
+    public void execute() throws MojoExecutionException {
+
+        //addProjectDependenciesToClasspath();
+
+        StreamsHiveGenerationConfig config = new StreamsHiveGenerationConfig();
+
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            config.setSourcePaths(sourcePaths);
+        else
+            config.setSourceDirectory(sourceDirectory);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsHiveResourceGenerator streamsPojoScala = new StreamsHiveResourceGenerator(config);
+        Thread thread = new Thread(streamsPojoScala);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
index cd80cf8..9be908d 100644
--- a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
+++ b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
@@ -1,12 +1,23 @@
 package org.apache.streams.plugins.test;
 
-import org.apache.streams.plugins.StreamsHiveResourceGenerator;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.google.common.io.Files;
+import org.apache.commons.io.FileUtils;
+import org.apache.streams.plugins.hive.StreamsHiveGenerationConfig;
+import org.apache.streams.plugins.hive.StreamsHiveResourceGenerator;
+import org.junit.Assert;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.annotation.Nullable;
 import java.io.File;
-import java.io.FileFilter;
+import java.util.Collection;
+import java.util.Iterator;
+
+import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
 
 /**
  * Test that Activity beans are compatible with the example activities in the spec.
@@ -21,24 +32,79 @@ public class StreamsHiveResourceGeneratorTest {
      * @throws Exception
      */
     @Test
-    public void testStreamsPojoHive() throws Exception {
-        StreamsHiveResourceGenerator streamsHiveResourceGenerator = new StreamsHiveResourceGenerator();
-        streamsHiveResourceGenerator.main(new String[0]);
+    public void StreamsHiveResourceGenerator() throws Exception {
+
+        StreamsHiveGenerationConfig config = new StreamsHiveGenerationConfig();
+
+        String sourceDirectory = "target/test-classes/streams-schemas";
+
+        config.setSourceDirectory(sourceDirectory);
+
+        config.setTargetDirectory("target/generated-sources/test");
+
+        config.setExclusions(Sets.newHashSet("attachments"));
+
+        config.setMaxDepth(2);
+
+        StreamsHiveResourceGenerator streamsHiveResourceGenerator = new StreamsHiveResourceGenerator(config);
+        Thread thread = new Thread(streamsHiveResourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
 
-        File testOutput = new File( "./target/generated-sources/hive/org/apache/streams/hive");
-        FileFilter hqlFilter = new FileFilter() {
+        File testOutput = new File( "./target/generated-sources/test");
+        Predicate<File> hqlFilter = new Predicate<File>() {
             @Override
-            public boolean accept(File pathname) {
-                if( pathname.getName().endsWith(".hql") )
+            public boolean apply(@Nullable File file) {
+                if( file.getName().endsWith(".hql") )
                     return true;
-                return false;
+                else return false;
             }
         };
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );
         assert( testOutput.isDirectory() == true );
-        assert( testOutput.listFiles(hqlFilter).length == 11 );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(hqlFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+
+        String expectedDirectory = "target/test-classes/expected";
+        File testExpected = new File( expectedDirectory );
+
+        Iterable<File> expectedIterator = Files.fileTreeTraverser().breadthFirstTraversal(testExpected)
+                .filter(hqlFilter);
+        Collection<File> expectedCollection = Lists.newArrayList(expectedIterator);
+
+        int fails = 0;
+
+        Iterator<File> iterator = expectedCollection.iterator();
+        while( iterator.hasNext() ) {
+            File objectExpected = iterator.next();
+            String expectedEnd = dropSourcePathPrefix(objectExpected.getAbsolutePath(),  expectedDirectory);
+            File objectActual = new File(config.getTargetDirectory() + "/" + expectedEnd);
+            LOGGER.info("Comparing: {} and {}", objectExpected.getAbsolutePath(), objectActual.getAbsolutePath());
+            assert( objectActual.exists());
+            if( FileUtils.contentEquals(objectActual, objectExpected) == true ) {
+                LOGGER.info("Exact Match!");
+            } else {
+                LOGGER.info("No Match!");
+                fails++;
+            }
+        }
+        if( fails > 0 ) {
+            LOGGER.info("Fails: {}", fails);
+            Assert.fail();
+        }
+
+
 //        assert( new File(testOutput + "/traits").exists() == true );
 //        assert( new File(testOutput + "/traits").isDirectory() == true );
 //        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/test/resources/expected/activity.hql
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/resources/expected/activity.hql b/streams-plugins/streams-plugin-hive/src/test/resources/expected/activity.hql
new file mode 100644
index 0000000..49d0f41
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/resources/expected/activity.hql
@@ -0,0 +1,203 @@
+CREATE TABLE `activity`
+(
+`id` STRING,
+`actor` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`verb` STRING,
+`object` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`target` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published` STRING,
+`updated` STRING,
+`generator` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`icon` STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`provider` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`title` STRING,
+`content` STRING,
+`url` STRING,
+`links` ARRAY<STRING>
+)
+ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
+WITH SERDEPROPERTIES ("ignore.malformed.json" = "true"
+STORED AS TEXTFILE
+LOCATION '${hiveconf:path}';

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/test/resources/expected/collection.hql
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/resources/expected/collection.hql b/streams-plugins/streams-plugin-hive/src/test/resources/expected/collection.hql
new file mode 100644
index 0000000..94b986f
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/resources/expected/collection.hql
@@ -0,0 +1,47 @@
+CREATE TABLE `collection`
+(
+`url` STRING,
+`totalItems` INT,
+`items` ARRAY
+<
+STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+>
+)
+ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
+WITH SERDEPROPERTIES ("ignore.malformed.json" = "true"
+STORED AS TEXTFILE
+LOCATION '${hiveconf:path}';

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/test/resources/expected/media_link.hql
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/resources/expected/media_link.hql b/streams-plugins/streams-plugin-hive/src/test/resources/expected/media_link.hql
new file mode 100644
index 0000000..d0afe0f
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/resources/expected/media_link.hql
@@ -0,0 +1,11 @@
+CREATE TABLE `media_link`
+(
+`duration` FLOAT,
+`height` INT,
+`width` INT,
+`url` STRING
+)
+ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
+WITH SERDEPROPERTIES ("ignore.malformed.json" = "true"
+STORED AS TEXTFILE
+LOCATION '${hiveconf:path}';

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/test/resources/expected/object.hql
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/resources/expected/object.hql b/streams-plugins/streams-plugin-hive/src/test/resources/expected/object.hql
new file mode 100644
index 0000000..fb44767
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/resources/expected/object.hql
@@ -0,0 +1,61 @@
+CREATE TABLE `object`
+(
+`id` STRING,
+`image` STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName` STRING,
+`summary` STRING,
+`content` STRING,
+`url` STRING,
+`objectType` STRING,
+`author` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published` STRING,
+`updated` STRING,
+`upstreamDuplicates` ARRAY<STRING>,
+`downstreamDuplicates` ARRAY<STRING>
+)
+ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
+WITH SERDEPROPERTIES ("ignore.malformed.json" = "true"
+STORED AS TEXTFILE
+LOCATION '${hiveconf:path}';

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/test/resources/expected/objectTypes/place.hql
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/resources/expected/objectTypes/place.hql b/streams-plugins/streams-plugin-hive/src/test/resources/expected/objectTypes/place.hql
new file mode 100644
index 0000000..b861fad
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/resources/expected/objectTypes/place.hql
@@ -0,0 +1,79 @@
+CREATE TABLE `objectTypes_place`
+(
+`id` STRING,
+`image` STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName` STRING,
+`summary` STRING,
+`content` STRING,
+`url` STRING,
+`objectType` STRING,
+`author` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published` STRING,
+`updated` STRING,
+`upstreamDuplicates` ARRAY<STRING>,
+`downstreamDuplicates` ARRAY<STRING>,
+`address` STRUCT
+<
+`post-office-box`:STRING,
+`extended-address`:STRING,
+`street-address`:STRING,
+`locality`:STRING,
+`region`:STRING,
+`postal-code`:STRING,
+`country-name`:STRING
+>
+,
+`position` STRUCT
+<
+`altitude`:FLOAT,
+`latitude`:FLOAT,
+`longitude`:FLOAT
+>
+
+)
+ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
+WITH SERDEPROPERTIES ("ignore.malformed.json" = "true"
+STORED AS TEXTFILE
+LOCATION '${hiveconf:path}';

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-plugins/streams-plugin-hive/src/test/resources/expected/verbs/purchase.hql
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/resources/expected/verbs/purchase.hql b/streams-plugins/streams-plugin-hive/src/test/resources/expected/verbs/purchase.hql
new file mode 100644
index 0000000..4a05269
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/resources/expected/verbs/purchase.hql
@@ -0,0 +1,203 @@
+CREATE TABLE `verbs_purchase`
+(
+`id` STRING,
+`actor` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`verb` STRING,
+`object` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`target` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published` STRING,
+`updated` STRING,
+`generator` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`icon` STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`provider` STRUCT
+<
+`id`:STRING,
+`image`:STRUCT
+<
+`duration`:FLOAT,
+`height`:INT,
+`width`:INT,
+`url`:STRING
+>
+,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`author`:STRUCT
+<
+`id`:STRING,
+`displayName`:STRING,
+`summary`:STRING,
+`content`:STRING,
+`url`:STRING,
+`objectType`:STRING,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`published`:STRING,
+`updated`:STRING,
+`upstreamDuplicates`:ARRAY<STRING>,
+`downstreamDuplicates`:ARRAY<STRING>
+>
+,
+`title` STRING,
+`content` STRING,
+`url` STRING,
+`links` ARRAY<STRING>
+)
+ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
+WITH SERDEPROPERTIES ("ignore.malformed.json" = "true"
+STORED AS TEXTFILE
+LOCATION '${hiveconf:path}';

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-schemas/pom.xml
----------------------------------------------------------------------
diff --git a/streams-schemas/pom.xml b/streams-schemas/pom.xml
index d64359a..0625cb6 100644
--- a/streams-schemas/pom.xml
+++ b/streams-schemas/pom.xml
@@ -29,9 +29,44 @@
     <artifactId>streams-schemas</artifactId>
     <name>${project.artifactId}</name>
 
-    <description>Activity Streams schemas</description>
+    <description>Activity Streams schemas and schema utilities</description>
 
+    <dependencies>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jsonschema2pojo</groupId>
+            <artifactId>jsonschema2pojo-core</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+
+    </dependencies>
     <build>
+        <sourceDirectory>src/main/java</sourceDirectory>
+        <testSourceDirectory>src/test/java</testSourceDirectory>
         <resources>
             <resource>
                 <directory>src/main/resources</directory>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-schemas/src/main/java/org/apache/streams/schema/FieldType.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/FieldType.java b/streams-schemas/src/main/java/org/apache/streams/schema/FieldType.java
new file mode 100644
index 0000000..1ad9dcc
--- /dev/null
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/FieldType.java
@@ -0,0 +1,13 @@
+package org.apache.streams.schema;
+
+/**
+ * Created by steve on 5/1/16.
+ */
+public enum FieldType {
+    STRING,
+    INTEGER,
+    NUMBER,
+    BOOLEAN,
+    OBJECT,
+    ARRAY
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java
new file mode 100644
index 0000000..5f83767
--- /dev/null
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java
@@ -0,0 +1,29 @@
+package org.apache.streams.schema;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+/**
+ * Created by steve on 5/1/16.
+ */
+public class FieldUtil {
+    public static FieldType determineFieldType(ObjectNode fieldNode) {
+        String typeSchemaField = "type";
+        if( !fieldNode.has(typeSchemaField))
+            return null;
+        String typeSchemaFieldValue = fieldNode.get(typeSchemaField).asText();
+        if( typeSchemaFieldValue.equals("string")) {
+            return FieldType.STRING;
+        } else if( typeSchemaFieldValue.equals("integer")) {
+            return FieldType.INTEGER;
+        } else if( typeSchemaFieldValue.equals("number")) {
+            return FieldType.NUMBER;
+        } else if( typeSchemaFieldValue.equals("object")) {
+            return FieldType.OBJECT;
+        } else if( typeSchemaFieldValue.equals("boolean")) {
+            return FieldType.BOOLEAN;
+        } else if( typeSchemaFieldValue.equals("array")) {
+            return FieldType.ARRAY;
+        }
+        else return null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java
new file mode 100644
index 0000000..6b171f3
--- /dev/null
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java
@@ -0,0 +1,69 @@
+package org.apache.streams.schema;
+
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Created by steve on 5/1/16.
+ */
+public class FileUtil {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(FileUtil.class);
+
+    public static String dropSourcePathPrefix(String inputFile, String sourceDirectory) {
+        if(Strings.isNullOrEmpty(sourceDirectory))
+            return inputFile;
+        else if( inputFile.contains(sourceDirectory) ) {
+            return inputFile.substring(inputFile.indexOf(sourceDirectory)+sourceDirectory.length()+1);
+        } else return inputFile;
+    }
+
+    public static String swapExtension(String inputFile, String originalExtension, String newExtension) {
+        if(inputFile.endsWith("."+originalExtension))
+            return inputFile.replace("."+originalExtension, "."+newExtension);
+        else return inputFile;
+    }
+
+    public static String dropExtension(String inputFile) {
+        if(inputFile.contains("."))
+            return inputFile.substring(0, inputFile.lastIndexOf("."));
+        else return inputFile;
+    }
+
+    public static void writeFile(String resourceFile, String resourceContent) {
+        try {
+            File path = new File(resourceFile);
+            File dir = path.getParentFile();
+            if( !dir.exists() )
+                dir.mkdirs();
+            Files.write(Paths.get(resourceFile), resourceContent.getBytes(), StandardOpenOption.CREATE_NEW);
+        } catch (Exception e) {
+            LOGGER.error("Write Exception: {}", e);
+        }
+    }
+
+    public static void resolveRecursive(GenerationConfig config, List<File> schemaFiles) {
+
+        Preconditions.checkArgument(schemaFiles.size() > 0);
+        int i = 0;
+        while( schemaFiles.size() > i) {
+            File child = schemaFiles.get(i);
+            if (child.isDirectory()) {
+                schemaFiles.addAll(Arrays.asList(child.listFiles(config.getFileFilter())));
+                schemaFiles.remove(child);
+            } else {
+                i += 1;
+            }
+        }
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java b/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java
new file mode 100644
index 0000000..e0469c9
--- /dev/null
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java
@@ -0,0 +1,115 @@
+package org.apache.streams.schema;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.net.URL;
+import java.util.Iterator;
+
+/**
+ * Created by sblackmon on 5/3/16.
+ */
+public interface GenerationConfig {
+
+    /**
+     * Gets the 'source' configuration option.
+     *
+     * @return The source file(s) or directory(ies) from which JSON Schema will
+     *         be read.
+     */
+    Iterator<URL> getSource();
+
+    /**
+     * Gets the 'targetDirectory' configuration option.
+     *
+     * @return The target directory into which generated types will be written
+     *         (may or may not exist before types are written)
+     */
+    File getTargetDirectory();
+
+    /**
+     * Gets the 'outputEncoding' configuration option.
+     *
+     * @return The character encoding that should be used when writing output files.
+     */
+    String getOutputEncoding();
+
+    /**
+     * Gets the file filter used to isolate the schema mapping files in the
+     * source directories.
+     *
+     * @return the file filter use when scanning for schema files.
+     */
+    FileFilter getFileFilter();
+
+    /**
+     * Gets the 'includeAdditionalProperties' configuration option.
+     *
+     * @return Whether to allow 'additional properties' support in objects.
+     *         Setting this to false will disable additional properties support,
+     *         regardless of the input schema(s).
+     */
+    boolean isIncludeAdditionalProperties();
+
+    /**
+     * Gets the 'targetVersion' configuration option.
+     *
+     *  @return The target version for generated source files.
+     */
+    String getTargetVersion();
+
+//    /**
+//     * Gets the `includeDynamicAccessors` configuraiton option.
+//     *
+//     * @return Whether to include dynamic getters, setters, and builders
+//     *         or to omit these methods.
+//     */
+//    boolean isIncludeDynamicAccessors();
+
+//    /**
+//     * Gets the `dateTimeType` configuration option.
+//     *         <p>
+//     *         Example values:
+//     *         <ul>
+//     *         <li><code>org.joda.time.LocalDateTime</code> (Joda)</li>
+//     *         <li><code>java.time.LocalDateTime</code> (JSR310)</li>
+//     *         <li><code>null</code> (default behavior)</li>
+//     *         </ul>
+//     *
+//     * @return The java type to use instead of {@link java.util.Date}
+//     *         when adding date type fields to generate Java types.
+//     */
+//    String getDateTimeType();
+//
+//    /**
+//     * Gets the `dateType` configuration option.
+//     *         <p>
+//     *         Example values:
+//     *         <ul>
+//     *         <li><code>org.joda.time.LocalDate</code> (Joda)</li>
+//     *         <li><code>java.time.LocalDate</code> (JSR310)</li>
+//     *         <li><code>null</code> (default behavior)</li>
+//     *         </ul>
+//     *
+//     * @return The java type to use instead of string
+//     *         when adding string type fields with a format of date (not
+//     *         date-time) to generated Java types.
+//     */
+//    String getDateType();
+//
+//    /**
+//     * Gets the `timeType` configuration option.
+//     *         <p>
+//     *         Example values:
+//     *         <ul>
+//     *         <li><code>org.joda.time.LocalTime</code> (Joda)</li>
+//     *         <li><code>java.time.LocalTime</code> (JSR310)</li>
+//     *         <li><code>null</code> (default behavior)</li>
+//     *         </ul>
+//     *
+//     * @return The java type to use instead of string
+//     *         when adding string type fields with a format of time (not
+//     *         date-time) to generated Java types.
+//     */
+//    String getTimeType();
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-schemas/src/main/java/org/apache/streams/schema/Schema.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/Schema.java b/streams-schemas/src/main/java/org/apache/streams/schema/Schema.java
new file mode 100644
index 0000000..ea75ffd
--- /dev/null
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/Schema.java
@@ -0,0 +1,57 @@
+package org.apache.streams.schema;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+import java.net.URI;
+
+/**
+ * A JSON Schema document.
+ */
+public class Schema {
+
+    private final URI id;
+    private final URI uri;
+    private final JsonNode content;
+    private final Schema parent;
+    private final boolean generate;
+
+    public Schema(URI uri, JsonNode content, Schema parent, boolean generate) {
+        this.uri = uri;
+        this.content = content;
+        this.parent = parent;
+        this.generate = generate;
+        this.id = content.has("id") ? URI.create(content.get("id").asText()) : null;
+    }
+
+    public URI getId() {
+        return id;
+    }
+
+    public URI getURI() {
+        return uri;
+    }
+
+    public JsonNode getContent() {
+        return content;
+    }
+
+    public JsonNode getParentContent() {
+        if( parent != null )
+            return parent.getContent();
+        else return null;
+    }
+
+    public URI getParentURI() {
+        if( parent != null ) return parent.getURI();
+        else return null;
+    }
+
+    public boolean isGenerated() {
+        return generate;
+    }
+
+    public Schema getParent() {
+        return parent;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-schemas/src/main/java/org/apache/streams/schema/SchemaStore.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/SchemaStore.java b/streams-schemas/src/main/java/org/apache/streams/schema/SchemaStore.java
new file mode 100644
index 0000000..e612aff
--- /dev/null
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/SchemaStore.java
@@ -0,0 +1,283 @@
+package org.apache.streams.schema;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.base.Optional;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Ordering;
+import org.apache.commons.lang3.StringUtils;
+import org.jsonschema2pojo.ContentResolver;
+import org.jsonschema2pojo.FragmentResolver;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.net.URI;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import static org.apache.streams.schema.URIUtil.safeResolve;
+
+/**
+ * Created by steve on 4/30/16.
+ */
+public class SchemaStore extends Ordering<Schema> {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(SchemaStore.class);
+    private final static JsonNodeFactory NODE_FACTORY = JsonNodeFactory.instance;
+
+    protected Map<URI, Schema> schemas = new HashMap();
+    protected FragmentResolver fragmentResolver = new FragmentResolver();
+    protected ContentResolver contentResolver = new ContentResolver();
+
+    public SchemaStore() {
+    }
+
+    public synchronized Schema create(URI uri) {
+        if(!getByUri(uri).isPresent()) {
+            URI baseURI = URIUtil.removeFragment(uri);
+            JsonNode baseNode = this.contentResolver.resolve(baseURI);
+            if(uri.toString().contains("#") && !uri.toString().endsWith("#")) {
+                Schema newSchema = new Schema(baseURI, baseNode, null, true);
+                this.schemas.put(baseURI, newSchema);
+                JsonNode childContent = this.fragmentResolver.resolve(baseNode, '#' + StringUtils.substringAfter(uri.toString(), "#"));
+                this.schemas.put(uri, new Schema(uri, childContent, newSchema, false));
+            } else {
+                if( baseNode.has("extends") && baseNode.get("extends").isObject()) {
+                    URI ref = URI.create(((ObjectNode)baseNode.get("extends")).get("$ref").asText());
+                    URI absoluteURI;
+                    if( ref.isAbsolute())
+                        absoluteURI = ref;
+                    else
+                        absoluteURI = baseURI.resolve(ref);
+                    JsonNode parentNode = this.contentResolver.resolve(absoluteURI);
+                    Schema parentSchema = null;
+                    if( this.schemas.get(absoluteURI) != null ) {
+                        parentSchema = this.schemas.get(absoluteURI);
+                    } else {
+                        parentSchema = create(absoluteURI);
+                    }
+                    this.schemas.put(uri, new Schema(uri, baseNode, parentSchema, true));
+                } else {
+                    this.schemas.put(uri, new Schema(uri, baseNode, null, true));
+                }
+            }
+            List<JsonNode> refs = baseNode.findValues("$ref");
+            for( JsonNode ref : refs ) {
+                if( ref.isValueNode() ) {
+                    String refVal = ref.asText();
+                    URI refURI = null;
+                    try {
+                        refURI = URI.create(refVal);
+                    } catch( Exception e ) {
+                        LOGGER.info("Exception: {}", e.getMessage());
+                    }
+                    if (refURI != null && !getByUri(refURI).isPresent()) {
+                        if (refURI.isAbsolute())
+                            create(refURI);
+                        else
+                            create(baseURI.resolve(refURI));
+                    }
+                }
+            }
+        }
+
+        return this.schemas.get(uri);
+    }
+
+    public Schema create(Schema parent, String path) {
+        if(path.equals("#")) {
+            return parent;
+        } else {
+            path = StringUtils.stripEnd(path, "#?&/");
+            URI id = parent != null && parent.getId() != null?parent.getId().resolve(path):URI.create(path);
+            if(this.selfReferenceWithoutParentFile(parent, path)) {
+                this.schemas.put(id, new Schema(id, this.fragmentResolver.resolve(parent.getParentContent(), path), parent, false));
+                return this.schemas.get(id);
+            } else {
+                return this.create(id);
+            }
+        }
+    }
+
+    protected boolean selfReferenceWithoutParentFile(Schema parent, String path) {
+        return parent != null && (parent.getId() == null || parent.getId().toString().startsWith("#/")) && path.startsWith("#/");
+    }
+
+    public synchronized void clearCache() {
+        this.schemas.clear();
+    }
+
+    public Integer getSize() {
+        return schemas.size();
+    }
+
+    public Optional<Schema> getById(URI id) {
+        for( Schema schema : schemas.values() ) {
+            if( schema.getId() != null && schema.getId().equals(id) )
+                return Optional.of(schema);
+        }
+        return Optional.absent();
+    }
+
+    public Optional<Schema> getByUri(URI uri) {
+        for( Schema schema : schemas.values() ) {
+            if( schema.getURI().equals(uri) )
+                return Optional.of(schema);
+        }
+        return Optional.absent();
+    }
+
+    public Integer getFileUriCount() {
+        int count = 0;
+        for( Schema schema : schemas.values() ) {
+            if( schema.getURI().getScheme().equals("file") )
+                count++;
+        }
+        return count;
+    }
+
+    public Integer getHttpUriCount() {
+        int count = 0;
+        for( Schema schema : schemas.values() ) {
+            if( schema.getURI().getScheme().equals("http") )
+                count++;
+        }
+        return count;
+    }
+
+    public Iterator<Schema> getSchemaIterator() {
+        List<Schema> schemaList = Lists.newArrayList(schemas.values());
+        Collections.sort(schemaList, this);
+        return schemaList.iterator();
+    }
+
+    public ObjectNode resolveProperties(Schema schema, ObjectNode fieldNode, String resourceId) {
+        // this should return something more suitable like:
+        //   Map<String, Pair<Schema, ObjectNode>>
+        ObjectNode schemaProperties = NODE_FACTORY.objectNode();
+        ObjectNode parentProperties = NODE_FACTORY.objectNode();
+        if (fieldNode == null) {
+            ObjectNode schemaContent = (ObjectNode) schema.getContent();
+            if( schemaContent.has("properties") ) {
+                schemaProperties = (ObjectNode) schemaContent.get("properties");
+                if (schema.getParentContent() != null) {
+                    ObjectNode parentContent = (ObjectNode) schema.getParentContent();
+                    if (parentContent.has("properties")) {
+                        parentProperties = (ObjectNode) parentContent.get("properties");
+                    }
+                }
+            }
+        } else if (fieldNode != null && fieldNode.size() > 0) {
+            if( fieldNode.has("properties") && fieldNode.get("properties").isObject() && fieldNode.get("properties").size() > 0 )
+                schemaProperties = (ObjectNode) fieldNode.get("properties");
+            URI parentURI = null;
+            if( fieldNode.has("$ref") || fieldNode.has("extends") ) {
+                JsonNode refNode = fieldNode.get("$ref");
+                JsonNode extendsNode = fieldNode.get("extends");
+                if (refNode != null && refNode.isValueNode())
+                    parentURI = URI.create(refNode.asText());
+                else if (extendsNode != null && extendsNode.isObject())
+                    parentURI = URI.create(extendsNode.get("$ref").asText());
+                ObjectNode parentContent = null;
+                URI absoluteURI;
+                if (parentURI.isAbsolute())
+                    absoluteURI = parentURI;
+                else {
+                    absoluteURI = schema.getURI().resolve(parentURI);
+                    if (!absoluteURI.isAbsolute() || (absoluteURI.isAbsolute() && !getByUri(absoluteURI).isPresent() ))
+                        absoluteURI = schema.getParentURI().resolve(parentURI);
+                }
+                if (absoluteURI != null && absoluteURI.isAbsolute()) {
+                    if (getByUri(absoluteURI).isPresent())
+                        parentContent = (ObjectNode) getByUri(absoluteURI).get().getContent();
+                    if (parentContent != null && parentContent.isObject() && parentContent.has("properties")) {
+                        parentProperties = (ObjectNode) parentContent.get("properties");
+                    } else if (absoluteURI.getPath().endsWith("#properties")) {
+                        absoluteURI = URI.create(absoluteURI.toString().replace("#properties", ""));
+                        parentProperties = (ObjectNode) getByUri(absoluteURI).get().getContent().get("properties");
+                    }
+                }
+            }
+
+
+        }
+
+        ObjectNode resolvedProperties = NODE_FACTORY.objectNode();
+        if (parentProperties != null && parentProperties.size() > 0)
+            resolvedProperties = SchemaUtil.mergeProperties(schemaProperties, parentProperties);
+        else resolvedProperties = schemaProperties.deepCopy();
+
+        return resolvedProperties;
+    }
+
+    @Override
+    public int compare(Schema left, Schema right) {
+        // are they the same?
+        if( left.equals(right)) return 0;
+        // is one an ancestor of the other
+        Schema candidateAncestor = left;
+        while( candidateAncestor.getParent() != null ) {
+            candidateAncestor = candidateAncestor.getParent();
+            if( candidateAncestor.equals(right))
+                return 1;
+        }
+        candidateAncestor = right;
+        while( candidateAncestor.getParent() != null ) {
+            candidateAncestor = candidateAncestor.getParent();
+            if( candidateAncestor.equals(left))
+                return -1;
+        }
+        // does one have a field that reference the other?
+        for( JsonNode refNode : left.getContent().findValues("$ref") ) {
+            String refText = refNode.asText();
+            Optional<URI> resolvedURI = safeResolve(left.getURI(), refText);
+            if( resolvedURI.isPresent() && resolvedURI.get().equals(right.getURI()))
+                return 1;
+        }
+        for( JsonNode refNode : right.getContent().findValues("$ref") ) {
+            String refText = refNode.asText();
+            Optional<URI> resolvedURI = safeResolve(right.getURI(), refText);
+            if( resolvedURI.isPresent() && resolvedURI.get().equals(left.getURI()))
+                return -1;
+        }
+        // does one have a field that reference a third schema that references the other?
+        for( JsonNode refNode : left.getContent().findValues("$ref") ) {
+            String refText = refNode.asText();
+            Optional<URI> possibleConnectorURI = safeResolve(left.getURI(), refText);
+            if( possibleConnectorURI.isPresent()) {
+                Optional<Schema> possibleConnector = getByUri(possibleConnectorURI.get());
+                if (possibleConnector.isPresent()) {
+                    for (JsonNode connectorRefNode : possibleConnector.get().getContent().findValues("$ref")) {
+                        String connectorRefText = connectorRefNode.asText();
+                        Optional<URI> resolvedURI = safeResolve(possibleConnector.get().getURI(), connectorRefText);
+                        if (resolvedURI.isPresent() && resolvedURI.get().equals(right.getURI()))
+                            return 1;
+                    }
+                }
+            }
+        }
+        for( JsonNode refNode : right.getContent().findValues("$ref") ) {
+            String refText = refNode.asText();
+            Optional<URI> possibleConnectorURI = safeResolve(right.getURI(), refText);
+            if( possibleConnectorURI.isPresent()) {
+                Optional<Schema> possibleConnector = getByUri(possibleConnectorURI.get());
+                if (possibleConnector.isPresent()) {
+                    for (JsonNode connectorRefNode : possibleConnector.get().getContent().findValues("$ref")) {
+                        String connectorRefText = connectorRefNode.asText();
+                        Optional<URI> resolvedURI = safeResolve(possibleConnector.get().getURI(), connectorRefText);
+                        if (resolvedURI.isPresent() && resolvedURI.get().equals(left.getURI()))
+                            return -1;
+                    }
+                }
+            }
+        }
+        return 0;
+    }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java
new file mode 100644
index 0000000..3e3b300
--- /dev/null
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java
@@ -0,0 +1,50 @@
+package org.apache.streams.schema;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.jsonschema2pojo.util.NameHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.Map;
+
+import static org.apache.commons.lang3.StringUtils.isEmpty;
+
+/**
+ * Created by steve on 4/30/16.
+ */
+public class SchemaUtil {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(SchemaUtil.class);
+    private static final JsonNodeFactory NODE_FACTORY = JsonNodeFactory.instance;
+
+    public static String childQualifiedName(String parentQualifiedName, String childSimpleName) {
+        String safeChildName = childSimpleName.replaceAll(NameHelper.ILLEGAL_CHARACTER_REGEX, "_");
+        return isEmpty(parentQualifiedName) ? safeChildName : parentQualifiedName + "." + safeChildName;
+    }
+
+    public static ObjectNode readSchema(URL schemaUrl) {
+
+        ObjectNode schemaNode = NODE_FACTORY.objectNode();
+        schemaNode.put("$ref", schemaUrl.toString());
+        return schemaNode;
+
+    }
+
+    public static ObjectNode mergeProperties(ObjectNode content, ObjectNode parent) {
+
+        ObjectNode merged = parent.deepCopy();
+        Iterator<Map.Entry<String, JsonNode>> fields = content.fields();
+        for( ; fields.hasNext(); ) {
+            Map.Entry<String, JsonNode> field = fields.next();
+            String fieldId = field.getKey();
+            merged.put(fieldId, field.getValue().deepCopy());
+        }
+        return merged;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/9618adaf/streams-schemas/src/main/java/org/apache/streams/schema/URIUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/URIUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/URIUtil.java
new file mode 100644
index 0000000..04e8904
--- /dev/null
+++ b/streams-schemas/src/main/java/org/apache/streams/schema/URIUtil.java
@@ -0,0 +1,31 @@
+package org.apache.streams.schema;
+
+import com.google.common.base.Optional;
+import org.apache.commons.lang3.StringUtils;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ * Created by sblackmon on 5/1/16.
+ */
+public class URIUtil {
+
+    public static URI removeFragment(URI id) {
+        return URI.create(StringUtils.substringBefore(id.toString(), "#"));
+    }
+
+    public static URI removeFile(URI id) {
+        return URI.create(StringUtils.substringBeforeLast(id.toString(), "/"));
+    }
+
+    public static Optional<URI> safeResolve(URI absolute, String relativePart) {
+        if( !absolute.isAbsolute()) return Optional.absent();
+        try {
+            return Optional.of(absolute.resolve(relativePart));
+        } catch( IllegalArgumentException e ) {
+            return Optional.absent();
+        }
+    }
+
+}


[04/32] incubator-streams git commit: test pom for streams-plugin-pojo

Posted by sb...@apache.org.
test pom for streams-plugin-pojo


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/eea09756
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/eea09756
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/eea09756

Branch: refs/feature/STREAMS-389,398
Commit: eea09756b2388acca625e2e752be127874a52599
Parents: 6501b27
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Mon Mar 28 08:32:27 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Mon Mar 28 08:32:27 2016 -0500

----------------------------------------------------------------------
 .../src/test/resources/streams-plugin-pojo/pom.xml        | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/eea09756/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml b/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
index b1de7b8..fbb2864 100644
--- a/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
+++ b/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
@@ -4,10 +4,10 @@
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>org.apache.streams.plugins</groupId>
-    <artifactId>streams-plugin-hive-test</artifactId>
+    <artifactId>streams-plugin-pojo-test</artifactId>
     <version>0.3-incubating-SNAPSHOT</version>
     <packaging>jar</packaging>
-    <name>Test StreamsPojoHiveMojo</name>
+    <name>Test StreamsPojoMojo</name>
 
     <dependencies>
         <dependency>
@@ -21,18 +21,18 @@
         <plugins>
             <plugin>
                 <groupId>org.apache.streams.plugins</groupId>
-                <artifactId>streams-plugin-hive</artifactId>
+                <artifactId>streams-plugin-pojo</artifactId>
                 <version>0.3-incubating-SNAPSHOT</version>
                 <configuration>
                     <packages>
                         <package>org.apache.streams.pojo.json</package>
                     </packages>
-                    <target>target/test-classes/streams-hive-plugin/</target>
+                    <target>target/test-classes/streams-pojo-plugin/</target>
                 </configuration>
                 <executions>
                     <execution>
                         <goals>
-                            <goal>hive</goal>
+                            <goal>pojo</goal>
                         </goals>
                     </execution>
                 </executions>


[15/32] incubator-streams git commit: WIP for apachecon

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/note.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/note.json b/streams-schemas/src/site/resources/objectTypes/note.json
deleted file mode 100644
index 09de97c..0000000
--- a/streams-schemas/src/site/resources/objectTypes/note.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "note",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "note"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/offer.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/offer.json b/streams-schemas/src/site/resources/objectTypes/offer.json
deleted file mode 100644
index 38db718..0000000
--- a/streams-schemas/src/site/resources/objectTypes/offer.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "offer",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "offer"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/organization.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/organization.json b/streams-schemas/src/site/resources/objectTypes/organization.json
deleted file mode 100644
index a3fd5a2..0000000
--- a/streams-schemas/src/site/resources/objectTypes/organization.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "organization",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "organization"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/page.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/page.json b/streams-schemas/src/site/resources/objectTypes/page.json
deleted file mode 100644
index 4f76aa2..0000000
--- a/streams-schemas/src/site/resources/objectTypes/page.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "page",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "page"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/permission.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/permission.json b/streams-schemas/src/site/resources/objectTypes/permission.json
deleted file mode 100644
index 32b395c..0000000
--- a/streams-schemas/src/site/resources/objectTypes/permission.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "permission",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "permission"
-        },
-        "scope": {
-            "type": "object",
-            "extends": {
-              "$ref": "../object.json"
-            }
-        },
-        "actions": {
-            "type": "array",
-            "items": {
-               "type": "string",
-               "enumeration": [
-                  "create",
-                  "delete",
-                  "modify"
-               ]
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/person.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/person.json b/streams-schemas/src/site/resources/objectTypes/person.json
deleted file mode 100644
index f42eb8e..0000000
--- a/streams-schemas/src/site/resources/objectTypes/person.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "person",
-    "description": "vCard Format. Does not match PoCO",
-    "extends": [
-        {
-            "$ref": "../object.json"
-        },
-        {
-            "$ref": "http://www.json-schema.org/card"
-        }
-    ],
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "person"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/photo-album.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/photo-album.json b/streams-schemas/src/site/resources/objectTypes/photo-album.json
deleted file mode 100644
index 933804b..0000000
--- a/streams-schemas/src/site/resources/objectTypes/photo-album.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "article",
-    "extends": {
-        "$ref": "../objectTypes/list.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "photo-album"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/photo.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/photo.json b/streams-schemas/src/site/resources/objectTypes/photo.json
deleted file mode 100644
index 347f25c..0000000
--- a/streams-schemas/src/site/resources/objectTypes/photo.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "photo",
-    "extends": {
-        "$ref": "../objectTypes/file.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "photo"
-        },
-        "displayName": {
-            "type": "string",
-            "default": "a photo"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/place.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/place.json b/streams-schemas/src/site/resources/objectTypes/place.json
deleted file mode 100644
index bb96a79..0000000
--- a/streams-schemas/src/site/resources/objectTypes/place.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "place",
-    "extends": [
-        {
-            "$ref": "../object.json"
-        }
-    ],
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "place"
-        },
-        "address": {
-          "type": "object",
-          "extends": [
-            {
-              "$ref": "http://www.json-schema.org/address"
-            }
-          ]
-        },
-        "position": {
-          "type": "object",
-          "properties": {
-            "altitude": {
-              "type": "number"
-            },
-            "latitude": {
-              "type": "number"
-            },
-            "longitude": {
-              "type": "number"
-            }
-          }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/playlist.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/playlist.json b/streams-schemas/src/site/resources/objectTypes/playlist.json
deleted file mode 100644
index 6ce9dd2..0000000
--- a/streams-schemas/src/site/resources/objectTypes/playlist.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "playlist",
-    "extends": {
-        "$ref": "../objectTypes/list.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "playlist"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/process.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/process.json b/streams-schemas/src/site/resources/objectTypes/process.json
deleted file mode 100644
index d717cc7..0000000
--- a/streams-schemas/src/site/resources/objectTypes/process.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "process",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "process"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/product.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/product.json b/streams-schemas/src/site/resources/objectTypes/product.json
deleted file mode 100644
index 4e035cf..0000000
--- a/streams-schemas/src/site/resources/objectTypes/product.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "product",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "product"
-        },
-        "fullImage": {
-            "type": "object",
-            "extends": {
-              "$ref": "../media_link.json"
-            }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/property.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/property.json b/streams-schemas/src/site/resources/objectTypes/property.json
deleted file mode 100644
index 0cd630e..0000000
--- a/streams-schemas/src/site/resources/objectTypes/property.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "property",
-    "description": "A property describes name, path and value. Can be used with delete, update or post verbs",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "property"
-        },
-        "displayName": {
-            "type": "string",
-            "description": "The human readable name of the property in the appropriate language",
-            "optional": true
-        },
-        "path": {
-            "type": "string",
-            "description": "dot delimited path to the property in the target. Ex: streetAddress"
-        }
-    },
-    "example": {
-        "actor": {
-            "id": 1212,
-            "displayName": "Peter"
-        },
-        "verb": "update",
-        "time": "2010-08-02T15:29:00Z",
-        "object": {
-            "objectType": "property",
-            "displayName": "street address",
-            "path": "streetAddress",
-            "content": "234 Amazing St"
-        },
-        "target": {
-            "id": 12121,
-            "time": "2010-08-02T15:29:00Z",
-            "displayName": "Peter's House"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/question.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/question.json b/streams-schemas/src/site/resources/objectTypes/question.json
deleted file mode 100644
index cccdfe0..0000000
--- a/streams-schemas/src/site/resources/objectTypes/question.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "question",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "question"
-        },
-        "options": {
-            "type": "array",
-            "items": {
-               "type": "object",
-                "extends": {
-                  "$ref": "../object.json"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/review.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/review.json b/streams-schemas/src/site/resources/objectTypes/review.json
deleted file mode 100644
index 7629cb6..0000000
--- a/streams-schemas/src/site/resources/objectTypes/review.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "review",
-    "extends": {
-        "$ref": "../objectTypes/article.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "review"
-        },
-        "rating": {
-           "type": "number"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/role.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/role.json b/streams-schemas/src/site/resources/objectTypes/role.json
deleted file mode 100644
index 25524ab..0000000
--- a/streams-schemas/src/site/resources/objectTypes/role.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "role",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "role"
-        },
-        "members": {
-            "type": "object",
-            "extends": {
-              "$ref": "../collection.json"
-            }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/service.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/service.json b/streams-schemas/src/site/resources/objectTypes/service.json
deleted file mode 100644
index 3d4a496..0000000
--- a/streams-schemas/src/site/resources/objectTypes/service.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "service",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "service"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/song.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/song.json b/streams-schemas/src/site/resources/objectTypes/song.json
deleted file mode 100644
index 46d6eb0..0000000
--- a/streams-schemas/src/site/resources/objectTypes/song.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "song",
-    "extends": {
-        "$ref": "../objectTypes/audio.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "song"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/status.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/status.json b/streams-schemas/src/site/resources/objectTypes/status.json
deleted file mode 100644
index a029f19..0000000
--- a/streams-schemas/src/site/resources/objectTypes/status.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "status",
-    "extends": {
-        "$ref": "../objectTypes/note.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "song"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/task.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/task.json b/streams-schemas/src/site/resources/objectTypes/task.json
deleted file mode 100644
index fb2f39f..0000000
--- a/streams-schemas/src/site/resources/objectTypes/task.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "task",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "task"
-        },
-        "by": {
-          "type": "string",
-          "format": "date-time"
-        },
-        "prerequisites": {
-          "type": "array",
-          "items": {
-            "type": "object",
-            "$ref": "../activity.json"
-          }
-        },
-        "required": {
-          "type": "boolean"
-        },
-        "supersedes": {
-          "type": "array",
-          "items": {
-            "type": "object",
-            "$ref": "../activity.json"
-          }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/team.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/team.json b/streams-schemas/src/site/resources/objectTypes/team.json
deleted file mode 100644
index 37419a0..0000000
--- a/streams-schemas/src/site/resources/objectTypes/team.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "team",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "team"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/objectTypes/video.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/video.json b/streams-schemas/src/site/resources/objectTypes/video.json
deleted file mode 100644
index 7ac63d8..0000000
--- a/streams-schemas/src/site/resources/objectTypes/video.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "video",
-    "extends": {
-        "$ref": "../objectTypes/file.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "video"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/accept.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/accept.json b/streams-schemas/src/site/resources/verbs/accept.json
deleted file mode 100644
index a9f91fe..0000000
--- a/streams-schemas/src/site/resources/verbs/accept.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Accept",
-    "description": "Indicates that that the actor has accepted the object. For instance, a person accepting an award, or accepting an assignment.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "accept"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} accepted {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/access.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/access.json b/streams-schemas/src/site/resources/verbs/access.json
deleted file mode 100644
index 156e3cb..0000000
--- a/streams-schemas/src/site/resources/verbs/access.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Access",
-    "description": "Indicates that the actor has accessed the object. For instance, a person accessing a room, or accessing a file.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "access"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} accessed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/acknowledge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/acknowledge.json b/streams-schemas/src/site/resources/verbs/acknowledge.json
deleted file mode 100644
index 2e84c43..0000000
--- a/streams-schemas/src/site/resources/verbs/acknowledge.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Acknowledge",
-    "description": "Indicates that the actor has acknowledged the object. This effectively signals that the actor is aware of the object's existence.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "acknowledge"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} acknowledge {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/add.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/add.json b/streams-schemas/src/site/resources/verbs/add.json
deleted file mode 100644
index cec0c58..0000000
--- a/streams-schemas/src/site/resources/verbs/add.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Add",
-    "description": "Indicates that the actor has added the object to the target. For instance, adding a photo to an album.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "add"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} added {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/agree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/agree.json b/streams-schemas/src/site/resources/verbs/agree.json
deleted file mode 100644
index 5095153..0000000
--- a/streams-schemas/src/site/resources/verbs/agree.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Agree",
-    "description": "Indicates that the actor agrees with the object. For example, a person agreeing with an argument, or expressing agreement with a particular issue.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "agree"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} agrees with {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/append.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/append.json b/streams-schemas/src/site/resources/verbs/append.json
deleted file mode 100644
index 648d192..0000000
--- a/streams-schemas/src/site/resources/verbs/append.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Append",
-    "description": "Indicates that the actor has appended the object to the target. For instance, a person appending a new record to a database.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "append"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} append {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/approve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/approve.json b/streams-schemas/src/site/resources/verbs/approve.json
deleted file mode 100644
index ec66f9b..0000000
--- a/streams-schemas/src/site/resources/verbs/approve.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Approve",
-    "description": "Indicates that the actor has approved the object. For instance, a manager might approve a travel request.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "approve"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} approved {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/archive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/archive.json b/streams-schemas/src/site/resources/verbs/archive.json
deleted file mode 100644
index 24aea16..0000000
--- a/streams-schemas/src/site/resources/verbs/archive.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Archive",
-    "description": "Indicates that the actor has archived the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "archive"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} archived {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/assign.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/assign.json b/streams-schemas/src/site/resources/verbs/assign.json
deleted file mode 100644
index 8fe5458..0000000
--- a/streams-schemas/src/site/resources/verbs/assign.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Assign",
-    "description": "Indicates that the actor has assigned the object to the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "assign"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} assigned {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/at.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/at.json b/streams-schemas/src/site/resources/verbs/at.json
deleted file mode 100644
index 42c1222..0000000
--- a/streams-schemas/src/site/resources/verbs/at.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "At",
-    "description": "Indicates that the actor is currently located at the object. For instance, a person being at a specific physical location.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "assign"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} assigned {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/attach.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/attach.json b/streams-schemas/src/site/resources/verbs/attach.json
deleted file mode 100644
index 77ff605..0000000
--- a/streams-schemas/src/site/resources/verbs/attach.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Attach",
-    "description": "Indicates that the actor has attached the object to the target.For instance, a person attaching a file to a wiki page or an email.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "attach"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} attached {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/attend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/attend.json b/streams-schemas/src/site/resources/verbs/attend.json
deleted file mode 100644
index 07e60fd..0000000
--- a/streams-schemas/src/site/resources/verbs/attend.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Attend",
-    "description": "Indicates that the actor has attended the object. For instance, a person attending a meeting.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "attend"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} attended {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/author.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/author.json b/streams-schemas/src/site/resources/verbs/author.json
deleted file mode 100644
index adc8b28..0000000
--- a/streams-schemas/src/site/resources/verbs/author.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Author",
-    "description": "Indicates that the actor has authored the object. Note that this is a more specific form of the verb \"create\".",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "author"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} authored {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/authorize.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/authorize.json b/streams-schemas/src/site/resources/verbs/authorize.json
deleted file mode 100644
index 7439b06..0000000
--- a/streams-schemas/src/site/resources/verbs/authorize.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Authorize",
-    "description": "Indicates that the actor has authorized the object. If a target is specified, it means that the authorization is specifically in regards to the target. For instance, a service can authorize a person to access a given application; in which case the actor is the service, the object is the person, and the target is the application. In contrast, a person can authorize a request; in which case the actor is the person and the object is the request and there might be no explicit target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "authorize"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} authorized {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/borrow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/borrow.json b/streams-schemas/src/site/resources/verbs/borrow.json
deleted file mode 100644
index ede59c1..0000000
--- a/streams-schemas/src/site/resources/verbs/borrow.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Borrow",
-    "description": "Indicates that the actor has borrowed the object. If a target is specified, it identifies the entity from which the object was borrowed. For instance, if a person borrows a book from a library, the person is the actor, the book is the object and the library is the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "borrow"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} borrow {object.displayName} from {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/build.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/build.json b/streams-schemas/src/site/resources/verbs/build.json
deleted file mode 100644
index a90441f..0000000
--- a/streams-schemas/src/site/resources/verbs/build.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Build",
-    "description": "Indicates that the actor has built the object. For example, if a person builds a model or compiles code.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "build"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} built {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/cancel.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/cancel.json b/streams-schemas/src/site/resources/verbs/cancel.json
deleted file mode 100644
index 4ab2406..0000000
--- a/streams-schemas/src/site/resources/verbs/cancel.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Cancel",
-    "description": "Indicates that the actor has canceled the object. For instance, canceling a calendar event.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "cancel"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} cancelled {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/checkin.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/checkin.json b/streams-schemas/src/site/resources/verbs/checkin.json
deleted file mode 100644
index d59a8c2..0000000
--- a/streams-schemas/src/site/resources/verbs/checkin.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "checkin",
-    "description": "Indicates that the actor has checked-in to the object. For instance, a person checking-in to a Place.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "checkin"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} checked in at {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/close.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/close.json b/streams-schemas/src/site/resources/verbs/close.json
deleted file mode 100644
index 7aa049d..0000000
--- a/streams-schemas/src/site/resources/verbs/close.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Close",
-    "description": "Indicates that the actor has closed the object. For instance, the object could represent a ticket being tracked in an issue management system.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "close"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} closed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/complete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/complete.json b/streams-schemas/src/site/resources/verbs/complete.json
deleted file mode 100644
index 4a95d48..0000000
--- a/streams-schemas/src/site/resources/verbs/complete.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Complete",
-    "description": "Indicates that the actor has completed the object",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "complete"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} completed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/confirm.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/confirm.json b/streams-schemas/src/site/resources/verbs/confirm.json
deleted file mode 100644
index aa8d45c..0000000
--- a/streams-schemas/src/site/resources/verbs/confirm.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Confirm",
-    "description": "Indicates that the actor has confirmed or agrees with the object. For instance, a software developer might confirm an issue reported against a product.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "confirm"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} confirmed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/consume.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/consume.json b/streams-schemas/src/site/resources/verbs/consume.json
deleted file mode 100644
index 3dc558a..0000000
--- a/streams-schemas/src/site/resources/verbs/consume.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Consume",
-    "description": "Indicates that the actor has consumed the object. The specific meaning is dependent largely on the object's type. For instance, an actor may \"consume\" an audio object, indicating that the actor has listened to it; or an actor may \"consume\" a book, indicating that the book has been read. As such, the \"consume\" verb is a more generic form of other more specific verbs such as \"read\" and \"play\".",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "consume"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} consumed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/create.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/create.json b/streams-schemas/src/site/resources/verbs/create.json
deleted file mode 100644
index dda3012..0000000
--- a/streams-schemas/src/site/resources/verbs/create.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Create",
-    "description": "Indicates that the actor has created the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "create"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} created {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/delete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/delete.json b/streams-schemas/src/site/resources/verbs/delete.json
deleted file mode 100644
index 39966c9..0000000
--- a/streams-schemas/src/site/resources/verbs/delete.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Delete",
-    "description": "Indicates that the actor has deleted the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "delete"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} deleted {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/deliver.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/deliver.json b/streams-schemas/src/site/resources/verbs/deliver.json
deleted file mode 100644
index a4b5648..0000000
--- a/streams-schemas/src/site/resources/verbs/deliver.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Deliver",
-    "description": "Indicates that the actor has delivered the object. For example, delivering a package.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "deliver"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} delivered {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/deny.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/deny.json b/streams-schemas/src/site/resources/verbs/deny.json
deleted file mode 100644
index 5bf473b..0000000
--- a/streams-schemas/src/site/resources/verbs/deny.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Deny",
-    "description": "Indicates that the actor has denied the object. For example, a manager may deny a travel request.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "deny"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} denied {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/disagree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/disagree.json b/streams-schemas/src/site/resources/verbs/disagree.json
deleted file mode 100644
index b2eb0c2..0000000
--- a/streams-schemas/src/site/resources/verbs/disagree.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Disagree",
-    "description": "Indicates that the actor disagrees with the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "disagree"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} disagrees with {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/dislike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/dislike.json b/streams-schemas/src/site/resources/verbs/dislike.json
deleted file mode 100644
index e33cb26..0000000
--- a/streams-schemas/src/site/resources/verbs/dislike.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Dislike",
-    "description": "Indicates that the actor dislikes the object. Note that the \"dislike\" verb is distinct from the \"unlike\" verb which assumes that the object had been previously \"liked\".",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "dislike"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} dislikes {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/experience.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/experience.json b/streams-schemas/src/site/resources/verbs/experience.json
deleted file mode 100644
index b760a5d..0000000
--- a/streams-schemas/src/site/resources/verbs/experience.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Experience",
-    "description": "Indicates that the actor has experienced the object in some manner. Note that, depending on the specific object types used for both the actor and object, the meaning of this verb can overlap that of the \"consume\" and \"play\" verbs. For instance, a person might \"experience\" a movie; or \"play\" the movie; or \"consume\" the movie. The \"experience\" verb can be considered a more generic form of other more specific verbs as \"consume\", \"play\", \"watch\", \"listen\", and \"read\"",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "experience"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} experienced {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/favorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/favorite.json b/streams-schemas/src/site/resources/verbs/favorite.json
deleted file mode 100644
index fa7afa3..0000000
--- a/streams-schemas/src/site/resources/verbs/favorite.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Favorite",
-    "description": "Indicates that the actor marked the object as an item of special interest.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "favorite"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} marked {object.displayName} as a favorite"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/find.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/find.json b/streams-schemas/src/site/resources/verbs/find.json
deleted file mode 100644
index b1a7dacc..0000000
--- a/streams-schemas/src/site/resources/verbs/find.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Find",
-    "description": "Indicates that the actor has found the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "find"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} found {object.displayName}."
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/flag-as-inappropriate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/flag-as-inappropriate.json b/streams-schemas/src/site/resources/verbs/flag-as-inappropriate.json
deleted file mode 100644
index e6657aa..0000000
--- a/streams-schemas/src/site/resources/verbs/flag-as-inappropriate.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Flag-As-Inappropriate",
-    "description": "Indicates that the actor has flagged the object as being inappropriate for some reason. When using this verb, the context property can be used to provide additional detail about why the object has been flagged.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "flag-as-inappropriate"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} flagged {object.displayName} as inappropriate."
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/follow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/follow.json b/streams-schemas/src/site/resources/verbs/follow.json
deleted file mode 100644
index 8f50b89..0000000
--- a/streams-schemas/src/site/resources/verbs/follow.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Follow",
-    "description": "Indicates that the actor began following the activity of the object. In most cases, the objectType will be a \"person\", but it can potentially be of any type that can sensibly generate activity. Processors MAY ignore (silently drop) successive identical \"follow\" activities.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "follow"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} started following {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/give.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/give.json b/streams-schemas/src/site/resources/verbs/give.json
deleted file mode 100644
index a9b6e74..0000000
--- a/streams-schemas/src/site/resources/verbs/give.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Give",
-    "description": "Indicates that the actor is giving an object to the target. Examples include one person giving a badge object to another person. The object identifies the object being given. The target identifies the receiver.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "give"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} gave {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/host.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/host.json b/streams-schemas/src/site/resources/verbs/host.json
deleted file mode 100644
index 8c59cd0..0000000
--- a/streams-schemas/src/site/resources/verbs/host.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Host",
-    "description": "Indicates that the actor is hosting the object. As in hosting an event, or hosting a service.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "host"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} is hosting {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/ignore.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/ignore.json b/streams-schemas/src/site/resources/verbs/ignore.json
deleted file mode 100644
index 442de31..0000000
--- a/streams-schemas/src/site/resources/verbs/ignore.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Ignore",
-    "description": "Indicates that the actor has ignored the object. For instance, this verb may be used when an actor has ignored a friend request, in which case the object may be the request-friend activity.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "ignore"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} ignored {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/insert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/insert.json b/streams-schemas/src/site/resources/verbs/insert.json
deleted file mode 100644
index 99db2ec..0000000
--- a/streams-schemas/src/site/resources/verbs/insert.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Insert",
-    "description": "Indicates that the actor has inserted the object into the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "insert"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} inserted {object.displayName} into {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/install.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/install.json b/streams-schemas/src/site/resources/verbs/install.json
deleted file mode 100644
index e3d6e0c..0000000
--- a/streams-schemas/src/site/resources/verbs/install.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Install",
-    "description": "Indicates that the actor has installed the object, as in installing an application.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "install"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} installed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/interact.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/interact.json b/streams-schemas/src/site/resources/verbs/interact.json
deleted file mode 100644
index d589ce4..0000000
--- a/streams-schemas/src/site/resources/verbs/interact.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Interact",
-    "description": "Indicates that the actor has interacted with the object. For instance, when one person interacts with another.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "interact"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} interacted with {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/invite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/invite.json b/streams-schemas/src/site/resources/verbs/invite.json
deleted file mode 100644
index 34a8691..0000000
--- a/streams-schemas/src/site/resources/verbs/invite.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Invite",
-    "description": "Indicates that the actor has invited the object, typically a person object, to join or participate in the object described by the target. The target could, for instance, be an event, group or a service.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "invite"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} invited {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/join.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/join.json b/streams-schemas/src/site/resources/verbs/join.json
deleted file mode 100644
index 78daed8..0000000
--- a/streams-schemas/src/site/resources/verbs/join.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Join",
-    "description": "Indicates that the actor has become a member of the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "join"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} joined {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/leave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/leave.json b/streams-schemas/src/site/resources/verbs/leave.json
deleted file mode 100644
index 1ce73bc..0000000
--- a/streams-schemas/src/site/resources/verbs/leave.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Leave",
-    "description": "Indicates that the actor has left the object. For instance, a Person leaving a Group or checking-out of a Place.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "leave"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} left {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/like.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/like.json b/streams-schemas/src/site/resources/verbs/like.json
deleted file mode 100644
index 4ac1bf7..0000000
--- a/streams-schemas/src/site/resources/verbs/like.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Like",
-    "description": "Indicates that the actor marked the object as an item of special interest.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "like"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} likes {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/listen.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/listen.json b/streams-schemas/src/site/resources/verbs/listen.json
deleted file mode 100644
index 3476144..0000000
--- a/streams-schemas/src/site/resources/verbs/listen.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Listen",
-    "description": "Indicates that the actor has listened to the object. This is typically only applicable for objects representing audio content, such as music, an audio-book, or a radio broadcast.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "listen"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} listened to {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/lose.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/lose.json b/streams-schemas/src/site/resources/verbs/lose.json
deleted file mode 100644
index 60899ba..0000000
--- a/streams-schemas/src/site/resources/verbs/lose.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Lose",
-    "description": "Indicates that the actor has lost the object. For instance, if a person loses a game.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "lose"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} lost {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/make-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/make-friend.json b/streams-schemas/src/site/resources/verbs/make-friend.json
deleted file mode 100644
index a6440f1..0000000
--- a/streams-schemas/src/site/resources/verbs/make-friend.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Befriend",
-    "description": "Indicates the creation of a friendship that is reciprocated by the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "make-friend"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} is now friends with {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/open.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/open.json b/streams-schemas/src/site/resources/verbs/open.json
deleted file mode 100644
index 0145bab..0000000
--- a/streams-schemas/src/site/resources/verbs/open.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Open",
-    "description": "Indicates that the actor has opened the object. For instance, the object could represent a ticket being tracked in an issue management system.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "open"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} opened {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/play.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/play.json b/streams-schemas/src/site/resources/verbs/play.json
deleted file mode 100644
index 3f25748..0000000
--- a/streams-schemas/src/site/resources/verbs/play.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Play",
-    "description": "Indicates that the actor spent some time enjoying the object. For example, if the object is a video this indicates that the subject watched all or part of the video.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "play"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} played {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/post.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/post.json b/streams-schemas/src/site/resources/verbs/post.json
deleted file mode 100644
index ea1ad39..0000000
--- a/streams-schemas/src/site/resources/verbs/post.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Post",
-    "description": "To publish an object",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "post"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} posted {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/present.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/present.json b/streams-schemas/src/site/resources/verbs/present.json
deleted file mode 100644
index bcfb1dc..0000000
--- a/streams-schemas/src/site/resources/verbs/present.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Present",
-    "description": "Indicates that the actor has presented the object. For instance, when a person gives a presentation at a conference.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "present"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} presented {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/purchase.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/purchase.json b/streams-schemas/src/site/resources/verbs/purchase.json
deleted file mode 100644
index 303386a..0000000
--- a/streams-schemas/src/site/resources/verbs/purchase.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Purchase",
-    "description": "Indicates that the actor has purchased the object. If a target is specified, in indicates the entity from which the object was purchased.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "purchase"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} purchased {object.displayName} from {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/qualify.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/qualify.json b/streams-schemas/src/site/resources/verbs/qualify.json
deleted file mode 100644
index 974448f..0000000
--- a/streams-schemas/src/site/resources/verbs/qualify.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Qualify",
-    "description": "Indicates that the actor has qualified for the object. If a target is specified, it indicates the context within which the qualification applies.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "qualify"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} qualified {object.displayName}"
-        }
-    }
-}



[05/32] incubator-streams git commit: STREAMS-398 - streams-schemas

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/tag.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/tag.json b/streams-schemas/src/site/resources/verbs/tag.json
new file mode 100644
index 0000000..6208eae
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/tag.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Tag",
+    "description": "Indicates that the actor has associated the object with the target. For example, if the actor specifies that a particular user appears in a photo. the object is the user and the target is the photo.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "tag"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} tagged {object.displayName} as {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/terminate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/terminate.json b/streams-schemas/src/site/resources/verbs/terminate.json
new file mode 100644
index 0000000..280eb31
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/terminate.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Terminate",
+    "description": "Indicates that the actor has terminated the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "terminate"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} terminated {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/tie.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/tie.json b/streams-schemas/src/site/resources/verbs/tie.json
new file mode 100644
index 0000000..7530ed2
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/tie.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Tie",
+    "description": "Indicates that the actor has neither won or lost the object. This verb is generally only applicable when the object represents some form of competition, such as a game.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "tie"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} tied at {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/unfavorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/unfavorite.json b/streams-schemas/src/site/resources/verbs/unfavorite.json
new file mode 100644
index 0000000..bfa9c20
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/unfavorite.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnFavorite",
+    "description": "Indicates that the actor has removed the object from the collection of favorited items.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unfavorite"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} removed {object.displayName} as a favorite"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/unlike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/unlike.json b/streams-schemas/src/site/resources/verbs/unlike.json
new file mode 100644
index 0000000..4dc75f6
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/unlike.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnLike",
+    "description": "Indicates that the actor has removed the object from the collection of liked items.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unlike"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} no longer likes {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/unsatisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/unsatisfy.json b/streams-schemas/src/site/resources/verbs/unsatisfy.json
new file mode 100644
index 0000000..8ea075b
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/unsatisfy.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnSatisfy",
+    "description": "Indicates that the actor has not satisfied the object. If a target is specified, it indicates the context within which the object was not satisfied. For instance, if a person fails to satisfy the requirements of some particular challenge, the person is the actor; the requirement is the object and the challenge is the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unsatisfy"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} has not satisfied {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/unsave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/unsave.json b/streams-schemas/src/site/resources/verbs/unsave.json
new file mode 100644
index 0000000..e45a97f
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/unsave.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnSave",
+    "description": "Indicates that the actor has removed the object from the collection of saved items.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unsave"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} unsaved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/unshare.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/unshare.json b/streams-schemas/src/site/resources/verbs/unshare.json
new file mode 100644
index 0000000..4ca924b
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/unshare.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnSave",
+    "description": "Indicates that the actor is no longer sharing the object. If a target is specified, it indicates the entity with whom the object is no longer being shared.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unshare"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is no longer sharing {object.displayName} with {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/update.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/update.json b/streams-schemas/src/site/resources/verbs/update.json
new file mode 100644
index 0000000..4b143fc
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/update.json
@@ -0,0 +1,34 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Update",
+    "description": "The \"update\" verb indicates that the actor has modified the object. Use of the \"update\" verb is generally reserved to indicate modifications to existing objects or data such as changing an existing user's profile information.",
+    "notes": "The new property value can be a scalar value or an object. See the property object type",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "update"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} updated {target.displayName}'s {object.displayName} to {object.value}"
+        },
+        "object": {
+            "type": "object",
+            "$ref": "../object.json"
+        },
+        "target": {
+            "type": "object",
+            "optional": true,
+            "$ref": "../object.json"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/use.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/use.json b/streams-schemas/src/site/resources/verbs/use.json
new file mode 100644
index 0000000..d5a79fd
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/use.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Use",
+    "description": "Indicates that the actor has used the object in some manner.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "use"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} used {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/watch.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/watch.json b/streams-schemas/src/site/resources/verbs/watch.json
new file mode 100644
index 0000000..192d56e
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/watch.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Watch",
+    "description": "Indicates that the actor has watched the object. This verb is typically applicable only when the object represents dynamic, visible content such as a movie, a television show or a public performance.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "watch"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} watched {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/win.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/win.json b/streams-schemas/src/site/resources/verbs/win.json
new file mode 100644
index 0000000..a5bef2a
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/win.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Win",
+    "description": "Indicates that the actor has won the object.  For instance, if a person wins a game.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "win"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} won {object.displayName}"
+        }
+    }
+}


[26/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/open.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/open.json b/streams-schemas/src/test/resources/activities/open.json
deleted file mode 100644
index 4bf47cd..0000000
--- a/streams-schemas/src/test/resources/activities/open.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "open",
-  "object": {
-    "objectType": "issue",
-    "displayName": "Issue #126"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/play.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/play.json b/streams-schemas/src/test/resources/activities/play.json
deleted file mode 100644
index 0605662..0000000
--- a/streams-schemas/src/test/resources/activities/play.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "play",
-  "object": {
-    "objectType": "audio",
-    "displayName": "Call Me Maybe"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/post.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/post.json b/streams-schemas/src/test/resources/activities/post.json
deleted file mode 100644
index 73cfff7..0000000
--- a/streams-schemas/src/test/resources/activities/post.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "published": "2011-02-10T15:04:55Z",
-  "actor": {
-    "url": "http://example.org/martin",
-    "objectType" : "person",
-    "id": "tag:example.org,2011:martin",
-    "image": {
-      "url": "http://example.org/martin/image",
-      "width": 250,
-      "height": 250
-    },
-    "displayName": "Martin Smith"
-  },
-  "verb": "post",
-  "object" : {
-    "url": "http://example.org/blog/2011/02/entry",
-    "id": "tag:example.org,2011:abc123/xyz"
-  },
-  "target" : {
-    "url": "http://example.org/blog/",
-    "objectType": "blog",
-    "id": "tag:example.org,2011:abc123",
-    "displayName": "Martin's Blog"
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/present.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/present.json b/streams-schemas/src/test/resources/activities/present.json
deleted file mode 100644
index 8f4df12..0000000
--- a/streams-schemas/src/test/resources/activities/present.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "present",
-  "object": {
-    "objectType": "file",
-    "displayName": "1Q2013 Sales Forecast.ppt"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/purchase.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/purchase.json b/streams-schemas/src/test/resources/activities/purchase.json
deleted file mode 100644
index 3354597..0000000
--- a/streams-schemas/src/test/resources/activities/purchase.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "purchase",
-  "object": {
-    "objectType": "video",
-    "displayName": "The Avengers"
-  },
-  "title": "Mark purchased the movie, The Avengers"
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/qualify.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/qualify.json b/streams-schemas/src/test/resources/activities/qualify.json
deleted file mode 100644
index 630bda0..0000000
--- a/streams-schemas/src/test/resources/activities/qualify.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "qualify",
-  "object": {
-    "objectType": "offer",
-    "displayName": "Free Money!"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/read.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/read.json b/streams-schemas/src/test/resources/activities/read.json
deleted file mode 100644
index 3509886..0000000
--- a/streams-schemas/src/test/resources/activities/read.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "read",
-  "object": {
-    "objectType": "book",
-    "displayName": "Cloud Atlas"
-  }
-}
-      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/receive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/receive.json b/streams-schemas/src/test/resources/activities/receive.json
deleted file mode 100644
index d61245e..0000000
--- a/streams-schemas/src/test/resources/activities/receive.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "receive",
-  "object": {
-    "objectType": "badge",
-    "displayName": "Most Checkins in 24 hours"
-  },
-  "title": "Laura was awarded a badge for \"Most Checkins in 24 hours\""
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/reject.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/reject.json b/streams-schemas/src/test/resources/activities/reject.json
deleted file mode 100644
index 84d1ab1..0000000
--- a/streams-schemas/src/test/resources/activities/reject.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "reject",
-  "object": {
-    "objectType": "issue",
-    "displayName": "Issue #126"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/remove-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/remove-friend.json b/streams-schemas/src/test/resources/activities/remove-friend.json
deleted file mode 100644
index 0a593e9..0000000
--- a/streams-schemas/src/test/resources/activities/remove-friend.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "remove-friend",
-  "object": {
-    "objectType": "person",
-    "displayName": "Laura"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/remove.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/remove.json b/streams-schemas/src/test/resources/activities/remove.json
deleted file mode 100644
index 1f386e9..0000000
--- a/streams-schemas/src/test/resources/activities/remove.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "remove",
-  "object": {
-    "objectType": "image",
-    "displayName": "Cat Photo",
-    "fullImage": {
-      "url": "http://example.org/cats.jpg"
-    }
-  },
-  "target": {
-    "objectType": "collection",
-    "displayName": "Cat Photo Album",
-    "objectTypes": ["image"]
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/replace.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/replace.json b/streams-schemas/src/test/resources/activities/replace.json
deleted file mode 100644
index f19a35c..0000000
--- a/streams-schemas/src/test/resources/activities/replace.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "replace",
-  "object": {
-    "objectType": "file",
-    "displayName": "Updated 1Q2014 Sales Forecast.xls"
-  },
-  "target": {
-    "objectType": "file",
-    "displayName": "1Q2014 Sales Forecast.xls"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/request-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/request-friend.json b/streams-schemas/src/test/resources/activities/request-friend.json
deleted file mode 100644
index 3e571ee..0000000
--- a/streams-schemas/src/test/resources/activities/request-friend.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "request-friend",
-  "object": {
-    "objectType": "person",
-    "displayName": "Laura"
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/request.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/request.json b/streams-schemas/src/test/resources/activities/request.json
deleted file mode 100644
index 3e7c285..0000000
--- a/streams-schemas/src/test/resources/activities/request.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "request",
-  "object": {
-    "objectType": "task",
-    "actor": {
-      "objectType": "person",
-      "displayName": "Mark"
-    },
-    "verb": "join",
-    "object": {
-      "objectType": "event",
-      "displayName": "The Big Meeting"
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/resolve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/resolve.json b/streams-schemas/src/test/resources/activities/resolve.json
deleted file mode 100644
index 14998cf..0000000
--- a/streams-schemas/src/test/resources/activities/resolve.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "resolve",
-  "object": {
-    "objectType": "issue",
-    "displayName": "Issue #126"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/retract.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/retract.json b/streams-schemas/src/test/resources/activities/retract.json
deleted file mode 100644
index 9229868..0000000
--- a/streams-schemas/src/test/resources/activities/retract.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "retract",
-  "object": {
-    "actor": {
-      "objectType": "person",
-      "displayName": "Mark"
-    },
-    "verb": "return",
-    "object": {
-      "objectType": "book",
-      "displayName": "Cloud Atlas"
-    },
-    "target": {
-      "objectType": "person",
-      "displayName": "Laura"
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/return.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/return.json b/streams-schemas/src/test/resources/activities/return.json
deleted file mode 100644
index d6b8861..0000000
--- a/streams-schemas/src/test/resources/activities/return.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "return",
-  "object": {
-    "objectType": "book",
-    "displayName": "Cloud Atlas"
-  },
-  "target": {
-    "objectType": "person",
-    "displayName": "Laura"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/rsvp-maybe.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/rsvp-maybe.json b/streams-schemas/src/test/resources/activities/rsvp-maybe.json
deleted file mode 100644
index b1ec1b5..0000000
--- a/streams-schemas/src/test/resources/activities/rsvp-maybe.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "rsvp-maybe",
-  "object": {
-    "objectType": "event",
-    "displayName": "The Big Meeting"
-  },
-  "title": "Laura might attend The Big Meeting"
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/rsvp-no.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/rsvp-no.json b/streams-schemas/src/test/resources/activities/rsvp-no.json
deleted file mode 100644
index 532b096..0000000
--- a/streams-schemas/src/test/resources/activities/rsvp-no.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "rsvp-no",
-  "object": {
-    "objectType": "event",
-    "displayName": "The Big Meeting"
-  },
-  "title": "Mark will not attend the Big Meeting"
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/rsvp-yes.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/rsvp-yes.json b/streams-schemas/src/test/resources/activities/rsvp-yes.json
deleted file mode 100644
index 170a5c4..0000000
--- a/streams-schemas/src/test/resources/activities/rsvp-yes.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "rsvp-yes",
-  "object": {
-    "objectType": "event",
-    "displayName": "The Big Meeting"
-  },
-  "title": "Laura will attend the Big Meeting"
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/satisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/satisfy.json b/streams-schemas/src/test/resources/activities/satisfy.json
deleted file mode 100644
index 16151fa..0000000
--- a/streams-schemas/src/test/resources/activities/satisfy.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "satisfy",
-  "object": {
-    "objectType": "http://example.org/condition",
-    "displayName": "Some Condition"
-  },
-  "target": {
-    "objectType": "http://example.org/parole",
-    "displayName": "Terms of Parole"
-  },
-  "title": "Mark has satisfied a condition of his parole."
-}
-      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/save.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/save.json b/streams-schemas/src/test/resources/activities/save.json
deleted file mode 100644
index 70c0f5f..0000000
--- a/streams-schemas/src/test/resources/activities/save.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "save",
-  "object": {
-    "objectType": "note",
-    "displayName": "A note about something important"
-  },
-  "target": {
-    "objectType": "collection",
-    "displayName": "Laura's Reading List"
-  },
-  "title": "Laura saved the note to her reading list"
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/schedule.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/schedule.json b/streams-schemas/src/test/resources/activities/schedule.json
deleted file mode 100644
index f214290..0000000
--- a/streams-schemas/src/test/resources/activities/schedule.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "schedule",
-  "object": {
-    "objectType": "event",
-    "displayName": "The Big Meeting"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/search.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/search.json b/streams-schemas/src/test/resources/activities/search.json
deleted file mode 100644
index 511b612..0000000
--- a/streams-schemas/src/test/resources/activities/search.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "search",
-  "object": {
-    "objectType": "place",
-    "displayName": "Big Hotel",
-    "address": {
-      "locality": "New York",
-      "region": "NY"
-    }
-  },
-  "title": "Laura searched for a hotel in New York City, NY"
-}
-      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/sell.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/sell.json b/streams-schemas/src/test/resources/activities/sell.json
deleted file mode 100644
index ab07fb0..0000000
--- a/streams-schemas/src/test/resources/activities/sell.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "sell",
-  "object": {
-    "objectType": "product",
-    "displayName": "A cool product"
-  },
-  "target": {
-    "objectType": "person",
-    "displayName": "Laura"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/send.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/send.json b/streams-schemas/src/test/resources/activities/send.json
deleted file mode 100644
index b392ce8..0000000
--- a/streams-schemas/src/test/resources/activities/send.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "send",
-  "object": {
-    "objectType": "note",
-    "content": "Thank you for the cool product."
-  },
-  "target": {
-    "objectType": "person",
-    "displayName": "Mark"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/share.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/share.json b/streams-schemas/src/test/resources/activities/share.json
deleted file mode 100644
index dc7b9f1..0000000
--- a/streams-schemas/src/test/resources/activities/share.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "share",
-  "object": {
-    "objectType": "note",
-    "displayName": "An important note"
-  },
-  "title": "Mark shared an important note."
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/sponsor.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/sponsor.json b/streams-schemas/src/test/resources/activities/sponsor.json
deleted file mode 100644
index 156c322..0000000
--- a/streams-schemas/src/test/resources/activities/sponsor.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "organization",
-    "displayName": "Acme, Co"
-  },
-  "verb": "sponsor",
-  "object": {
-    "objectType": "game",
-    "displayName": "World Series"
-  },
-  "title": "Acme, Co sponsored the World Series"
-}
-      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/start.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/start.json b/streams-schemas/src/test/resources/activities/start.json
deleted file mode 100644
index b9aede2..0000000
--- a/streams-schemas/src/test/resources/activities/start.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "start",
-  "object": {
-    "objectType": "process",
-    "displayName": "A Long Running Process"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/stop-following.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/stop-following.json b/streams-schemas/src/test/resources/activities/stop-following.json
deleted file mode 100644
index 04b83e7..0000000
--- a/streams-schemas/src/test/resources/activities/stop-following.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "stop-following",
-  "object": {
-    "objectType": "person",
-    "displayName": "Mark"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/submit.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/submit.json b/streams-schemas/src/test/resources/activities/submit.json
deleted file mode 100644
index 0fd3c34..0000000
--- a/streams-schemas/src/test/resources/activities/submit.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "submit",
-  "object": {
-    "objectType": "issue",
-    "displayName": "Issue #127"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/tag.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/tag.json b/streams-schemas/src/test/resources/activities/tag.json
deleted file mode 100644
index dba6112..0000000
--- a/streams-schemas/src/test/resources/activities/tag.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "tag",
-  "object": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "target": {
-    "objectType": "image",
-    "displayName": "Pictures of my cats"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/terminate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/terminate.json b/streams-schemas/src/test/resources/activities/terminate.json
deleted file mode 100644
index f4d886e..0000000
--- a/streams-schemas/src/test/resources/activities/terminate.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "terminate",
-  "object": {
-    "objectType": "process",
-    "displayName": "A long running process"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/tie.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/tie.json b/streams-schemas/src/test/resources/activities/tie.json
deleted file mode 100644
index 71a3c39..0000000
--- a/streams-schemas/src/test/resources/activities/tie.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "collection",
-    "items": [
-      {
-        "objectType": "organization",
-        "displayName": "New York Giants"
-      },
-      {
-        "objectType": "organization",
-        "displayName": "Oakland Raiders"
-      }
-    ]
-  },
-  "verb": "tie",
-  "object": {
-    "objectType": "game",
-    "displayName": "Super Bowl"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/unfavorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/unfavorite.json b/streams-schemas/src/test/resources/activities/unfavorite.json
deleted file mode 100644
index b1e7bcd..0000000
--- a/streams-schemas/src/test/resources/activities/unfavorite.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "unfavorite",
-  "object": {
-    "objectType": "article",
-    "displayName": "Some article"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/unlike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/unlike.json b/streams-schemas/src/test/resources/activities/unlike.json
deleted file mode 100644
index 9bc583f..0000000
--- a/streams-schemas/src/test/resources/activities/unlike.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "unlike",
-  "object": {
-    "objectType": "article",
-    "displayName": "Some article"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/unsatisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/unsatisfy.json b/streams-schemas/src/test/resources/activities/unsatisfy.json
deleted file mode 100644
index 739823c..0000000
--- a/streams-schemas/src/test/resources/activities/unsatisfy.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "unsatisfy",
-  "object": {
-    "objectType": "http://example.org/condition",
-    "displayName": "Some Condition"
-  },
-  "target": {
-    "objectType": "http://example.org/parole",
-    "displayName": "Terms of Parole"
-  },
-  "title": "Mark has not satisfied a condition of his parole."
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/unsave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/unsave.json b/streams-schemas/src/test/resources/activities/unsave.json
deleted file mode 100644
index a9a21f0..0000000
--- a/streams-schemas/src/test/resources/activities/unsave.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "unsave",
-  "object": {
-    "objectType": "article",
-    "displayName": "Some article"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/unshare.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/unshare.json b/streams-schemas/src/test/resources/activities/unshare.json
deleted file mode 100644
index 4d45a6d..0000000
--- a/streams-schemas/src/test/resources/activities/unshare.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "unshare",
-  "object": {
-    "objectType": "article",
-    "displayName": "Some article"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/update.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/update.json b/streams-schemas/src/test/resources/activities/update.json
deleted file mode 100644
index 7dbed20..0000000
--- a/streams-schemas/src/test/resources/activities/update.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "update",
-  "object": {
-    "objectType": "article",
-    "displayName": "Some article"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/use.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/use.json b/streams-schemas/src/test/resources/activities/use.json
deleted file mode 100644
index 699c4b8..0000000
--- a/streams-schemas/src/test/resources/activities/use.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Laura"
-  },
-  "verb": "use",
-  "object": {
-    "objectType": "product",
-    "displayName": "A cool product"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/watch.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/watch.json b/streams-schemas/src/test/resources/activities/watch.json
deleted file mode 100644
index 2052f06..0000000
--- a/streams-schemas/src/test/resources/activities/watch.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "person",
-    "displayName": "Mark"
-  },
-  "verb": "watch",
-  "object": {
-    "objectType": "video",
-    "displayName": "Some random movie"
-  }
-}
-      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/activities/win.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/win.json b/streams-schemas/src/test/resources/activities/win.json
deleted file mode 100644
index 2cf9d5a..0000000
--- a/streams-schemas/src/test/resources/activities/win.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "$license": [
-    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-    "http://www.apache.org/licenses/LICENSE-2.0"
-  ],
-  "actor": {
-    "objectType": "organization",
-    "displayName": "Arizona Diamond Backs"
-  },
-  "verb": "win",
-  "object": {
-    "objectType": "game",
-    "displayName": "World Series"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/media_link.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/media_link.json b/streams-schemas/src/test/resources/media_link.json
deleted file mode 100644
index 0bed6f0..0000000
--- a/streams-schemas/src/test/resources/media_link.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "$schema": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/media_link.json#",
-    "duration": 30000,
-    "height": 480,
-    "width": 640,
-    "url": "http://youtube.com/s7hc30sb"
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/objects/event.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/event.json b/streams-schemas/src/test/resources/objects/event.json
deleted file mode 100644
index ae1108e..0000000
--- a/streams-schemas/src/test/resources/objects/event.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-    "objectType": "event",
-    "displayName": "Meeting with Joe",
-    "startTime": "2012-12-12T12:00:00Z",
-    "endTime: "2012-12-12T13:00:00Z",
-    "invited": {
-      "items": [
-        {"objectType": "person",
-         "displayName": "Joe"}
-      ]
-    },
-    "attending": {
-      "items": [
-        {"objectType": "person",
-         "displayName": "Joe"}
-      ]
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/objects/group.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/group.json b/streams-schemas/src/test/resources/objects/group.json
deleted file mode 100644
index 9721874..0000000
--- a/streams-schemas/src/test/resources/objects/group.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "objectType": "group",
-  "displayName": "My Work Group",
-  "members": {
-	"items": [
-	  {
-		"objectType": "person",
-		"displayName": "Laura"
-	  },
-	  {
-		"objectType": "person",
-		"displayName": "Mark"
-	  }
-	]
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/objects/issue.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/issue.json b/streams-schemas/src/test/resources/objects/issue.json
deleted file mode 100644
index 86bc6d2..0000000
--- a/streams-schemas/src/test/resources/objects/issue.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-   "objectType": "issue",
-   "displayName": "Terms of Use Violation",
-   "url": "http://.../terms-of-use",
-   "types": [
-	 "http://example.org/codes/inappropriateMaterial",
-	 "http://example.org/codes/copyrightViolation"
-   ]
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/objects/note.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/note.json b/streams-schemas/src/test/resources/objects/note.json
deleted file mode 100644
index 15a4495..0000000
--- a/streams-schemas/src/test/resources/objects/note.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "objectType": "note",
-  "displayName": "A note with a binary attachment",
-  "attachments": [
-	{
-	  "objectType": "binary",
-	  "data": "dGhpcyBpcyB1bmNvbXByZXNzZWQgZGF0YQo=",
-	  "md5": "827ae7e1ab45e4dd591d087c741e5770",
-	  "length": 25
-	}
-  ]
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/objects/permission.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/permission.json b/streams-schemas/src/test/resources/objects/permission.json
deleted file mode 100644
index 24b6fa2..0000000
--- a/streams-schemas/src/test/resources/objects/permission.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-    "objectType": "permission",
-    "displayName": "Permission to Edit File: 2Q2014 Sales Forecast.xls",
-    "scope": {
-      "objectType": "file",
-      "displayName": "2Q2014 Sales Forecast.xls"
-    },
-    "actions": ["modify", "delete", "create"]
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/objects/place.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/place.json b/streams-schemas/src/test/resources/objects/place.json
deleted file mode 100644
index 8e454be..0000000
--- a/streams-schemas/src/test/resources/objects/place.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "objectType": "place",
-  "displayName": "Some Random Location on Earth",
-  "position": {
-	"latitude": 34.34,
-	"longitude": -127.23,
-	"altitude": 100.05
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/objects/task.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/task.json b/streams-schemas/src/test/resources/objects/task.json
deleted file mode 100644
index f4878dc..0000000
--- a/streams-schemas/src/test/resources/objects/task.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-    "objectType": "task",
-    "displayName": "James needs to read the spec",
-    "by": "2012-12-12T12:12:12Z",
-    "verb": "read",
-    "actor": {
-      "objectType": "person",
-      "displayName": "James"
-    },
-    "object": {
-      "objectType": "file",
-      "displayName": "A specification",
-      "url": "http://example.org/spec.html"
-    },
-    "required": true
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/test/resources/objects/video.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/video.json b/streams-schemas/src/test/resources/objects/video.json
deleted file mode 100644
index bc19e89..0000000
--- a/streams-schemas/src/test/resources/objects/video.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-    "objectType": "video",
-    "displayName": "Cute little kittens",
-    "embedCode": "<video width="320" height="240" controls="controls">...</video>",
-    "stream": {
-      "url": "http://example.org/my_video.mpg"
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/pom.xml
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/pom.xml b/streams-schemas/streams-schema-activitystreams/pom.xml
new file mode 100644
index 0000000..500c272
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/pom.xml
@@ -0,0 +1,82 @@
+<?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
+  ~
+  ~   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>
+
+    <parent>
+        <groupId>org.apache.streams</groupId>
+        <artifactId>streams-schemas</artifactId>
+        <version>0.3-incubating-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>streams-schema-activitystreams</artifactId>
+    <name>${project.artifactId}</name>
+
+    <description>Activity Streams schemas</description>
+
+    <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>add-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-test-resource</goal>
+                        </goals>
+                        <configuration>
+                            <resources>
+                                <resource>
+                                    <directory>${project.basedir}/src/main/jsonschema</directory>
+                                </resource>
+                                <resource>
+                                    <directory>src/main/xmlschema</directory>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/activity.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/activity.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/activity.json
new file mode 100644
index 0000000..2edd759
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/activity.json
@@ -0,0 +1,108 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/activity.json#",
+    "type": "object",
+    "title": "activity",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "An activity construct recounts what an actor did to an object in the past. If there is no actor it simply describes the change.",
+    "additionalProperties": true,
+    "properties": {
+        "id": {
+            "type": "string",
+            "description": "Uniquely identifies each activity within the service",
+            "required": true
+        },
+        "actor": {
+            "type": "object",
+            "required": true,
+            "description": "Describes the entity that performed the activity. An activity MUST contain one actor property whose value is a single Object.",
+            "javaInterfaces": ["java.io.Serializable"],
+            "$ref": "./object.json"
+        },
+        "verb": {
+            "title": "verb",
+            "type": "string",
+            "default": "post",
+            "required": true,
+            "description": "Identifies the action that the activity describes. An activity MUST contain a verb property whose value is a JSON String that is non-empty and matches either the \"isegment-nz-nc\" or the \"IRI\" production in [RFC3987]. Note that the use of a relative reference other than a simple name is not allowed."
+        },
+        "object": {
+            "type": "object",
+            "required": true,
+            "description": "Describes the primary object of the activity. For instance, in the activity, \"John saved a movie to his wishlist\", the object of the activity is \"movie\". An activity SHOULD contain an object property whose value is a single Object. If the object property is not contained, the primary object of the activity MAY be implied by context.",
+            "$ref": "./object.json"
+        },
+        "target": {
+            "type": "object",
+            "description": "Describes the target of the activity. The precise meaning of the activity's target is dependent on the activities verb, but will often be the object the English preposition \"to\". For instance, in the activity, \"John saved a movie to his wishlist\", the target of the activity is \"wishlist\". The activity target MUST NOT be used to identity an indirect object that is not a target of the activity. An activity MAY contain a target property whose value is a single Object.",
+            "$ref": "./object.json"
+        },
+        "published": {
+            "type": "string",
+            "description": "The date and time at which the activity occurred. It is important to note that this is not necessarily the same as the time at which the activity was published. An activity MUST contain a postedTime property.",
+            "format": "date-time"
+        },
+        "updated": {
+            "type": "string",
+            "description": "The date and time at which a previously published activity has been modified. An Activity MAY contain an updatedTime property",
+            "format": "date-time"
+        },
+        "generator": {
+            "type": "object",
+            "description": "Describes the application that generated the activity. An activity MAY contain a generator property whose value is a single Object.",
+            "javaInterfaces": ["java.io.Serializable"],
+            "extends": {
+                "$ref": "./object.json"
+            }
+        },
+        "icon": {
+            "type": "object",
+            "description": "An IRI[RFC3987] identifying an image resource provides a visual representation of the activity, intended for human consumption. The image SHOULD have an aspect ratio of one (horizontal) to one (vertical) and SHOULD be suitable for presentation at a small size. An activity MAY have an icon property",
+            "javaInterfaces": ["java.io.Serializable"],
+            "extends": {
+                "$ref": "./media_link.json"
+            }
+        },
+        "provider": {
+            "type": "object",
+            "description": "Describes the application that published the activity. Note that this is not necessarily the same entity that generated the activity. An activity MAY contain a provider property whose value is a single Object",
+            "javaInterfaces": ["java.io.Serializable"],
+            "extends": {
+                "$ref": "./object.json"
+            }
+        },
+        "title": {
+            "type": "string",
+            "description": "Natural-language title or headline for the activity encoded as a single JSON String containing HTML markup. An activity MAY contain a title property",
+            "format": "html"
+        },
+        "content": {
+            "type": "string",
+            "description": "Natural-language description of the activity encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a content property",
+            "format": "html"
+        },
+        "url": {
+            "type": "string",
+            "description": "An IRI [RFC3987] identifying a resource providing an HTML representation of the activity. An activity MAY contain a url property",
+            "format": "url"
+        },
+        "links": {
+            "type": "array",
+            "description": "Links between this object and other resources as defined in Web Linking",
+            "note": "Tell JSON schema team to not put links inside http://json-schema.org/hyper-schema#properties",
+            "items": {
+                "type": "string"
+            }
+        }
+    },
+    "links": [
+        {
+            "rel": "describedby",
+            "href": "./verbs/{verb}.json"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/collection.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/collection.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/collection.json
new file mode 100644
index 0000000..38f83e7
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/collection.json
@@ -0,0 +1,47 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/collection.json#",
+    "type": "object",
+    "title": "collection",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "A collection is a generic list of Objects of any object type. The objectType of each item in the collection MAY be omitted if the type of object can be established through context. The collection is used primarily as the root of an Activity Streams document, but can be used as the value of extension properties in a variety of situations. ",
+    "properties": {
+        "url": {
+            "type": "string",
+            "description": "An IRI [RFC3987] referencing a JSON document containing the full listing of objects in the collection."
+        },
+        "totalItems": {
+            "type": "integer",
+            "description": "Non-negative integer specifying the total number of activities within the stream. The Stream serialization MAY contain a count property."
+        },
+        "items": {
+            "type": "array",
+            "required": true,
+            "description": "An array containing a listing of Objects of any object type. If used in combination with the url property, the items array can be used to provide a subset of the objects that may be found in the resource identified by the url.",
+            "items": {
+                "type": "object",
+                "extends": {
+                    "$ref": "./object.json"
+                }
+            }
+        },
+        "links": {
+            "type": "array",
+            "optional": true,
+            "description": "Links between an this object and other resources as defined in Web Linking",
+            "extends": {
+                "$ref": "http://json-schema.org/links#properties"
+            }
+        }
+    },
+    "links": [
+        {
+            "rel": "describedby",
+            "href": "http://json-schema.org/schema"
+        }
+    ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/media_link.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/media_link.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/media_link.json
new file mode 100644
index 0000000..e7eece0
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/media_link.json
@@ -0,0 +1,34 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/media_link.json#",
+    "type": "object",
+    "title": "media_link",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "Visual representation of an object in the form of an image, video or embedded HTML fragments",
+    "properties": {
+        "duration": {
+            "title": "duration",
+            "type": "number",
+            "description": "A hint to the consumer about the length, in seconds, of the media resource identified by the url property. A media link MAY contain a \"duration\" property when the target resource is a time-based media item such as an audio or video."
+        },
+        "height": {
+            "title": "height",
+            "type": "integer",
+            "description": "A hint to the consumer about the height, in pixels, of the media resource identified by the url property. A media link MAY contain a height property when the target resource is a visual media item such as an image, video or embeddable HTML page."
+        },
+        "width": {
+            "title": "width",
+            "type": "integer",
+            "description": "A hint to the consumer about the width, in pixels, of the media resource identified by the url property. A media link MAY contain a width property when the target resource is a visual media item such as an image, video or embeddable HTML page."
+        },
+        "url": {
+            "type": "string",
+            "required": true,
+            "description": "The IRI of the media resource being linked. A media link MUST have a url property."
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/object.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/object.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/object.json
new file mode 100644
index 0000000..94f6719
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/object.json
@@ -0,0 +1,98 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/object.json#",
+    "type": "object",
+    "title": "object",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "Basic object on the web. The only required property is the id",
+    "properties": {
+        "id": {
+            "type": "string",
+            "description": "Provides a permanent, universally unique identifier for the object in the form of an absolute IRI [RFC3987]. An object SHOULD contain a single id property. If an object does not contain an id property, consumers MAY use the value of the url property as a less-reliable, non-unique identifier.",
+            "required": true
+        },
+        "image": {
+            "format": "image",
+            "type": "object",
+            "description": "Description of a resource providing a visual representation of the object, intended for human consumption. An object MAY contain an image property whose value is a Media Link.",
+            "extends": {
+                "$ref": "./media_link.json"
+            }
+        },
+        "displayName": {
+            "type": "string",
+            "description": "A natural-language, human-readable and plain-text name for the object. HTML markup MUST NOT be included. An object MAY contain a displayName property. If the object does not specify an objectType property, the object SHOULD specify a displayName"
+        },
+        "summary": {
+            "type": "string",
+            "description": "Natural-language summary of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a summary property"
+        },
+        "content": {
+            "type": "string",
+            "description": "Natural-language description of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An object MAY contain a content property"
+        },
+        "url": {
+            "type": "string",
+            "format": "url",
+            "description": "An IRI [RFC3987] identifying a resource providing an HTML representation of the object. An object MAY contain a url property"
+        },
+        "objectType": {
+            "type": "string",
+            "description": "Identifies the type of object. An object MAY contain an objectType property whose value is a JSON String that is non-empty and matches either the \"isegment-nz-nc\" or the \"IRI\" production in [RFC3987]. Note that the use of a relative reference other than a simple name is not allowed. If no objectType property is contained, the object has no specific type."
+        },
+        "author": {
+            "type": "object",
+            "description": "Describes the entity that created or authored the object. An object MAY contain a single author property whose value is an Object of any type. Note that the author field identifies the entity that created the object and does not necessarily identify the entity that published the object. For instance, it may be the case that an object created by one person is posted and published to a system by an entirely different entity",
+            "javaInterfaces": ["java.io.Serializable"],
+            "extends": {
+                "$ref": "./object.json"
+            }
+        },
+        "published": {
+            "type": "string",
+            "description": "[RFC3339] date-time. The date and time at which the object was published. An object MAY contain a published property",
+            "format": "date-time"
+        },
+        "updated": {
+            "type": "string",
+            "description": "[RFC3339] date-time. The date and time at which a previously published object has been modified. An Object MAY contain an updated property.",
+            "format": "date-time"
+        },
+        "attachments": {
+            "title": "Related objects",
+            "description": "A collection of one or more additional, associated objects, similar to the concept of attached files in an email message. An object MAY have an attachedObjects property whose value is a JSON Array of Objects.",
+            "type": "array",
+            "items": {
+                "type": "object",
+                "javaType": "org.apache.streams.pojo.json.Attachment",
+                "javaInterfaces": ["java.io.Serializable"],
+                "$ref": "./object.json"
+            }
+        },
+        "upstreamDuplicates": {
+            "type": "array",
+            "description": "A JSON Array of one or more absolute IRI's [RFC3987] identifying objects that duplicate this object's content. An object SHOULD contain an upstreamDuplicates property when a publisher is knowingly duplicating with a new ID the content from another object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources",
+            "items": {
+                "type": "string"
+            }
+        },
+        "downstreamDuplicates": {
+            "type": "array",
+            "description": "A JSON Array of one or more absolute IRI's [RFC3987] identifying objects that duplicate this object's content. An object SHOULD contain a downstreamDuplicates property when there are known objects, possibly in a different system, that duplicate the content in this object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources.",
+            "items": {
+                "type": "string"
+            }
+        }
+    },
+    "additionalProperties": true,
+    "links": [
+        {
+            "rel": "describedby",
+            "href": "./objectType/{objectType}.json"
+        }
+    ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/alert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/alert.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/alert.json
new file mode 100644
index 0000000..0fa4d60
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/alert.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/alert.json#",
+    "type": "object",
+    "title": "alert",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "alert"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/application.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/application.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/application.json
new file mode 100644
index 0000000..ea3219d
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/application.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/application.json#",
+    "type": "object",
+    "title": "application",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "application"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/article.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/article.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/article.json
new file mode 100644
index 0000000..2260532
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/article.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/article.json#",
+    "type": "object",
+    "title": "article",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "article"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/audio.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/audio.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/audio.json
new file mode 100644
index 0000000..1e94405
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/audio.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/audio.json#",
+    "type": "object",
+    "title": "audio",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "audio"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/badge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/badge.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/badge.json
new file mode 100644
index 0000000..08af422
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/badge.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/badge.json#",
+    "type": "object",
+    "title": "badge",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "badge"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/binary.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/binary.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/binary.json
new file mode 100644
index 0000000..8723f51
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/binary.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/binary.json#",
+    "type": "object",
+    "title": "binary",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "binary"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/bookmark.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/bookmark.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/bookmark.json
new file mode 100644
index 0000000..808555f
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/bookmark.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/badge.json#",
+    "type": "object",
+    "title": "bookmark",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "bookmark"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/comment.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/comment.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/comment.json
new file mode 100644
index 0000000..1ec2dc2
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/comment.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/comment.json#",
+    "type": "object",
+    "title": "comment",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "comment"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/device.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/device.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/device.json
new file mode 100644
index 0000000..74dfb39
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/device.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/device.json#",
+    "type": "object",
+    "title": "device",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "device"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/event.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/event.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/event.json
new file mode 100644
index 0000000..f6e5fb6
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/event.json
@@ -0,0 +1,51 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/event.json#",
+    "type": "object",
+    "title": "event",
+    "description": "xCal fromat for vevent",
+    "extends": [
+        {
+            "$ref": "../object.json"
+        },
+        {
+            "$ref": "http://www.json-schema.org/calendar"
+        }
+    ],
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "event"
+        },
+        "attendedBy": {
+            "type": "../collection.json"
+        },
+        "attending": {
+          "type": "../collection.json"
+        },
+        "endTime": {
+          "type": "string",
+          "format": "date-time"
+        },
+        "invited": {
+          "type": "../collection.json"
+        },
+        "maybeAttending": {
+          "type": "../collection.json"
+        },
+        "notAttendedBy": {
+          "type": "../collection.json"
+        },
+        "notAttending": {
+          "type": "../collection.json"
+        },
+        "startTime": {
+          "type": "string",
+          "format": "date-time"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/file.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/file.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/file.json
new file mode 100644
index 0000000..50ec239
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/file.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/file.json#",
+    "type": "object",
+    "title": "file",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "file"
+        },
+        "fileUrl": {
+          "type": "string"
+        },
+        "mimeType": {
+          "type": "string"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/folder.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/folder.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/folder.json
new file mode 100644
index 0000000..35592c1
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/folder.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/folder.json#",
+    "type": "object",
+    "title": "folder",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "folder"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/game.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/game.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/game.json
new file mode 100644
index 0000000..ca761ed
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/game.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/game.json#",
+    "type": "object",
+    "title": "game",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "game"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/group.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/group.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/group.json
new file mode 100644
index 0000000..8623922
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/group.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/group.json#",
+    "type": "object",
+    "title": "group",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "group"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/image.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/image.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/image.json
new file mode 100644
index 0000000..7eca770
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/image.json
@@ -0,0 +1,22 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/image.json#",
+    "type": "object",
+    "title": "image",
+    "extends": {
+        "$ref": "../media_link.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "image"
+        },
+        "fullImage": {
+          "type": "string"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/issue.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/issue.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/issue.json
new file mode 100644
index 0000000..29f2fad
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/issue.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/issue.json#",
+    "type": "object",
+    "title": "issue",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "issue"
+        },
+        "types": {
+          "type": "array",
+          "items": {
+            "type": "string"
+          }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/job.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/job.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/job.json
new file mode 100644
index 0000000..b832f16
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/job.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/job.json#",
+    "type": "object",
+    "title": "job",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "job"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/list.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/list.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/list.json
new file mode 100644
index 0000000..c93a5e8
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/list.json
@@ -0,0 +1,28 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/list.json#",
+    "type": "object",
+    "title": "list",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "list"
+        },
+        "items": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "properties": {
+                    "$ref": "../object.json"
+                }
+            }
+        }
+    }
+}



[31/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorTest.java b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorTest.java
index d46eaa6..daf85ae 100644
--- a/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorTest.java
+++ b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorTest.java
@@ -1,15 +1,12 @@
 package org.apache.streams.plugins.cassandra.test;
 
-import com.google.common.base.Charsets;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import com.google.common.io.Files;
-import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.streams.plugins.cassandra.StreamsCassandraGenerationConfig;
 import org.apache.streams.plugins.cassandra.StreamsCassandraResourceGenerator;
-import org.junit.Assert;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -19,10 +16,6 @@ import java.io.File;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
 
 /**
  * Test that cassandra resources are generated.
@@ -50,28 +43,20 @@ public class StreamsCassandraResourceGeneratorTest {
 
         StreamsCassandraGenerationConfig config = new StreamsCassandraGenerationConfig();
 
-        String sourceDirectory = "target/test-classes/streams-schemas";
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
 
         config.setSourceDirectory(sourceDirectory);
 
-        config.setTargetDirectory("target/generated-sources/test");
+        config.setTargetDirectory("target/generated-resources/cassandra");
 
         config.setExclusions(Sets.newHashSet("attachments"));
 
         config.setMaxDepth(2);
 
         StreamsCassandraResourceGenerator streamsCassandraResourceGenerator = new StreamsCassandraResourceGenerator(config);
-        Thread thread = new Thread(streamsCassandraResourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
+        streamsCassandraResourceGenerator.run();
 
-        File testOutput = new File( "./target/generated-sources/test");
+        File testOutput = config.getTargetDirectory();
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );
@@ -82,43 +67,14 @@ public class StreamsCassandraResourceGeneratorTest {
         Collection<File> outputCollection = Lists.newArrayList(outputIterator);
         assert( outputCollection.size() == 1 );
 
-        Path path = Paths.get("./target/generated-sources/test/types.cql");
+        Path path = Paths.get(testOutput.getAbsolutePath()).resolve("types.cql");
+
+        assert( path.toFile().exists() );
 
         String typesCqlBytes = new String(
                 java.nio.file.Files.readAllBytes(path));
 
         assert( StringUtils.countMatches(typesCqlBytes, "CREATE TYPE") == 133 );
 
-        assert( !typesCqlBytes.contains("IDK"));
-
-
-//        String expectedDirectory = "target/test-classes/expected";
-//        File testExpected = new File( expectedDirectory );
-//
-//        Iterable<File> expectedIterator = Files.fileTreeTraverser().breadthFirstTraversal(testExpected)
-//                .filter(cqlFilter);
-//        Collection<File> expectedCollection = Lists.newArrayList(expectedIterator);
-//
-//        int fails = 0;
-//
-//        Iterator<File> iterator = expectedCollection.iterator();
-//        while( iterator.hasNext() ) {
-//            File objectExpected = iterator.next();
-//            String expectedEnd = dropSourcePathPrefix(objectExpected.getAbsolutePath(),  expectedDirectory);
-//            File objectActual = new File(config.getTargetDirectory() + "/" + expectedEnd);
-//            LOGGER.info("Comparing: {} and {}", objectExpected.getAbsolutePath(), objectActual.getAbsolutePath());
-//            assert( objectActual.exists());
-//            if( FileUtils.contentEquals(objectActual, objectExpected) == true ) {
-//                LOGGER.info("Exact Match!");
-//            } else {
-//                LOGGER.info("No Match!");
-//                fails++;
-//            }
-//        }
-//        if( fails > 0 ) {
-//            LOGGER.info("Fails: {}", fails);
-//            Assert.fail();
-//        }
-
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-cassandra/src/test/resources/streams-plugin-cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/test/resources/streams-plugin-cassandra/pom.xml b/streams-plugins/streams-plugin-cassandra/src/test/resources/streams-plugin-cassandra/pom.xml
index 064ea52..2a69ec7 100644
--- a/streams-plugins/streams-plugin-cassandra/src/test/resources/streams-plugin-cassandra/pom.xml
+++ b/streams-plugins/streams-plugin-cassandra/src/test/resources/streams-plugin-cassandra/pom.xml
@@ -18,8 +18,9 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-schema-activitystreams</artifactId>
             <version>${project.version}</version>
+            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
     </dependencies>
@@ -32,19 +33,19 @@
                 <version>0.3-incubating-SNAPSHOT</version>
                 <configuration>
                     <sourcePaths>
-                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/verbs</sourcePath>
                     </sourcePaths>
                     <targetDirectory>target/generated-resources/test-mojo</targetDirectory>
                 </configuration>
                 <executions>
                     <execution>
                         <goals>
-                            <goal>cassandra</goal>
+                            <goal>generate-resources</goal>
                         </goals>
                     </execution>
                 </executions>
@@ -55,9 +56,9 @@
                 <version>2.10</version>
                 <configuration>
                     <includes>**/*.json</includes>
-                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                     <includeGroupIds>org.apache.streams</includeGroupIds>
-                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                     <includeTypes>jar,test-jar</includeTypes>
                 </configuration>
                 <executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/pom.xml b/streams-plugins/streams-plugin-elasticsearch/pom.xml
index 4f0ed4a..07d7fc1 100644
--- a/streams-plugins/streams-plugin-elasticsearch/pom.xml
+++ b/streams-plugins/streams-plugin-elasticsearch/pom.xml
@@ -55,10 +55,17 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-util</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schema-activitystreams</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
@@ -231,9 +238,9 @@
                         </goals>
                         <configuration>
                             <includeGroupIds>org.apache.streams</includeGroupIds>
-                            <includeArtifactIds>streams-schemas</includeArtifactIds>
+                            <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                             <includes>**/*.json</includes>
-                            <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                            <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                         </configuration>
                     </execution>
                 </executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchGenerationConfig.java b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchGenerationConfig.java
index ef5b9ef..71bbdf8 100644
--- a/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchGenerationConfig.java
+++ b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchGenerationConfig.java
@@ -1,6 +1,6 @@
 package org.apache.streams.plugins.elasticsearch;
 
-import org.apache.streams.schema.GenerationConfig;
+import org.apache.streams.util.schema.GenerationConfig;
 import org.jsonschema2pojo.DefaultGenerationConfig;
 import org.jsonschema2pojo.util.URLUtil;
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGenerator.java b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGenerator.java
index 0f506ca..4d16f7e 100644
--- a/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGenerator.java
+++ b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGenerator.java
@@ -1,17 +1,21 @@
 package org.apache.streams.plugins.elasticsearch;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.base.Joiner;
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
-import org.apache.streams.schema.FieldType;
-import org.apache.streams.schema.FieldUtil;
-import org.apache.streams.schema.GenerationConfig;
-import org.apache.streams.schema.Schema;
-import org.apache.streams.schema.SchemaStore;
+import org.apache.streams.jackson.StreamsJacksonMapper;
+import org.apache.streams.util.schema.FieldType;
+import org.apache.streams.util.schema.FieldUtil;
+import org.apache.streams.util.schema.GenerationConfig;
+import org.apache.streams.util.schema.Schema;
+import org.apache.streams.util.schema.SchemaStore;
+import org.apache.streams.util.schema.SchemaStoreImpl;
 import org.jsonschema2pojo.util.URLUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,10 +29,11 @@ import java.util.List;
 import java.util.Map;
 
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.apache.streams.schema.FileUtil.dropExtension;
-import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
-import static org.apache.streams.schema.FileUtil.resolveRecursive;
-import static org.apache.streams.schema.FileUtil.writeFile;
+import static org.apache.streams.util.schema.FileUtil.dropExtension;
+import static org.apache.streams.util.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.util.schema.FileUtil.resolveRecursive;
+import static org.apache.streams.util.schema.FileUtil.swapExtension;
+import static org.apache.streams.util.schema.FileUtil.writeFile;
 
 /**
  * Created by sblackmon on 5/3/16.
@@ -37,15 +42,17 @@ public class StreamsElasticsearchResourceGenerator implements Runnable {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(StreamsElasticsearchResourceGenerator.class);
 
+    ObjectMapper MAPPER = StreamsJacksonMapper.getInstance();
+
     private final static String LS = System.getProperty("line.separator");
 
     private StreamsElasticsearchGenerationConfig config;
 
-    private SchemaStore schemaStore = new SchemaStore();
+    private SchemaStore schemaStore = new SchemaStoreImpl();
 
     private int currentDepth = 0;
 
-    public void main(String[] args) {
+    public static void main(String[] args) {
         StreamsElasticsearchGenerationConfig config = new StreamsElasticsearchGenerationConfig();
 
         String sourceDirectory = "target/test-classes/activities";
@@ -59,17 +66,9 @@ public class StreamsElasticsearchResourceGenerator implements Runnable {
         config.setSourceDirectory(sourceDirectory);
         config.setTargetDirectory(targetDirectory);
 
-        StreamsElasticsearchResourceGenerator StreamsElasticsearchResourceGenerator = new StreamsElasticsearchResourceGenerator(config);
-        Thread thread = new Thread(StreamsElasticsearchResourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
+        StreamsElasticsearchResourceGenerator streamsElasticsearchResourceGenerator = new StreamsElasticsearchResourceGenerator(config);
+        streamsElasticsearchResourceGenerator.run();
+
     }
 
     public StreamsElasticsearchResourceGenerator(StreamsElasticsearchGenerationConfig config) {
@@ -106,7 +105,6 @@ public class StreamsElasticsearchResourceGenerator implements Runnable {
 
         LOGGER.info("Identified {} objects:", schemaStore.getSize());
 
-        String outputFile = config.getTargetDirectory() + "/" + "types.cql";
         StringBuilder typesContent = new StringBuilder();
 
         for (Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator(); schemaIterator.hasNext(); ) {
@@ -118,6 +116,7 @@ public class StreamsElasticsearchResourceGenerator implements Runnable {
                 for (String sourcePath : config.getSourcePaths()) {
                     resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
                 }
+                String outputFile = config.getTargetDirectory() + "/" + resourcePath;
 
                 LOGGER.info("Processing {}:", resourcePath);
 
@@ -125,25 +124,33 @@ public class StreamsElasticsearchResourceGenerator implements Runnable {
 
                 String resourceContent = generateResource(schema, resourceId);
 
-                typesContent.append(resourceContent);
+                if( !Strings.isNullOrEmpty(resourceContent))
+                    writeFile(outputFile, resourceContent);
 
-                LOGGER.info("Added {}:", resourceId);
+                LOGGER.info("Wrote {}:", outputFile);
             }
         }
 
-        writeFile(outputFile, typesContent.toString());
-
     }
 
     public String generateResource(Schema schema, String resourceId) {
         StringBuilder resourceBuilder = new StringBuilder();
-        resourceBuilder.append("CREATE TYPE ");
-        resourceBuilder.append(resourceId);
-        resourceBuilder.append(" IF NOT EXISTS (");
-        resourceBuilder.append(LS);
-        resourceBuilder = appendRootObject(resourceBuilder, schema, resourceId, ' ');
-        resourceBuilder.append(");");
-        resourceBuilder.append(LS);
+
+        ObjectNode rootNode = (ObjectNode) schema.getContent();
+
+        // remove java*
+        // remove description
+        // resolve all $ref
+        // replace format: date with type: date
+        // replace format: date-time with type: date
+        // replace array of primitive with just primitive
+
+        try {
+            String objectString = MAPPER.writeValueAsString(rootNode);
+            resourceBuilder.append(objectString);
+        } catch (JsonProcessingException e) {
+            LOGGER.error("{}: {}", e.getClass().getName(), e);
+        }
         return resourceBuilder.toString();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGeneratorMojo.java b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGeneratorMojo.java
index 6969051..ed280ff 100644
--- a/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGeneratorMojo.java
+++ b/streams-plugins/streams-plugin-elasticsearch/src/main/java/org/apache/streams/plugins/elasticsearch/StreamsElasticsearchResourceGeneratorMojo.java
@@ -15,10 +15,10 @@ import org.slf4j.LoggerFactory;
 import java.io.File;
 import java.util.List;
 
-@Mojo(  name = "elasticsearch",
+@Mojo(  name = "generate-resources",
         defaultPhase = LifecyclePhase.GENERATE_RESOURCES
 )
-@Execute(   goal = "elasticsearch",
+@Execute(   goal = "generate-resources",
             phase = LifecyclePhase.GENERATE_RESOURCES
 )
 public class StreamsElasticsearchResourceGeneratorMojo extends AbstractMojo {
@@ -65,29 +65,8 @@ public class StreamsElasticsearchResourceGeneratorMojo extends AbstractMojo {
 
         StreamsElasticsearchResourceGenerator streamsElasticsearchResourceGenerator = new StreamsElasticsearchResourceGenerator(config);
 
-        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
-            public void uncaughtException(Thread th, Throwable ex) {
-                LOGGER.error("Exception", ex);
-                mojoFailureException = new MojoFailureException("Exception", ex);
-            }
-        };
-        Thread.setDefaultUncaughtExceptionHandler(h);
-        Thread thread = new Thread(streamsElasticsearchResourceGenerator);
-        thread.setUncaughtExceptionHandler(h);
-        try {
-            thread.start();
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-            mojoFailureException = new MojoFailureException("Exception", e);
-        }
-
-        if( mojoFailureException != null )
-            throw mojoFailureException;
-
-        return;
+        streamsElasticsearchResourceGenerator.run();
+
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-elasticsearch/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/site/markdown/index.md b/streams-plugins/streams-plugin-elasticsearch/src/site/markdown/index.md
index 9e80a3e..f65433b 100644
--- a/streams-plugins/streams-plugin-elasticsearch/src/site/markdown/index.md
+++ b/streams-plugins/streams-plugin-elasticsearch/src/site/markdown/index.md
@@ -3,17 +3,33 @@ org.apache.streams.plugins:streams-plugin-elasticsearch
 
 streams-plugin-elasticsearch generates resources from json schemas to assist with indexing of json data using Elasticsearch.
 
-#### Usage
+### Usage
+
+Output will be placed in target/generated-resources/elasticsearch by default
+
+##### Maven
 
 Run within a module containing a src/main/jsonschema directory
 
     mvn org.apache.streams.plugins:streams-plugin-elasticsearch:0.3-incubating-SNAPSHOT:elasticsearch
 
-Output will be placed in target/generated-resources/elasticsearch by default
+[streams-plugin-elasticsearch/pom.xml](streams-plugin-elasticsearch/pom.xml "streams-plugin-elasticsearch/pom.xml")
 
-#### Example
+##### SDK
 
-[streams-plugin-elasticsearch/pom.xml](streams-plugin-elasticsearch/pom.xml "streams-plugin-elasticsearch/pom.xml")
+Embed within your own java code
+
+    StreamsElasticsearchGenerationConfig config = new StreamsElasticsearchGenerationConfig();
+    config.setSourceDirectory("src/main/jsonschema");
+    config.setTargetDirectory("target/generated-resources");
+    StreamsElasticsearchResourceGenerator generator = new StreamsElasticsearchResourceGenerator(config);
+    generator.run();
+    
+##### CLI
+ 
+Run from CLI without Maven
+
+    java -jar streams-plugin-elasticsearch-jar-with-dependencies.jar StreamsElasticsearchResourceGenerator src/main/jsonschema target/generated-resources
 
 #### Documentation
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorCLITest.java b/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorCLITest.java
new file mode 100644
index 0000000..3805894
--- /dev/null
+++ b/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorCLITest.java
@@ -0,0 +1,39 @@
+package org.apache.streams.plugins.elasticsearch.test;
+
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import org.apache.streams.plugins.elasticsearch.StreamsElasticsearchResourceGenerator;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+
+import static org.apache.streams.plugins.elasticsearch.test.StreamsElasticsearchResourceGeneratorTest.jsonFilter;
+
+/**
+ * Created by sblackmon on 5/5/16.
+ */
+public class StreamsElasticsearchResourceGeneratorCLITest {
+
+    @Test
+    public void testStreamsElasticsearchResourceGeneratorCLI() throws Exception {
+
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
+        String targetDirectory = "target/generated-resources/elasticsearch-cli";
+
+        List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);
+        StreamsElasticsearchResourceGenerator.main(argsList.toArray(new String[0]));
+
+        File testOutput = new File(targetDirectory);
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(jsonFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorTest.java b/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorTest.java
index 20bb561..7844442 100644
--- a/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorTest.java
+++ b/streams-plugins/streams-plugin-elasticsearch/src/test/java/org/apache/streams/plugins/elasticsearch/test/StreamsElasticsearchResourceGeneratorTest.java
@@ -5,7 +5,6 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import com.google.common.io.Files;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.streams.plugins.elasticsearch.StreamsElasticsearchGenerationConfig;
 import org.apache.streams.plugins.elasticsearch.StreamsElasticsearchResourceGenerator;
 import org.junit.Assert;
@@ -15,12 +14,10 @@ import org.slf4j.LoggerFactory;
 
 import javax.annotation.Nullable;
 import java.io.File;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.Collection;
 import java.util.Iterator;
 
-import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.util.schema.FileUtil.dropSourcePathPrefix;
 
 /**
  * Test that Elasticsearch resources are generated.
@@ -29,6 +26,15 @@ public class StreamsElasticsearchResourceGeneratorTest {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(StreamsElasticsearchResourceGeneratorTest.class);
 
+    public static final Predicate<File> jsonFilter = new Predicate<File>() {
+        @Override
+        public boolean apply(@Nullable File file) {
+            if( file.getName().endsWith(".json") )
+                return true;
+            else return false;
+        }
+    };
+
     /**
      * Test that Elasticsearch resources are generated
      *
@@ -39,28 +45,21 @@ public class StreamsElasticsearchResourceGeneratorTest {
 
         StreamsElasticsearchGenerationConfig config = new StreamsElasticsearchGenerationConfig();
 
-        String sourceDirectory = "target/test-classes/streams-schemas";
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
 
         config.setSourceDirectory(sourceDirectory);
 
-        config.setTargetDirectory("target/generated-sources/test");
+        config.setTargetDirectory("target/generated-resources/elasticsearch");
 
         config.setExclusions(Sets.newHashSet("attachments"));
 
         config.setMaxDepth(2);
 
         StreamsElasticsearchResourceGenerator streamsElasticsearchResourceGenerator = new StreamsElasticsearchResourceGenerator(config);
-        Thread thread = new Thread(streamsElasticsearchResourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
+        streamsElasticsearchResourceGenerator.run();
+
+        File testOutput = config.getTargetDirectory();
 
-        File testOutput = new File( "./target/generated-sources/test");
         Predicate<File> jsonFilter = new Predicate<File>() {
             @Override
             public boolean apply(@Nullable File file) {
@@ -107,33 +106,5 @@ public class StreamsElasticsearchResourceGeneratorTest {
             Assert.fail();
         }
 
-//        String expectedDirectory = "target/test-classes/expected";
-//        File testExpected = new File( expectedDirectory );
-//
-//        Iterable<File> expectedIterator = Files.fileTreeTraverser().breadthFirstTraversal(testExpected)
-//                .filter(cqlFilter);
-//        Collection<File> expectedCollection = Lists.newArrayList(expectedIterator);
-//
-//        int fails = 0;
-//
-//        Iterator<File> iterator = expectedCollection.iterator();
-//        while( iterator.hasNext() ) {
-//            File objectExpected = iterator.next();
-//            String expectedEnd = dropSourcePathPrefix(objectExpected.getAbsolutePath(),  expectedDirectory);
-//            File objectActual = new File(config.getTargetDirectory() + "/" + expectedEnd);
-//            LOGGER.info("Comparing: {} and {}", objectExpected.getAbsolutePath(), objectActual.getAbsolutePath());
-//            assert( objectActual.exists());
-//            if( FileUtils.contentEquals(objectActual, objectExpected) == true ) {
-//                LOGGER.info("Exact Match!");
-//            } else {
-//                LOGGER.info("No Match!");
-//                fails++;
-//            }
-//        }
-//        if( fails > 0 ) {
-//            LOGGER.info("Fails: {}", fails);
-//            Assert.fail();
-//        }
-
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-elasticsearch/src/test/resources/streams-plugin-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-elasticsearch/src/test/resources/streams-plugin-elasticsearch/pom.xml b/streams-plugins/streams-plugin-elasticsearch/src/test/resources/streams-plugin-elasticsearch/pom.xml
index 2aaa037..de74014 100644
--- a/streams-plugins/streams-plugin-elasticsearch/src/test/resources/streams-plugin-elasticsearch/pom.xml
+++ b/streams-plugins/streams-plugin-elasticsearch/src/test/resources/streams-plugin-elasticsearch/pom.xml
@@ -18,9 +18,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-schema-activitystreams</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
+            <type>test-jar</type>
         </dependency>
     </dependencies>
 
@@ -32,19 +33,19 @@
                 <version>0.3-incubating-SNAPSHOT</version>
                 <configuration>
                     <sourcePaths>
-                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/verbs</sourcePath>
                     </sourcePaths>
-                    <targetDirectory>target/generated-resources/test-mojo</targetDirectory>
+                    <targetDirectory>target/generated-resources/elasticsearch-mojo</targetDirectory>
                 </configuration>
                 <executions>
                     <execution>
                         <goals>
-                            <goal>elasticsearch</goal>
+                            <goal>generate-resources</goal>
                         </goals>
                     </execution>
                 </executions>
@@ -55,9 +56,9 @@
                 <version>2.10</version>
                 <configuration>
                     <includes>**/*.json</includes>
-                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                     <includeGroupIds>org.apache.streams</includeGroupIds>
-                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                     <includeTypes>jar,test-jar</includeTypes>
                 </configuration>
                 <executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hbase/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/pom.xml b/streams-plugins/streams-plugin-hbase/pom.xml
index 94a0115..b29bd38 100644
--- a/streams-plugins/streams-plugin-hbase/pom.xml
+++ b/streams-plugins/streams-plugin-hbase/pom.xml
@@ -54,10 +54,17 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-util</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schema-activitystreams</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
@@ -230,9 +237,9 @@
                         </goals>
                         <configuration>
                             <includeGroupIds>org.apache.streams</includeGroupIds>
-                            <includeArtifactIds>streams-schemas</includeArtifactIds>
+                            <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                             <includes>**/*.json</includes>
-                            <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                            <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                         </configuration>
                     </execution>
                 </executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseGenerationConfig.java b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseGenerationConfig.java
index 2612ec2..3972a54 100644
--- a/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseGenerationConfig.java
+++ b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseGenerationConfig.java
@@ -1,6 +1,6 @@
 package org.apache.streams.plugins.hbase;
 
-import org.apache.streams.schema.GenerationConfig;
+import org.apache.streams.util.schema.GenerationConfig;
 import org.jsonschema2pojo.DefaultGenerationConfig;
 import org.jsonschema2pojo.util.URLUtil;
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGenerator.java b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGenerator.java
index 649bdd9..71a8705 100644
--- a/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGenerator.java
+++ b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGenerator.java
@@ -3,21 +3,18 @@ package org.apache.streams.plugins.hbase;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.base.Joiner;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
-import org.apache.streams.schema.FieldType;
-import org.apache.streams.schema.FieldUtil;
-import org.apache.streams.schema.GenerationConfig;
-import org.apache.streams.schema.Schema;
-import org.apache.streams.schema.SchemaStore;
+import org.apache.streams.util.schema.FieldType;
+import org.apache.streams.util.schema.FieldUtil;
+import org.apache.streams.util.schema.GenerationConfig;
+import org.apache.streams.util.schema.Schema;
+import org.apache.streams.util.schema.SchemaStore;
+import org.apache.streams.util.schema.SchemaStoreImpl;
 import org.jsonschema2pojo.util.URLUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
-import java.net.URI;
 import java.net.URL;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -25,11 +22,11 @@ import java.util.List;
 import java.util.Map;
 
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.apache.streams.schema.FileUtil.dropExtension;
-import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
-import static org.apache.streams.schema.FileUtil.resolveRecursive;
-import static org.apache.streams.schema.FileUtil.swapExtension;
-import static org.apache.streams.schema.FileUtil.writeFile;
+import static org.apache.streams.util.schema.FileUtil.dropExtension;
+import static org.apache.streams.util.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.util.schema.FileUtil.resolveRecursive;
+import static org.apache.streams.util.schema.FileUtil.swapExtension;
+import static org.apache.streams.util.schema.FileUtil.writeFile;
 
 /**
  * Created by sblackmon on 5/3/16.
@@ -42,7 +39,7 @@ public class StreamsHbaseResourceGenerator implements Runnable {
 
     private StreamsHbaseGenerationConfig config;
 
-    private SchemaStore schemaStore = new SchemaStore();
+    private SchemaStore schemaStore = new SchemaStoreImpl();
 
     private int currentDepth = 0;
 
@@ -60,17 +57,9 @@ public class StreamsHbaseResourceGenerator implements Runnable {
         config.setSourceDirectory(sourceDirectory);
         config.setTargetDirectory(targetDirectory);
 
-        StreamsHbaseResourceGenerator StreamsHbaseResourceGenerator = new StreamsHbaseResourceGenerator(config);
-        Thread thread = new Thread(StreamsHbaseResourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
+        StreamsHbaseResourceGenerator streamsHbaseResourceGenerator = new StreamsHbaseResourceGenerator(config);
+        streamsHbaseResourceGenerator.run();
+
     }
 
     public StreamsHbaseResourceGenerator(StreamsHbaseGenerationConfig config) {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGeneratorMojo.java b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGeneratorMojo.java
index 0db68f0..6bad40b 100644
--- a/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGeneratorMojo.java
+++ b/streams-plugins/streams-plugin-hbase/src/main/java/org/apache/streams/plugins/hbase/StreamsHbaseResourceGeneratorMojo.java
@@ -15,10 +15,10 @@ import org.slf4j.LoggerFactory;
 import java.io.File;
 import java.util.List;
 
-@Mojo(  name = "hbase",
+@Mojo(  name = "generate-resources",
         defaultPhase = LifecyclePhase.GENERATE_RESOURCES
 )
-@Execute(   goal = "hbase",
+@Execute(   goal = "generate-resources",
             phase = LifecyclePhase.GENERATE_RESOURCES
 )
 public class StreamsHbaseResourceGeneratorMojo extends AbstractMojo {
@@ -64,30 +64,8 @@ public class StreamsHbaseResourceGeneratorMojo extends AbstractMojo {
         config.setTargetDirectory(targetDirectory);
 
         StreamsHbaseResourceGenerator streamsHbaseResourceGenerator = new StreamsHbaseResourceGenerator(config);
+        streamsHbaseResourceGenerator.run();
 
-        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
-            public void uncaughtException(Thread th, Throwable ex) {
-                LOGGER.error("Exception", ex);
-                mojoFailureException = new MojoFailureException("Exception", ex);
-            }
-        };
-        Thread.setDefaultUncaughtExceptionHandler(h);
-        Thread thread = new Thread(streamsHbaseResourceGenerator);
-        thread.setUncaughtExceptionHandler(h);
-        try {
-            thread.start();
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-            mojoFailureException = new MojoFailureException("Exception", e);
-        }
-
-        if( mojoFailureException != null )
-            throw mojoFailureException;
-
-        return;
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hbase/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/site/markdown/index.md b/streams-plugins/streams-plugin-hbase/src/site/markdown/index.md
index 858cb85..0a0c308 100644
--- a/streams-plugins/streams-plugin-hbase/src/site/markdown/index.md
+++ b/streams-plugins/streams-plugin-hbase/src/site/markdown/index.md
@@ -3,17 +3,35 @@ org.apache.streams.plugins:streams-plugin-hbase
 
 streams-plugin-hbase generates resources from json schemas to assist with indexing of json data using Apache HBase.
 
-#### Usage
+### Usage
+
+Output will be placed in target/generated-resources/hbase by default
+
+[streams-plugin-hbase/pom.xml](streams-plugin-hbase/pom.xml "streams-plugin-hbase/pom.xml")
+
+##### Maven
 
 Run within a module containing a src/main/jsonschema directory
 
     mvn org.apache.streams.plugins:streams-plugin-hbase:0.3-incubating-SNAPSHOT:hbase
 
-Output will be placed in target/generated-resources/hive by default
+##### SDK
 
-#### Example
+Embed within your own java code
 
-[streams-plugin-hbase/pom.xml](streams-plugin-hbase/pom.xml "streams-plugin-hbase/pom.xml")
+    StreamsHbaseGenerationConfig config = new StreamsHbaseGenerationConfig();
+    config.setSourceDirectory("src/main/jsonschema");
+    config.setTargetDirectory("target/generated-resources");
+    StreamsHbaseResourceGenerator generator = new StreamsHbaseResourceGenerator(config);
+    generator.run();
+
+##### CLI
+ 
+Run from CLI without Maven
+
+    java -jar streams-plugin-hbase-jar-with-dependencies.jar StreamsHbaseResourceGenerator src/main/jsonschema target/generated-resources
+
+#### Example
 
 #### Documentation
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorCLITest.java b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorCLITest.java
index 290d601..24eba24 100644
--- a/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorCLITest.java
+++ b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorCLITest.java
@@ -21,7 +21,7 @@ public class StreamsHbaseResourceGeneratorCLITest {
     @Test
     public void testStreamsHiveResourceGeneratorCLI() throws Exception {
 
-        String sourceDirectory = "target/test-classes/streams-schemas";
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
         String targetDirectory = "target/generated-resources/hbase-cli";
 
         List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorMojoTest.java
index 6293021..fc8c77a 100644
--- a/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorMojoTest.java
+++ b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorMojoTest.java
@@ -51,7 +51,7 @@ public class StreamsHbaseResourceGeneratorMojoTest extends TestCase {
 
         verifier.resetStreams();
 
-        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-resources/test-mojo");
+        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-resources/hbase-mojo");
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorTest.java b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorTest.java
index 02b0214..91a1a05 100644
--- a/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorTest.java
+++ b/streams-plugins/streams-plugin-hbase/src/test/java/org/apache/streams/plugins/test/StreamsHbaseResourceGeneratorTest.java
@@ -8,7 +8,6 @@ import org.apache.commons.io.FileUtils;
 import org.apache.streams.plugins.hbase.StreamsHbaseGenerationConfig;
 import org.apache.streams.plugins.hbase.StreamsHbaseResourceGenerator;
 import org.junit.Assert;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -18,7 +17,7 @@ import java.io.File;
 import java.util.Collection;
 import java.util.Iterator;
 
-import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.util.schema.FileUtil.dropSourcePathPrefix;
 
 /**
  * Test that Activity beans are compatible with the example activities in the spec.
@@ -46,11 +45,11 @@ public class StreamsHbaseResourceGeneratorTest {
 
         StreamsHbaseGenerationConfig config = new StreamsHbaseGenerationConfig();
 
-        String sourceDirectory = "target/test-classes/streams-schemas";
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
 
         config.setSourceDirectory(sourceDirectory);
 
-        config.setTargetDirectory("target/generated-resources/test");
+        config.setTargetDirectory("target/generated-resources/hbase");
 
         config.setExclusions(Sets.newHashSet("attachments"));
 
@@ -58,19 +57,10 @@ public class StreamsHbaseResourceGeneratorTest {
         config.setMaxDepth(2);
 
         StreamsHbaseResourceGenerator streamsHbaseResourceGenerator = new StreamsHbaseResourceGenerator(config);
-        Thread thread = new Thread(streamsHbaseResourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
+        streamsHbaseResourceGenerator.run();
 
         File testOutput = config.getTargetDirectory();
 
-
         assert( testOutput != null );
         assert( testOutput.exists() == true );
         assert( testOutput.isDirectory() == true );
@@ -108,18 +98,5 @@ public class StreamsHbaseResourceGeneratorTest {
             Assert.fail();
         }
 
-
-//        assert( new File(testOutput + "/traits").exists() == true );
-//        assert( new File(testOutput + "/traits").isDirectory() == true );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
-//        assert( new File(testOutput + "/objectTypes").exists() == true );
-//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
-//        assert( new File(testOutput + "/verbs").exists() == true );
-//        assert( new File(testOutput + "/verbs").isDirectory() == true );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hbase/src/test/resources/streams-plugin-hbase/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/test/resources/streams-plugin-hbase/pom.xml b/streams-plugins/streams-plugin-hbase/src/test/resources/streams-plugin-hbase/pom.xml
index 9aa7d8d..a3fbeeb 100644
--- a/streams-plugins/streams-plugin-hbase/src/test/resources/streams-plugin-hbase/pom.xml
+++ b/streams-plugins/streams-plugin-hbase/src/test/resources/streams-plugin-hbase/pom.xml
@@ -18,9 +18,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-schema-activitystreams</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
+            <type>test-jar</type>
         </dependency>
     </dependencies>
 
@@ -32,20 +33,20 @@
                 <version>0.3-incubating-SNAPSHOT</version>
                 <configuration>
                     <sourcePaths>
-                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/verbs</sourcePath>
                     </sourcePaths>
-                    <targetDirectory>target/generated-resources/test-mojo</targetDirectory>
+                    <targetDirectory>target/generated-resources/hbase-mojo</targetDirectory>
                     <columnFamily>cf</columnFamily>
                 </configuration>
                 <executions>
                     <execution>
                         <goals>
-                            <goal>hbase</goal>
+                            <goal>generate-resources</goal>
                         </goals>
                     </execution>
                 </executions>
@@ -56,9 +57,9 @@
                 <version>2.10</version>
                 <configuration>
                     <includes>**/*.json</includes>
-                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                     <includeGroupIds>org.apache.streams</includeGroupIds>
-                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                     <includeTypes>jar,test-jar</includeTypes>
                 </configuration>
                 <executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hive/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/pom.xml b/streams-plugins/streams-plugin-hive/pom.xml
index 515314a..38c69c1 100644
--- a/streams-plugins/streams-plugin-hive/pom.xml
+++ b/streams-plugins/streams-plugin-hive/pom.xml
@@ -54,10 +54,17 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-util</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schema-activitystreams</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
@@ -230,9 +237,9 @@
                         </goals>
                         <configuration>
                             <includeGroupIds>org.apache.streams</includeGroupIds>
-                            <includeArtifactIds>streams-schemas</includeArtifactIds>
+                            <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                             <includes>**/*.json</includes>
-                            <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                            <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                         </configuration>
                     </execution>
                 </executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveGenerationConfig.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveGenerationConfig.java
index 7e3bf35..f957757 100644
--- a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveGenerationConfig.java
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveGenerationConfig.java
@@ -1,11 +1,10 @@
 package org.apache.streams.plugins.hive;
 
-import org.apache.streams.schema.GenerationConfig;
+import org.apache.streams.util.schema.GenerationConfig;
 import org.jsonschema2pojo.DefaultGenerationConfig;
 import org.jsonschema2pojo.util.URLUtil;
 
 import java.io.File;
-import java.io.FileFilter;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
index c09f7dd..60c59ca 100644
--- a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
@@ -1,33 +1,29 @@
 package org.apache.streams.plugins.hive;
 
-import com.fasterxml.jackson.core.JsonFactory;
 import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.base.Joiner;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
-import org.apache.streams.schema.FieldType;
-import org.apache.streams.schema.FieldUtil;
-import org.apache.streams.schema.FileUtil;
-import org.apache.streams.schema.GenerationConfig;
-import org.apache.streams.schema.Schema;
-import org.apache.streams.schema.SchemaStore;
-import org.apache.streams.schema.SchemaUtil;
-import org.apache.streams.schema.URIUtil;
+import org.apache.streams.util.schema.FieldType;
+import org.apache.streams.util.schema.FieldUtil;
+import org.apache.streams.util.schema.FileUtil;
+import org.apache.streams.util.schema.GenerationConfig;
+import org.apache.streams.util.schema.Schema;
+import org.apache.streams.util.schema.SchemaStore;
+import org.apache.streams.util.schema.SchemaStoreImpl;
 import org.jsonschema2pojo.util.URLUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
-import java.net.URI;
 import java.net.URL;
 import java.util.*;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.apache.commons.lang3.StringUtils.defaultString;
-import static org.apache.streams.schema.FileUtil.*;
+import static org.apache.streams.util.schema.FileUtil.*;
 
 /**
  * Generates hive table definitions for using org.openx.data.jsonserde.JsonSerDe on new-line delimited json documents.
@@ -42,7 +38,7 @@ public class StreamsHiveResourceGenerator implements Runnable {
 
     private StreamsHiveGenerationConfig config;
 
-    private SchemaStore schemaStore = new SchemaStore();
+    private SchemaStore schemaStore = new SchemaStoreImpl();
 
     private int currentDepth = 0;
 
@@ -60,17 +56,8 @@ public class StreamsHiveResourceGenerator implements Runnable {
         config.setSourceDirectory(sourceDirectory);
         config.setTargetDirectory(targetDirectory);
 
-        StreamsHiveResourceGenerator streamsPojoSourceGenerator = new StreamsHiveResourceGenerator(config);
-        Thread thread = new Thread(streamsPojoSourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
+        StreamsHiveResourceGenerator streamsHiveResourceGenerator = new StreamsHiveResourceGenerator(config);
+        streamsHiveResourceGenerator.run();
     }
 
     public StreamsHiveResourceGenerator(StreamsHiveGenerationConfig config) {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
index 16466cf..76e3a18 100644
--- a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
@@ -15,10 +15,10 @@ import org.slf4j.LoggerFactory;
 import java.io.File;
 import java.util.List;
 
-@Mojo(  name = "hive",
+@Mojo(  name = "generate-resources",
         defaultPhase = LifecyclePhase.GENERATE_RESOURCES
 )
-@Execute(   goal = "hive",
+@Execute(   goal = "generate-resources",
             phase = LifecyclePhase.GENERATE_RESOURCES
 )
 public class StreamsHiveResourceGeneratorMojo extends AbstractMojo {
@@ -30,15 +30,6 @@ public class StreamsHiveResourceGeneratorMojo extends AbstractMojo {
     @Component
     private MavenProject project;
 
-//    @Component
-//    private Settings settings;
-//
-//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
-//    protected ArtifactRepository localRepository;
-//
-//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
-//    private PluginDescriptor plugin;
-//
     @Parameter( defaultValue = "${project.basedir}", readonly = true )
     private File basedir;
 
@@ -65,29 +56,8 @@ public class StreamsHiveResourceGeneratorMojo extends AbstractMojo {
 
         StreamsHiveResourceGenerator streamsHiveResourceGenerator = new StreamsHiveResourceGenerator(config);
 
-        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
-            public void uncaughtException(Thread th, Throwable ex) {
-                LOGGER.error("Exception", ex);
-                mojoFailureException = new MojoFailureException("Exception", ex);
-            }
-        };
-        Thread.setDefaultUncaughtExceptionHandler(h);
-        Thread thread = new Thread(streamsHiveResourceGenerator);
-        thread.setUncaughtExceptionHandler(h);
-        try {
-            thread.start();
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-            mojoFailureException = new MojoFailureException("Exception", e);
-        }
-
-        if( mojoFailureException != null )
-            throw mojoFailureException;
-
-        return;
+        streamsHiveResourceGenerator.run();
+
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hive/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/site/markdown/index.md b/streams-plugins/streams-plugin-hive/src/site/markdown/index.md
index 4df9103..12ce831 100644
--- a/streams-plugins/streams-plugin-hive/src/site/markdown/index.md
+++ b/streams-plugins/streams-plugin-hive/src/site/markdown/index.md
@@ -3,18 +3,36 @@ org.apache.streams.plugins:streams-plugin-hive
 
 streams-plugin-hive generates resources from json schemas to assist with analysis of json data using Apache Hive.
 
-#### Usage
+### Usage
 
-Run within a module containing a src/main/jsonschema directory
+Output will be placed in target/generated-resources/hive by default
 
-    mvn org.apache.streams.plugins:streams-plugin-hive:0.3-incubating-SNAPSHOT:hive
+##### Maven
 
-Output will be placed in target/generated-resources/hive by default
+Run within a module containing a src/main/jsonschema directory
 
-#### Example
+    mvn org.apache.streams.plugins:streams-plugin-hive:0.3-incubating-SNAPSHOT:generate-resources
 
 [streams-plugin-hive/pom.xml](streams-plugin-hive/pom.xml "streams-plugin-hive/pom.xml")
 
+##### SDK
+
+Embed within your own java code
+
+    StreamsHiveGenerationConfig config = new StreamsHiveGenerationConfig();
+    config.setSourceDirectory("src/main/jsonschema");
+    config.setTargetDirectory("target/generated-resources");
+    StreamsHiveGenerationConfig generator = new StreamsHiveGenerationConfig(config);
+    generator.run();
+   
+##### CLI
+ 
+Run from CLI without Maven
+
+    java -jar streams-plugin-hive-jar-with-dependencies.jar StreamsHiveResourceGenerator src/main/jsonschema target/generated-resources
+
+#### Example
+
 #### Documentation
 
 [JavaDocs](apidocs/index.html "JavaDocs")

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorCLITest.java b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorCLITest.java
index 21c82f9..ed08c31 100644
--- a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorCLITest.java
+++ b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorCLITest.java
@@ -21,7 +21,7 @@ public class StreamsHiveResourceGeneratorCLITest {
     @Test
     public void testStreamsHiveResourceGeneratorCLI() throws Exception {
 
-        String sourceDirectory = "target/test-classes/streams-schemas";
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
         String targetDirectory = "target/generated-resources/hive-cli";
 
         List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorMojoTest.java
index b2f3e14..e2fbecc 100644
--- a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorMojoTest.java
+++ b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorMojoTest.java
@@ -50,7 +50,7 @@ public class StreamsHiveResourceGeneratorMojoTest extends TestCase {
 
         verifier.resetStreams();
 
-        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-resources/test-mojo");
+        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-resources/hive-mojo");
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
index 3944ddf..9778bb6 100644
--- a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
+++ b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
@@ -18,7 +18,7 @@ import java.io.File;
 import java.util.Collection;
 import java.util.Iterator;
 
-import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.util.schema.FileUtil.dropSourcePathPrefix;
 
 /**
  * Test that Activity beans are compatible with the example activities in the spec.
@@ -47,26 +47,18 @@ public class StreamsHiveResourceGeneratorTest {
 
         StreamsHiveGenerationConfig config = new StreamsHiveGenerationConfig();
 
-        String sourceDirectory = "target/test-classes/streams-schemas";
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
 
         config.setSourceDirectory(sourceDirectory);
 
-        config.setTargetDirectory("target/generated-sources/test");
+        config.setTargetDirectory("target/generated-resources/test");
 
         config.setExclusions(Sets.newHashSet("attachments"));
 
         config.setMaxDepth(2);
 
         StreamsHiveResourceGenerator streamsHiveResourceGenerator = new StreamsHiveResourceGenerator(config);
-        Thread thread = new Thread(streamsHiveResourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
+        streamsHiveResourceGenerator.run();
 
         File testOutput = config.getTargetDirectory();
 
@@ -106,19 +98,5 @@ public class StreamsHiveResourceGeneratorTest {
             LOGGER.info("Fails: {}", fails);
             Assert.fail();
         }
-
-
-//        assert( new File(testOutput + "/traits").exists() == true );
-//        assert( new File(testOutput + "/traits").isDirectory() == true );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
-//        assert( new File(testOutput + "/objectTypes").exists() == true );
-//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
-//        assert( new File(testOutput + "/verbs").exists() == true );
-//        assert( new File(testOutput + "/verbs").isDirectory() == true );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
-    }
+   }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml b/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
index ae4bb66..40931ae 100644
--- a/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
+++ b/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
@@ -18,9 +18,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-schema-activitystreams</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
+            <type>test-jar</type>
         </dependency>
     </dependencies>
 
@@ -32,19 +33,19 @@
                 <version>0.3-incubating-SNAPSHOT</version>
                 <configuration>
                     <sourcePaths>
-                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/verbs</sourcePath>
                     </sourcePaths>
-                    <targetDirectory>target/generated-resources/test-mojo</targetDirectory>
+                    <targetDirectory>target/generated-resources/hive-mojo</targetDirectory>
                 </configuration>
                 <executions>
                     <execution>
                         <goals>
-                            <goal>hive</goal>
+                            <goal>generate-resources</goal>
                         </goals>
                     </execution>
                 </executions>
@@ -55,9 +56,9 @@
                 <version>2.10</version>
                 <configuration>
                     <includes>**/*.json</includes>
-                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                     <includeGroupIds>org.apache.streams</includeGroupIds>
-                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                     <includeTypes>jar,test-jar</includeTypes>
                 </configuration>
                 <executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pig/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/pom.xml b/streams-plugins/streams-plugin-pig/pom.xml
index ef59587..0c7bf1a 100644
--- a/streams-plugins/streams-plugin-pig/pom.xml
+++ b/streams-plugins/streams-plugin-pig/pom.xml
@@ -54,10 +54,17 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-util</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schema-activitystreams</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
@@ -230,9 +237,9 @@
                         </goals>
                         <configuration>
                             <includeGroupIds>org.apache.streams</includeGroupIds>
-                            <includeArtifactIds>streams-schemas</includeArtifactIds>
+                            <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                             <includes>**/*.json</includes>
-                            <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                            <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                         </configuration>
                     </execution>
                 </executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigGenerationConfig.java b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigGenerationConfig.java
index 5aa55ed..1b346f4 100644
--- a/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigGenerationConfig.java
+++ b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigGenerationConfig.java
@@ -1,11 +1,10 @@
 package org.apache.streams.plugins.pig;
 
-import org.apache.streams.schema.GenerationConfig;
+import org.apache.streams.util.schema.GenerationConfig;
 import org.jsonschema2pojo.DefaultGenerationConfig;
 import org.jsonschema2pojo.util.URLUtil;
 
 import java.io.File;
-import java.io.FileFilter;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGenerator.java b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGenerator.java
index 072e1b6..f1f94a6 100644
--- a/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGenerator.java
+++ b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGenerator.java
@@ -6,13 +6,13 @@ import com.google.common.base.Joiner;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
-import org.apache.streams.plugins.pig.StreamsPigGenerationConfig;
-import org.apache.streams.schema.FieldType;
-import org.apache.streams.schema.FieldUtil;
-import org.apache.streams.schema.FileUtil;
-import org.apache.streams.schema.GenerationConfig;
-import org.apache.streams.schema.Schema;
-import org.apache.streams.schema.SchemaStore;
+import org.apache.streams.util.schema.FieldType;
+import org.apache.streams.util.schema.FieldUtil;
+import org.apache.streams.util.schema.FileUtil;
+import org.apache.streams.util.schema.GenerationConfig;
+import org.apache.streams.util.schema.Schema;
+import org.apache.streams.util.schema.SchemaStore;
+import org.apache.streams.util.schema.SchemaStoreImpl;
 import org.jsonschema2pojo.util.URLUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,10 +25,10 @@ import java.util.List;
 import java.util.Map;
 
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.apache.streams.schema.FileUtil.dropExtension;
-import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
-import static org.apache.streams.schema.FileUtil.swapExtension;
-import static org.apache.streams.schema.FileUtil.writeFile;
+import static org.apache.streams.util.schema.FileUtil.dropExtension;
+import static org.apache.streams.util.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.util.schema.FileUtil.swapExtension;
+import static org.apache.streams.util.schema.FileUtil.writeFile;
 
 public class StreamsPigResourceGenerator implements Runnable {
 
@@ -38,7 +38,7 @@ public class StreamsPigResourceGenerator implements Runnable {
 
     private StreamsPigGenerationConfig config;
 
-    private SchemaStore schemaStore = new SchemaStore();
+    private SchemaStore schemaStore = new SchemaStoreImpl();
 
     private int currentDepth = 0;
 
@@ -57,16 +57,8 @@ public class StreamsPigResourceGenerator implements Runnable {
         config.setTargetDirectory(targetDirectory);
 
         StreamsPigResourceGenerator streamsPigResourceGenerator = new StreamsPigResourceGenerator(config);
-        Thread thread = new Thread(streamsPigResourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
+        streamsPigResourceGenerator.run();
+
     }
 
     public StreamsPigResourceGenerator(StreamsPigGenerationConfig config) {
@@ -160,13 +152,9 @@ public class StreamsPigResourceGenerator implements Runnable {
                 if (fieldType != null ) {
                     switch (fieldType) {
                         case ARRAY:
-                            ObjectNode itemsNode = FieldUtil.resolveItemsNode(fieldNode);
-                            if( itemsNode == null ) {
-                                ObjectNode resolvedItems = schemaStore.resolveProperties(schema, fieldNode, fieldId);
-                                itemsNode = FieldUtil.resolveItemsNode();
-                            }
-                            if( itemsNode != null && currentDepth <= config.getMaxDepth()) {
-                                StringBuilder arrayItemsBuilder = appendArrayItems(new StringBuilder(), schema, fieldId, itemsNode, seperator);
+                            ObjectNode resolvedItems = schemaStore.resolveItems(schema, fieldNode, fieldId);
+                            if( resolvedItems != null && currentDepth <= config.getMaxDepth()) {
+                                StringBuilder arrayItemsBuilder = appendArrayItems(new StringBuilder(), schema, fieldId, resolvedItems, seperator);
                                 if( !Strings.isNullOrEmpty(arrayItemsBuilder.toString())) {
                                     fieldStrings.add(arrayItemsBuilder.toString());
                                 }

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGeneratorMojo.java b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGeneratorMojo.java
index 4763b60..571c75a 100644
--- a/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGeneratorMojo.java
+++ b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGeneratorMojo.java
@@ -15,10 +15,10 @@ import org.slf4j.LoggerFactory;
 import java.io.File;
 import java.util.List;
 
-@Mojo(  name = "pig",
+@Mojo(  name = "generate-resources",
         defaultPhase = LifecyclePhase.GENERATE_RESOURCES
 )
-@Execute(   goal = "pig",
+@Execute(   goal = "generate-resources",
             phase = LifecyclePhase.GENERATE_RESOURCES
 )
 public class StreamsPigResourceGeneratorMojo extends AbstractMojo {
@@ -30,15 +30,6 @@ public class StreamsPigResourceGeneratorMojo extends AbstractMojo {
     @Component
     private MavenProject project;
 
-//    @Component
-//    private Settings settings;
-//
-//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
-//    protected ArtifactRepository localRepository;
-//
-//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
-//    private PluginDescriptor plugin;
-//
     @Parameter( defaultValue = "${project.basedir}", readonly = true )
     private File basedir;
 
@@ -64,30 +55,7 @@ public class StreamsPigResourceGeneratorMojo extends AbstractMojo {
         config.setTargetDirectory(targetDirectory);
 
         StreamsPigResourceGenerator streamsPigResourceGenerator = new StreamsPigResourceGenerator(config);
-
-        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
-            public void uncaughtException(Thread th, Throwable ex) {
-                LOGGER.error("Exception", ex);
-                mojoFailureException = new MojoFailureException("Exception", ex);
-            }
-        };
-        Thread.setDefaultUncaughtExceptionHandler(h);
-        Thread thread = new Thread(streamsPigResourceGenerator);
-        thread.setUncaughtExceptionHandler(h);
-        try {
-            thread.start();
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-            mojoFailureException = new MojoFailureException("Exception", e);
-        }
-
-        if( mojoFailureException != null )
-            throw mojoFailureException;
-
-        return;
+        streamsPigResourceGenerator.run();
     }
 
 }
\ No newline at end of file



[13/32] incubator-streams git commit: WIP for apachecon

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/install.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/install.json b/streams-schemas/src/test/resources/activities/install.json
new file mode 100644
index 0000000..1ecdecd
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/install.json
@@ -0,0 +1,18 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "install",
+  "object": {
+    "objectType": "application",
+    "displayName": "Approved Software Scanning Tool",
+    "location": {
+      "displayName": "All computers in Building A"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/interact.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/interact.json b/streams-schemas/src/test/resources/activities/interact.json
new file mode 100644
index 0000000..f427513
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/interact.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Bob"
+  },
+  "verb": "interact",
+  "object": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "title": "Bob called Laura."
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/invite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/invite.json b/streams-schemas/src/test/resources/activities/invite.json
new file mode 100644
index 0000000..7c84b78
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/invite.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "invite",
+  "object": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "target": {
+    "objectType": "event",
+    "displayName": "Job Interview"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/join.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/join.json b/streams-schemas/src/test/resources/activities/join.json
new file mode 100644
index 0000000..7996a9b
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/join.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "join",
+  "object": {
+    "objectType": "organization",
+    "displayName": "Acme, Co"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/leave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/leave.json b/streams-schemas/src/test/resources/activities/leave.json
new file mode 100644
index 0000000..08516c5
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/leave.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "leave",
+  "object": {
+    "objectType": "organization",
+    "displayName": "Other, Co"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/like.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/like.json b/streams-schemas/src/test/resources/activities/like.json
new file mode 100644
index 0000000..853676f
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/like.json
@@ -0,0 +1,22 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "like",
+  "object": {
+    "actor": {
+      "objectType": "person",
+      "displayName": "Mark"
+    },
+    "verb": "join",
+    "object": {
+      "objectType": "organization",
+      "displayName": "Acme, Co"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/listen.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/listen.json b/streams-schemas/src/test/resources/activities/listen.json
new file mode 100644
index 0000000..1268060
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/listen.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "listen",
+  "object": {
+    "objectType": "audio",
+    "displayName": "Welcome to the Company (Podcast).mp3"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/lose.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/lose.json b/streams-schemas/src/test/resources/activities/lose.json
new file mode 100644
index 0000000..073e914
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/lose.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "organization",
+    "displayName": "New York Yankees"
+  },
+  "verb": "lose",
+  "object": {
+    "objectType": "game",
+    "displayName": "World Series"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/make-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/make-friend.json b/streams-schemas/src/test/resources/activities/make-friend.json
new file mode 100644
index 0000000..1acf539
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/make-friend.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "make-friend",
+  "object": {
+    "objectType": "person",
+    "displayName": "Laura"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/open.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/open.json b/streams-schemas/src/test/resources/activities/open.json
new file mode 100644
index 0000000..4bf47cd
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/open.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "open",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #126"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/play.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/play.json b/streams-schemas/src/test/resources/activities/play.json
new file mode 100644
index 0000000..0605662
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/play.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "play",
+  "object": {
+    "objectType": "audio",
+    "displayName": "Call Me Maybe"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/post.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/post.json b/streams-schemas/src/test/resources/activities/post.json
new file mode 100644
index 0000000..73cfff7
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/post.json
@@ -0,0 +1,25 @@
+{
+  "published": "2011-02-10T15:04:55Z",
+  "actor": {
+    "url": "http://example.org/martin",
+    "objectType" : "person",
+    "id": "tag:example.org,2011:martin",
+    "image": {
+      "url": "http://example.org/martin/image",
+      "width": 250,
+      "height": 250
+    },
+    "displayName": "Martin Smith"
+  },
+  "verb": "post",
+  "object" : {
+    "url": "http://example.org/blog/2011/02/entry",
+    "id": "tag:example.org,2011:abc123/xyz"
+  },
+  "target" : {
+    "url": "http://example.org/blog/",
+    "objectType": "blog",
+    "id": "tag:example.org,2011:abc123",
+    "displayName": "Martin's Blog"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/present.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/present.json b/streams-schemas/src/test/resources/activities/present.json
new file mode 100644
index 0000000..8f4df12
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/present.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "present",
+  "object": {
+    "objectType": "file",
+    "displayName": "1Q2013 Sales Forecast.ppt"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/purchase.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/purchase.json b/streams-schemas/src/test/resources/activities/purchase.json
new file mode 100644
index 0000000..3354597
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/purchase.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "purchase",
+  "object": {
+    "objectType": "video",
+    "displayName": "The Avengers"
+  },
+  "title": "Mark purchased the movie, The Avengers"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/qualify.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/qualify.json b/streams-schemas/src/test/resources/activities/qualify.json
new file mode 100644
index 0000000..630bda0
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/qualify.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "qualify",
+  "object": {
+    "objectType": "offer",
+    "displayName": "Free Money!"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/read.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/read.json b/streams-schemas/src/test/resources/activities/read.json
new file mode 100644
index 0000000..3509886
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/read.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "read",
+  "object": {
+    "objectType": "book",
+    "displayName": "Cloud Atlas"
+  }
+}
+      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/receive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/receive.json b/streams-schemas/src/test/resources/activities/receive.json
new file mode 100644
index 0000000..d61245e
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/receive.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "receive",
+  "object": {
+    "objectType": "badge",
+    "displayName": "Most Checkins in 24 hours"
+  },
+  "title": "Laura was awarded a badge for \"Most Checkins in 24 hours\""
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/reject.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/reject.json b/streams-schemas/src/test/resources/activities/reject.json
new file mode 100644
index 0000000..84d1ab1
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/reject.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "reject",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #126"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/remove-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/remove-friend.json b/streams-schemas/src/test/resources/activities/remove-friend.json
new file mode 100644
index 0000000..0a593e9
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/remove-friend.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "remove-friend",
+  "object": {
+    "objectType": "person",
+    "displayName": "Laura"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/remove.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/remove.json b/streams-schemas/src/test/resources/activities/remove.json
new file mode 100644
index 0000000..1f386e9
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/remove.json
@@ -0,0 +1,23 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "remove",
+  "object": {
+    "objectType": "image",
+    "displayName": "Cat Photo",
+    "fullImage": {
+      "url": "http://example.org/cats.jpg"
+    }
+  },
+  "target": {
+    "objectType": "collection",
+    "displayName": "Cat Photo Album",
+    "objectTypes": ["image"]
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/replace.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/replace.json b/streams-schemas/src/test/resources/activities/replace.json
new file mode 100644
index 0000000..f19a35c
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/replace.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "replace",
+  "object": {
+    "objectType": "file",
+    "displayName": "Updated 1Q2014 Sales Forecast.xls"
+  },
+  "target": {
+    "objectType": "file",
+    "displayName": "1Q2014 Sales Forecast.xls"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/request-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/request-friend.json b/streams-schemas/src/test/resources/activities/request-friend.json
new file mode 100644
index 0000000..3e571ee
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/request-friend.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "request-friend",
+  "object": {
+    "objectType": "person",
+    "displayName": "Laura"
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/request.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/request.json b/streams-schemas/src/test/resources/activities/request.json
new file mode 100644
index 0000000..3e7c285
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/request.json
@@ -0,0 +1,23 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "request",
+  "object": {
+    "objectType": "task",
+    "actor": {
+      "objectType": "person",
+      "displayName": "Mark"
+    },
+    "verb": "join",
+    "object": {
+      "objectType": "event",
+      "displayName": "The Big Meeting"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/resolve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/resolve.json b/streams-schemas/src/test/resources/activities/resolve.json
new file mode 100644
index 0000000..14998cf
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/resolve.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "resolve",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #126"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/retract.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/retract.json b/streams-schemas/src/test/resources/activities/retract.json
new file mode 100644
index 0000000..9229868
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/retract.json
@@ -0,0 +1,26 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "retract",
+  "object": {
+    "actor": {
+      "objectType": "person",
+      "displayName": "Mark"
+    },
+    "verb": "return",
+    "object": {
+      "objectType": "book",
+      "displayName": "Cloud Atlas"
+    },
+    "target": {
+      "objectType": "person",
+      "displayName": "Laura"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/return.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/return.json b/streams-schemas/src/test/resources/activities/return.json
new file mode 100644
index 0000000..d6b8861
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/return.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "return",
+  "object": {
+    "objectType": "book",
+    "displayName": "Cloud Atlas"
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Laura"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/rsvp-maybe.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/rsvp-maybe.json b/streams-schemas/src/test/resources/activities/rsvp-maybe.json
new file mode 100644
index 0000000..b1ec1b5
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/rsvp-maybe.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "rsvp-maybe",
+  "object": {
+    "objectType": "event",
+    "displayName": "The Big Meeting"
+  },
+  "title": "Laura might attend The Big Meeting"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/rsvp-no.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/rsvp-no.json b/streams-schemas/src/test/resources/activities/rsvp-no.json
new file mode 100644
index 0000000..532b096
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/rsvp-no.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "rsvp-no",
+  "object": {
+    "objectType": "event",
+    "displayName": "The Big Meeting"
+  },
+  "title": "Mark will not attend the Big Meeting"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/rsvp-yes.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/rsvp-yes.json b/streams-schemas/src/test/resources/activities/rsvp-yes.json
new file mode 100644
index 0000000..170a5c4
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/rsvp-yes.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "rsvp-yes",
+  "object": {
+    "objectType": "event",
+    "displayName": "The Big Meeting"
+  },
+  "title": "Laura will attend the Big Meeting"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/satisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/satisfy.json b/streams-schemas/src/test/resources/activities/satisfy.json
new file mode 100644
index 0000000..16151fa
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/satisfy.json
@@ -0,0 +1,21 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "satisfy",
+  "object": {
+    "objectType": "http://example.org/condition",
+    "displayName": "Some Condition"
+  },
+  "target": {
+    "objectType": "http://example.org/parole",
+    "displayName": "Terms of Parole"
+  },
+  "title": "Mark has satisfied a condition of his parole."
+}
+      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/save.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/save.json b/streams-schemas/src/test/resources/activities/save.json
new file mode 100644
index 0000000..70c0f5f
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/save.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "save",
+  "object": {
+    "objectType": "note",
+    "displayName": "A note about something important"
+  },
+  "target": {
+    "objectType": "collection",
+    "displayName": "Laura's Reading List"
+  },
+  "title": "Laura saved the note to her reading list"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/schedule.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/schedule.json b/streams-schemas/src/test/resources/activities/schedule.json
new file mode 100644
index 0000000..f214290
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/schedule.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "schedule",
+  "object": {
+    "objectType": "event",
+    "displayName": "The Big Meeting"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/search.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/search.json b/streams-schemas/src/test/resources/activities/search.json
new file mode 100644
index 0000000..511b612
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/search.json
@@ -0,0 +1,21 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "search",
+  "object": {
+    "objectType": "place",
+    "displayName": "Big Hotel",
+    "address": {
+      "locality": "New York",
+      "region": "NY"
+    }
+  },
+  "title": "Laura searched for a hotel in New York City, NY"
+}
+      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/sell.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/sell.json b/streams-schemas/src/test/resources/activities/sell.json
new file mode 100644
index 0000000..ab07fb0
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/sell.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "sell",
+  "object": {
+    "objectType": "product",
+    "displayName": "A cool product"
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Laura"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/send.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/send.json b/streams-schemas/src/test/resources/activities/send.json
new file mode 100644
index 0000000..b392ce8
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/send.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "send",
+  "object": {
+    "objectType": "note",
+    "content": "Thank you for the cool product."
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Mark"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/share.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/share.json b/streams-schemas/src/test/resources/activities/share.json
new file mode 100644
index 0000000..dc7b9f1
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/share.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "share",
+  "object": {
+    "objectType": "note",
+    "displayName": "An important note"
+  },
+  "title": "Mark shared an important note."
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/sponsor.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/sponsor.json b/streams-schemas/src/test/resources/activities/sponsor.json
new file mode 100644
index 0000000..156c322
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/sponsor.json
@@ -0,0 +1,17 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "organization",
+    "displayName": "Acme, Co"
+  },
+  "verb": "sponsor",
+  "object": {
+    "objectType": "game",
+    "displayName": "World Series"
+  },
+  "title": "Acme, Co sponsored the World Series"
+}
+      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/start.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/start.json b/streams-schemas/src/test/resources/activities/start.json
new file mode 100644
index 0000000..b9aede2
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/start.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "start",
+  "object": {
+    "objectType": "process",
+    "displayName": "A Long Running Process"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/stop-following.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/stop-following.json b/streams-schemas/src/test/resources/activities/stop-following.json
new file mode 100644
index 0000000..04b83e7
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/stop-following.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "stop-following",
+  "object": {
+    "objectType": "person",
+    "displayName": "Mark"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/submit.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/submit.json b/streams-schemas/src/test/resources/activities/submit.json
new file mode 100644
index 0000000..0fd3c34
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/submit.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "submit",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #127"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/tag.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/tag.json b/streams-schemas/src/test/resources/activities/tag.json
new file mode 100644
index 0000000..dba6112
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/tag.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "tag",
+  "object": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "target": {
+    "objectType": "image",
+    "displayName": "Pictures of my cats"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/terminate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/terminate.json b/streams-schemas/src/test/resources/activities/terminate.json
new file mode 100644
index 0000000..f4d886e
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/terminate.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "terminate",
+  "object": {
+    "objectType": "process",
+    "displayName": "A long running process"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/tie.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/tie.json b/streams-schemas/src/test/resources/activities/tie.json
new file mode 100644
index 0000000..71a3c39
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/tie.json
@@ -0,0 +1,24 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "collection",
+    "items": [
+      {
+        "objectType": "organization",
+        "displayName": "New York Giants"
+      },
+      {
+        "objectType": "organization",
+        "displayName": "Oakland Raiders"
+      }
+    ]
+  },
+  "verb": "tie",
+  "object": {
+    "objectType": "game",
+    "displayName": "Super Bowl"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/unfavorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/unfavorite.json b/streams-schemas/src/test/resources/activities/unfavorite.json
new file mode 100644
index 0000000..b1e7bcd
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/unfavorite.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "unfavorite",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some article"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/unlike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/unlike.json b/streams-schemas/src/test/resources/activities/unlike.json
new file mode 100644
index 0000000..9bc583f
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/unlike.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "unlike",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some article"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/unsatisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/unsatisfy.json b/streams-schemas/src/test/resources/activities/unsatisfy.json
new file mode 100644
index 0000000..739823c
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/unsatisfy.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "unsatisfy",
+  "object": {
+    "objectType": "http://example.org/condition",
+    "displayName": "Some Condition"
+  },
+  "target": {
+    "objectType": "http://example.org/parole",
+    "displayName": "Terms of Parole"
+  },
+  "title": "Mark has not satisfied a condition of his parole."
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/unsave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/unsave.json b/streams-schemas/src/test/resources/activities/unsave.json
new file mode 100644
index 0000000..a9a21f0
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/unsave.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "unsave",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some article"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/unshare.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/unshare.json b/streams-schemas/src/test/resources/activities/unshare.json
new file mode 100644
index 0000000..4d45a6d
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/unshare.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "unshare",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some article"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/update.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/update.json b/streams-schemas/src/test/resources/activities/update.json
new file mode 100644
index 0000000..7dbed20
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/update.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "update",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some article"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/use.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/use.json b/streams-schemas/src/test/resources/activities/use.json
new file mode 100644
index 0000000..699c4b8
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/use.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "use",
+  "object": {
+    "objectType": "product",
+    "displayName": "A cool product"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/watch.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/watch.json b/streams-schemas/src/test/resources/activities/watch.json
new file mode 100644
index 0000000..2052f06
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/watch.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "watch",
+  "object": {
+    "objectType": "video",
+    "displayName": "Some random movie"
+  }
+}
+      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/win.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/win.json b/streams-schemas/src/test/resources/activities/win.json
new file mode 100644
index 0000000..2cf9d5a
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/win.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "organization",
+    "displayName": "Arizona Diamond Backs"
+  },
+  "verb": "win",
+  "object": {
+    "objectType": "game",
+    "displayName": "World Series"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/media_link.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/media_link.json b/streams-schemas/src/test/resources/media_link.json
new file mode 100644
index 0000000..0bed6f0
--- /dev/null
+++ b/streams-schemas/src/test/resources/media_link.json
@@ -0,0 +1,7 @@
+{
+    "$schema": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/media_link.json#",
+    "duration": 30000,
+    "height": 480,
+    "width": 640,
+    "url": "http://youtube.com/s7hc30sb"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/objects/event.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/event.json b/streams-schemas/src/test/resources/objects/event.json
new file mode 100644
index 0000000..ae1108e
--- /dev/null
+++ b/streams-schemas/src/test/resources/objects/event.json
@@ -0,0 +1,18 @@
+{
+    "objectType": "event",
+    "displayName": "Meeting with Joe",
+    "startTime": "2012-12-12T12:00:00Z",
+    "endTime: "2012-12-12T13:00:00Z",
+    "invited": {
+      "items": [
+        {"objectType": "person",
+         "displayName": "Joe"}
+      ]
+    },
+    "attending": {
+      "items": [
+        {"objectType": "person",
+         "displayName": "Joe"}
+      ]
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/objects/group.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/group.json b/streams-schemas/src/test/resources/objects/group.json
new file mode 100644
index 0000000..9721874
--- /dev/null
+++ b/streams-schemas/src/test/resources/objects/group.json
@@ -0,0 +1,16 @@
+{
+  "objectType": "group",
+  "displayName": "My Work Group",
+  "members": {
+	"items": [
+	  {
+		"objectType": "person",
+		"displayName": "Laura"
+	  },
+	  {
+		"objectType": "person",
+		"displayName": "Mark"
+	  }
+	]
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/objects/issue.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/issue.json b/streams-schemas/src/test/resources/objects/issue.json
new file mode 100644
index 0000000..86bc6d2
--- /dev/null
+++ b/streams-schemas/src/test/resources/objects/issue.json
@@ -0,0 +1,9 @@
+{
+   "objectType": "issue",
+   "displayName": "Terms of Use Violation",
+   "url": "http://.../terms-of-use",
+   "types": [
+	 "http://example.org/codes/inappropriateMaterial",
+	 "http://example.org/codes/copyrightViolation"
+   ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/objects/note.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/note.json b/streams-schemas/src/test/resources/objects/note.json
new file mode 100644
index 0000000..15a4495
--- /dev/null
+++ b/streams-schemas/src/test/resources/objects/note.json
@@ -0,0 +1,12 @@
+{
+  "objectType": "note",
+  "displayName": "A note with a binary attachment",
+  "attachments": [
+	{
+	  "objectType": "binary",
+	  "data": "dGhpcyBpcyB1bmNvbXByZXNzZWQgZGF0YQo=",
+	  "md5": "827ae7e1ab45e4dd591d087c741e5770",
+	  "length": 25
+	}
+  ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/objects/permission.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/permission.json b/streams-schemas/src/test/resources/objects/permission.json
new file mode 100644
index 0000000..24b6fa2
--- /dev/null
+++ b/streams-schemas/src/test/resources/objects/permission.json
@@ -0,0 +1,9 @@
+{
+    "objectType": "permission",
+    "displayName": "Permission to Edit File: 2Q2014 Sales Forecast.xls",
+    "scope": {
+      "objectType": "file",
+      "displayName": "2Q2014 Sales Forecast.xls"
+    },
+    "actions": ["modify", "delete", "create"]
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/objects/place.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/place.json b/streams-schemas/src/test/resources/objects/place.json
new file mode 100644
index 0000000..8e454be
--- /dev/null
+++ b/streams-schemas/src/test/resources/objects/place.json
@@ -0,0 +1,9 @@
+{
+  "objectType": "place",
+  "displayName": "Some Random Location on Earth",
+  "position": {
+	"latitude": 34.34,
+	"longitude": -127.23,
+	"altitude": 100.05
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/objects/task.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/task.json b/streams-schemas/src/test/resources/objects/task.json
new file mode 100644
index 0000000..f4878dc
--- /dev/null
+++ b/streams-schemas/src/test/resources/objects/task.json
@@ -0,0 +1,16 @@
+{
+    "objectType": "task",
+    "displayName": "James needs to read the spec",
+    "by": "2012-12-12T12:12:12Z",
+    "verb": "read",
+    "actor": {
+      "objectType": "person",
+      "displayName": "James"
+    },
+    "object": {
+      "objectType": "file",
+      "displayName": "A specification",
+      "url": "http://example.org/spec.html"
+    },
+    "required": true
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/objects/video.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/objects/video.json b/streams-schemas/src/test/resources/objects/video.json
new file mode 100644
index 0000000..bc19e89
--- /dev/null
+++ b/streams-schemas/src/test/resources/objects/video.json
@@ -0,0 +1,8 @@
+{
+    "objectType": "video",
+    "displayName": "Cute little kittens",
+    "embedCode": "<video width="320" height="240" controls="controls">...</video>",
+    "stream": {
+      "url": "http://example.org/my_video.mpg"
+    }
+}


[28/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/task.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/task.json b/streams-schemas/src/main/jsonschema/objectTypes/task.json
deleted file mode 100644
index 2c8a3ea..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/task.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/task.json#",
-    "type": "object",
-    "title": "task",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "task"
-        },
-        "by": {
-          "type": "string",
-          "format": "date-time"
-        },
-        "prerequisites": {
-          "type": "array",
-          "items": {
-            "type": "object",
-            "$ref": "../activity.json"
-          }
-        },
-        "required": {
-          "type": "boolean"
-        },
-        "supersedes": {
-          "type": "array",
-          "items": {
-            "type": "object",
-            "$ref": "../activity.json"
-          }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/team.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/team.json b/streams-schemas/src/main/jsonschema/objectTypes/team.json
deleted file mode 100644
index f4f7494..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/team.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/team.json#",
-    "type": "object",
-    "title": "team",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "team"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/video.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/video.json b/streams-schemas/src/main/jsonschema/objectTypes/video.json
deleted file mode 100644
index 88a528d..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/video.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/video.json#",
-    "type": "object",
-    "title": "video",
-    "extends": {
-        "$ref": "../objectTypes/file.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "video"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/accept.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/accept.json b/streams-schemas/src/main/jsonschema/verbs/accept.json
deleted file mode 100644
index 04efee5..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/accept.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/accept.json#",
-    "type": "object",
-    "title": "Accept",
-    "description": "Indicates that that the actor has accepted the object. For instance, a person accepting an award, or accepting an assignment.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "accept"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} accepted {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/access.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/access.json b/streams-schemas/src/main/jsonschema/verbs/access.json
deleted file mode 100644
index eb08184..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/access.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/access.json#",
-    "type": "object",
-    "title": "Access",
-    "description": "Indicates that the actor has accessed the object. For instance, a person accessing a room, or accessing a file.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "access"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} accessed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/acknowledge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/acknowledge.json b/streams-schemas/src/main/jsonschema/verbs/acknowledge.json
deleted file mode 100644
index aae6209..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/acknowledge.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/acknowledge.json#",
-    "type": "object",
-    "title": "Acknowledge",
-    "description": "Indicates that the actor has acknowledged the object. This effectively signals that the actor is aware of the object's existence.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "acknowledge"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} acknowledge {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/add.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/add.json b/streams-schemas/src/main/jsonschema/verbs/add.json
deleted file mode 100644
index 4d99411..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/add.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/add.json#",
-    "type": "object",
-    "title": "Add",
-    "description": "Indicates that the actor has added the object to the target. For instance, adding a photo to an album.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "add"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} added {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/agree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/agree.json b/streams-schemas/src/main/jsonschema/verbs/agree.json
deleted file mode 100644
index 9e79c2a..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/agree.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/agree.json#",
-    "type": "object",
-    "title": "Agree",
-    "description": "Indicates that the actor agrees with the object. For example, a person agreeing with an argument, or expressing agreement with a particular issue.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "agree"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} agrees with {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/append.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/append.json b/streams-schemas/src/main/jsonschema/verbs/append.json
deleted file mode 100644
index 60e1a82..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/append.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/append.json#",
-    "type": "object",
-    "title": "Append",
-    "description": "Indicates that the actor has appended the object to the target. For instance, a person appending a new record to a database.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "append"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} append {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/approve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/approve.json b/streams-schemas/src/main/jsonschema/verbs/approve.json
deleted file mode 100644
index 247871c..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/approve.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/approve.json#",
-    "type": "object",
-    "title": "Approve",
-    "description": "Indicates that the actor has approved the object. For instance, a manager might approve a travel request.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "approve"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} approved {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/archive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/archive.json b/streams-schemas/src/main/jsonschema/verbs/archive.json
deleted file mode 100644
index 7ee2226..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/archive.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/archive.json#",
-    "type": "object",
-    "title": "Archive",
-    "description": "Indicates that the actor has archived the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "archive"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} archived {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/assign.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/assign.json b/streams-schemas/src/main/jsonschema/verbs/assign.json
deleted file mode 100644
index 1d43041..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/assign.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/assign.json#",
-    "type": "object",
-    "title": "Assign",
-    "description": "Indicates that the actor has assigned the object to the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "assign"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} assigned {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/at.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/at.json b/streams-schemas/src/main/jsonschema/verbs/at.json
deleted file mode 100644
index 34497e2..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/at.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/at.json#",
-    "type": "object",
-    "title": "At",
-    "description": "Indicates that the actor is currently located at the object. For instance, a person being at a specific physical location.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "assign"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} assigned {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/attach.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/attach.json b/streams-schemas/src/main/jsonschema/verbs/attach.json
deleted file mode 100644
index 76c5a4f..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/attach.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/attach.json#",
-    "type": "object",
-    "title": "Attach",
-    "description": "Indicates that the actor has attached the object to the target.For instance, a person attaching a file to a wiki page or an email.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "attach"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} attached {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/attend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/attend.json b/streams-schemas/src/main/jsonschema/verbs/attend.json
deleted file mode 100644
index 6b02d07..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/attend.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/attend.json#",
-    "type": "object",
-    "title": "Attend",
-    "description": "Indicates that the actor has attended the object. For instance, a person attending a meeting.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "attend"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} attended {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/author.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/author.json b/streams-schemas/src/main/jsonschema/verbs/author.json
deleted file mode 100644
index 4898139..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/author.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/author.json#",
-    "type": "object",
-    "title": "Author",
-    "description": "Indicates that the actor has authored the object. Note that this is a more specific form of the verb \"create\".",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "author"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} authored {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/authorize.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/authorize.json b/streams-schemas/src/main/jsonschema/verbs/authorize.json
deleted file mode 100644
index 661e32c..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/authorize.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/authorize.json#",
-    "type": "object",
-    "title": "Authorize",
-    "description": "Indicates that the actor has authorized the object. If a target is specified, it means that the authorization is specifically in regards to the target. For instance, a service can authorize a person to access a given application; in which case the actor is the service, the object is the person, and the target is the application. In contrast, a person can authorize a request; in which case the actor is the person and the object is the request and there might be no explicit target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "authorize"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} authorized {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/borrow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/borrow.json b/streams-schemas/src/main/jsonschema/verbs/borrow.json
deleted file mode 100644
index 74eee36..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/borrow.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/borrow.json#",
-    "type": "object",
-    "title": "Borrow",
-    "description": "Indicates that the actor has borrowed the object. If a target is specified, it identifies the entity from which the object was borrowed. For instance, if a person borrows a book from a library, the person is the actor, the book is the object and the library is the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "borrow"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} borrow {object.displayName} from {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/build.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/build.json b/streams-schemas/src/main/jsonschema/verbs/build.json
deleted file mode 100644
index d8e7d25..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/build.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/build.json#",
-    "type": "object",
-    "title": "Build",
-    "description": "Indicates that the actor has built the object. For example, if a person builds a model or compiles code.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "build"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} built {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/cancel.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/cancel.json b/streams-schemas/src/main/jsonschema/verbs/cancel.json
deleted file mode 100644
index 0d82c8e..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/cancel.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/cancel.json#",
-    "type": "object",
-    "title": "Cancel",
-    "description": "Indicates that the actor has canceled the object. For instance, canceling a calendar event.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "cancel"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} cancelled {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/checkin.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/checkin.json b/streams-schemas/src/main/jsonschema/verbs/checkin.json
deleted file mode 100644
index 88a9c86..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/checkin.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/checkin.json#",
-    "type": "object",
-    "title": "checkin",
-    "description": "Indicates that the actor has checked-in to the object. For instance, a person checking-in to a Place.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "checkin"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} checked in at {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/close.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/close.json b/streams-schemas/src/main/jsonschema/verbs/close.json
deleted file mode 100644
index 88a31b6..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/close.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/close.json#",
-    "type": "object",
-    "title": "Close",
-    "description": "Indicates that the actor has closed the object. For instance, the object could represent a ticket being tracked in an issue management system.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "close"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} closed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/complete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/complete.json b/streams-schemas/src/main/jsonschema/verbs/complete.json
deleted file mode 100644
index ddffd0e..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/complete.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/complete.json#",
-    "type": "object",
-    "title": "Complete",
-    "description": "Indicates that the actor has completed the object",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "complete"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} completed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/confirm.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/confirm.json b/streams-schemas/src/main/jsonschema/verbs/confirm.json
deleted file mode 100644
index 5148c8c..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/confirm.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/confirm.json#",
-    "type": "object",
-    "title": "Confirm",
-    "description": "Indicates that the actor has confirmed or agrees with the object. For instance, a software developer might confirm an issue reported against a product.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "confirm"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} confirmed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/consume.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/consume.json b/streams-schemas/src/main/jsonschema/verbs/consume.json
deleted file mode 100644
index 661b40b..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/consume.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/consume.json#",
-    "type": "object",
-    "title": "Consume",
-    "description": "Indicates that the actor has consumed the object. The specific meaning is dependent largely on the object's type. For instance, an actor may \"consume\" an audio object, indicating that the actor has listened to it; or an actor may \"consume\" a book, indicating that the book has been read. As such, the \"consume\" verb is a more generic form of other more specific verbs such as \"read\" and \"play\".",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "consume"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} consumed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/create.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/create.json b/streams-schemas/src/main/jsonschema/verbs/create.json
deleted file mode 100644
index c5ad298..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/create.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/create.json#",
-    "type": "object",
-    "title": "Create",
-    "description": "Indicates that the actor has created the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "create"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} created {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/delete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/delete.json b/streams-schemas/src/main/jsonschema/verbs/delete.json
deleted file mode 100644
index 544bf5d..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/delete.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/delete.json#",
-    "type": "object",
-    "title": "Delete",
-    "description": "Indicates that the actor has deleted the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "delete"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} deleted {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/deliver.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/deliver.json b/streams-schemas/src/main/jsonschema/verbs/deliver.json
deleted file mode 100644
index 4d3d2c1..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/deliver.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/deliver.json#",
-    "type": "object",
-    "title": "Deliver",
-    "description": "Indicates that the actor has delivered the object. For example, delivering a package.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "deliver"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} delivered {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/deny.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/deny.json b/streams-schemas/src/main/jsonschema/verbs/deny.json
deleted file mode 100644
index f880ad3..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/deny.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/deny.json#",
-    "type": "object",
-    "title": "Deny",
-    "description": "Indicates that the actor has denied the object. For example, a manager may deny a travel request.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "deny"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} denied {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/disagree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/disagree.json b/streams-schemas/src/main/jsonschema/verbs/disagree.json
deleted file mode 100644
index 17f0c4c..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/disagree.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/disagree.json#",
-    "type": "object",
-    "title": "Disagree",
-    "description": "Indicates that the actor disagrees with the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "disagree"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} disagrees with {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/dislike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/dislike.json b/streams-schemas/src/main/jsonschema/verbs/dislike.json
deleted file mode 100644
index 308d5eb..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/dislike.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/dislike.json#",
-    "type": "object",
-    "title": "Dislike",
-    "description": "Indicates that the actor dislikes the object. Note that the \"dislike\" verb is distinct from the \"unlike\" verb which assumes that the object had been previously \"liked\".",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "dislike"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} dislikes {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/experience.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/experience.json b/streams-schemas/src/main/jsonschema/verbs/experience.json
deleted file mode 100644
index 543ac2c..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/experience.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/experience.json#",
-    "type": "object",
-    "title": "Experience",
-    "description": "Indicates that the actor has experienced the object in some manner. Note that, depending on the specific object types used for both the actor and object, the meaning of this verb can overlap that of the \"consume\" and \"play\" verbs. For instance, a person might \"experience\" a movie; or \"play\" the movie; or \"consume\" the movie. The \"experience\" verb can be considered a more generic form of other more specific verbs as \"consume\", \"play\", \"watch\", \"listen\", and \"read\"",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "experience"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} experienced {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/favorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/favorite.json b/streams-schemas/src/main/jsonschema/verbs/favorite.json
deleted file mode 100644
index 17e2490..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/favorite.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/favorite.json#",
-    "type": "object",
-    "title": "Favorite",
-    "description": "Indicates that the actor marked the object as an item of special interest.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "favorite"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} marked {object.displayName} as a favorite"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/find.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/find.json b/streams-schemas/src/main/jsonschema/verbs/find.json
deleted file mode 100644
index 79ebbe8..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/find.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/find.json#",
-    "type": "object",
-    "title": "Find",
-    "description": "Indicates that the actor has found the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "find"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} found {object.displayName}."
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json b/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json
deleted file mode 100644
index f7b5785..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/flag-as-inappropriate.json#",
-    "type": "object",
-    "title": "Flag-As-Inappropriate",
-    "description": "Indicates that the actor has flagged the object as being inappropriate for some reason. When using this verb, the context property can be used to provide additional detail about why the object has been flagged.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "flag-as-inappropriate"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} flagged {object.displayName} as inappropriate."
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/follow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/follow.json b/streams-schemas/src/main/jsonschema/verbs/follow.json
deleted file mode 100644
index 2a922f9..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/follow.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/follow.json#",
-    "type": "object",
-    "title": "Follow",
-    "description": "Indicates that the actor began following the activity of the object. In most cases, the objectType will be a \"person\", but it can potentially be of any type that can sensibly generate activity. Processors MAY ignore (silently drop) successive identical \"follow\" activities.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "follow"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} started following {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/give.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/give.json b/streams-schemas/src/main/jsonschema/verbs/give.json
deleted file mode 100644
index 952fa59..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/give.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/give.json#",
-    "type": "object",
-    "title": "Give",
-    "description": "Indicates that the actor is giving an object to the target. Examples include one person giving a badge object to another person. The object identifies the object being given. The target identifies the receiver.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "give"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} gave {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/host.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/host.json b/streams-schemas/src/main/jsonschema/verbs/host.json
deleted file mode 100644
index 9661abe..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/host.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/host.json#",
-    "type": "object",
-    "title": "Host",
-    "description": "Indicates that the actor is hosting the object. As in hosting an event, or hosting a service.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "host"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} is hosting {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/ignore.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/ignore.json b/streams-schemas/src/main/jsonschema/verbs/ignore.json
deleted file mode 100644
index ae0ea6a..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/ignore.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/ignore.json#",
-    "type": "object",
-    "title": "Ignore",
-    "description": "Indicates that the actor has ignored the object. For instance, this verb may be used when an actor has ignored a friend request, in which case the object may be the request-friend activity.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "ignore"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} ignored {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/insert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/insert.json b/streams-schemas/src/main/jsonschema/verbs/insert.json
deleted file mode 100644
index 8dcd756..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/insert.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/insert.json#",
-    "type": "object",
-    "title": "Insert",
-    "description": "Indicates that the actor has inserted the object into the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "insert"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} inserted {object.displayName} into {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/install.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/install.json b/streams-schemas/src/main/jsonschema/verbs/install.json
deleted file mode 100644
index 6b270fa..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/install.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/install.json#",
-    "type": "object",
-    "title": "Install",
-    "description": "Indicates that the actor has installed the object, as in installing an application.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "install"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} installed {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/interact.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/interact.json b/streams-schemas/src/main/jsonschema/verbs/interact.json
deleted file mode 100644
index 5098ee3..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/interact.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/interact.json#",
-    "type": "object",
-    "title": "Interact",
-    "description": "Indicates that the actor has interacted with the object. For instance, when one person interacts with another.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "interact"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} interacted with {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/invite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/invite.json b/streams-schemas/src/main/jsonschema/verbs/invite.json
deleted file mode 100644
index 625a170..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/invite.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/invite.json#",
-    "type": "object",
-    "title": "Invite",
-    "description": "Indicates that the actor has invited the object, typically a person object, to join or participate in the object described by the target. The target could, for instance, be an event, group or a service.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "invite"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} invited {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/join.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/join.json b/streams-schemas/src/main/jsonschema/verbs/join.json
deleted file mode 100644
index 5276072..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/join.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/join.json#",
-    "type": "object",
-    "title": "Join",
-    "description": "Indicates that the actor has become a member of the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "join"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} joined {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/leave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/leave.json b/streams-schemas/src/main/jsonschema/verbs/leave.json
deleted file mode 100644
index 9995099..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/leave.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/leave.json#",
-    "type": "object",
-    "title": "Leave",
-    "description": "Indicates that the actor has left the object. For instance, a Person leaving a Group or checking-out of a Place.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "leave"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} left {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/like.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/like.json b/streams-schemas/src/main/jsonschema/verbs/like.json
deleted file mode 100644
index d583305..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/like.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/like.json#",
-    "type": "object",
-    "title": "Like",
-    "description": "Indicates that the actor marked the object as an item of special interest.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "like"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} likes {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/listen.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/listen.json b/streams-schemas/src/main/jsonschema/verbs/listen.json
deleted file mode 100644
index 9982ac6..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/listen.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/listen.json#",
-    "type": "object",
-    "title": "Listen",
-    "description": "Indicates that the actor has listened to the object. This is typically only applicable for objects representing audio content, such as music, an audio-book, or a radio broadcast.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "listen"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} listened to {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/lose.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/lose.json b/streams-schemas/src/main/jsonschema/verbs/lose.json
deleted file mode 100644
index 1d959a4..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/lose.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/lose.json#",
-    "type": "object",
-    "title": "Lose",
-    "description": "Indicates that the actor has lost the object. For instance, if a person loses a game.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "lose"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} lost {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/make-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/make-friend.json b/streams-schemas/src/main/jsonschema/verbs/make-friend.json
deleted file mode 100644
index 141aba7..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/make-friend.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/make-friend.json#",
-    "type": "object",
-    "title": "Befriend",
-    "description": "Indicates the creation of a friendship that is reciprocated by the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "make-friend"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} is now friends with {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/open.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/open.json b/streams-schemas/src/main/jsonschema/verbs/open.json
deleted file mode 100644
index 6c06529..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/open.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/open.json#",
-    "type": "object",
-    "title": "Open",
-    "description": "Indicates that the actor has opened the object. For instance, the object could represent a ticket being tracked in an issue management system.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "open"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} opened {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/play.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/play.json b/streams-schemas/src/main/jsonschema/verbs/play.json
deleted file mode 100644
index 115ac11..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/play.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/play.json#",
-    "type": "object",
-    "title": "Play",
-    "description": "Indicates that the actor spent some time enjoying the object. For example, if the object is a video this indicates that the subject watched all or part of the video.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "play"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} played {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/post.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/post.json b/streams-schemas/src/main/jsonschema/verbs/post.json
deleted file mode 100644
index 20a5feb..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/post.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/post.json#",
-    "type": "object",
-    "title": "Post",
-    "description": "To publish an object",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "post"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} posted {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/present.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/present.json b/streams-schemas/src/main/jsonschema/verbs/present.json
deleted file mode 100644
index 0cf7154..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/present.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/present.json#",
-    "type": "object",
-    "title": "Present",
-    "description": "Indicates that the actor has presented the object. For instance, when a person gives a presentation at a conference.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "present"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} presented {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/purchase.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/purchase.json b/streams-schemas/src/main/jsonschema/verbs/purchase.json
deleted file mode 100644
index e867ad9..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/purchase.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/purchase.json#",
-    "type": "object",
-    "title": "Purchase",
-    "description": "Indicates that the actor has purchased the object. If a target is specified, in indicates the entity from which the object was purchased.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "purchase"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} purchased {object.displayName} from {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/qualify.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/qualify.json b/streams-schemas/src/main/jsonschema/verbs/qualify.json
deleted file mode 100644
index 8bc5248..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/qualify.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/qualify.json#",
-    "type": "object",
-    "title": "Qualify",
-    "description": "Indicates that the actor has qualified for the object. If a target is specified, it indicates the context within which the qualification applies.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "qualify"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} qualified {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/read.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/read.json b/streams-schemas/src/main/jsonschema/verbs/read.json
deleted file mode 100644
index 2776a4e..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/read.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/read.json#",
-    "type": "object",
-    "title": "Read",
-    "description": "Indicates that the actor read the object. This is typically only applicable for objects representing printed or written content, such as a book, a message or a comment.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "read"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} read {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/receive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/receive.json b/streams-schemas/src/main/jsonschema/verbs/receive.json
deleted file mode 100644
index da88b34..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/receive.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/receive.json#",
-    "type": "object",
-    "title": "Receive",
-    "description": "Indicates that the actor is receiving an object. Examples include a person receiving a badge object. The object identifies the object being received.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "receive"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} received {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/reject.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/reject.json b/streams-schemas/src/main/jsonschema/verbs/reject.json
deleted file mode 100644
index d8a8bb4..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/reject.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/reject.json#",
-    "type": "object",
-    "title": "Reject",
-    "description": "Indicates that the actor has rejected the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "reject"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} rejected {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/remove-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/remove-friend.json b/streams-schemas/src/main/jsonschema/verbs/remove-friend.json
deleted file mode 100644
index 84f6b78..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/remove-friend.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/remove-friend.json#",
-    "type": "object",
-    "title": "UnFriend",
-    "description": "Indicates that the actor has removed the object from the collection of friends.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "remove-friend"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} removed friend {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/remove.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/remove.json b/streams-schemas/src/main/jsonschema/verbs/remove.json
deleted file mode 100644
index 367da5d..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/remove.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/remove.json#",
-    "type": "object",
-    "title": "Remove",
-    "description": "Indicates that the actor has removed the object from the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "remove"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} removed {object.displayName} from {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/replace.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/replace.json b/streams-schemas/src/main/jsonschema/verbs/replace.json
deleted file mode 100644
index 418ea94..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/replace.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/replace.json#",
-    "type": "object",
-    "title": "Replace",
-    "description": "Indicates that the actor has replaced the target with the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "replace"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} replaced {target.displayName} with {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/request-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/request-friend.json b/streams-schemas/src/main/jsonschema/verbs/request-friend.json
deleted file mode 100644
index 51333e2..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/request-friend.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/request-friend.json#",
-    "type": "object",
-    "title": "RequestFriend",
-    "description": "Indicates the creation of a friendship that has not yet been reciprocated by the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "request-friend"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} sent a friend request to {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/request.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/request.json b/streams-schemas/src/main/jsonschema/verbs/request.json
deleted file mode 100644
index f15104c..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/request.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/request.json#",
-    "type": "object",
-    "title": "Request",
-    "description": "Indicates that the actor has requested the object. If a target is specified, it indicates the entity from which the object is being requested.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "request"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} requested {object.displayName} from {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/resolve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/resolve.json b/streams-schemas/src/main/jsonschema/verbs/resolve.json
deleted file mode 100644
index 2b8365d..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/resolve.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/resolve.json#",
-    "type": "object",
-    "title": "Resolve",
-    "description": "Indicates that the actor has resolved the object. For instance, the object could represent a ticket being tracked in an issue management system.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "resolve"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} resolved {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/retract.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/retract.json b/streams-schemas/src/main/jsonschema/verbs/retract.json
deleted file mode 100644
index 8ddbcbc..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/retract.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/retract.json#",
-    "type": "object",
-    "title": "Retract",
-    "description": "Indicates that the actor has retracted the object. For instance, if an actor wishes to retract a previously published activity, the object would be the previously published activity that is being retracted.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "retract"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} retracted {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/return.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/return.json b/streams-schemas/src/main/jsonschema/verbs/return.json
deleted file mode 100644
index 40426cf..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/return.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/return.json#",
-    "type": "object",
-    "title": "Return",
-    "description": "Indicates that the actor has returned the object. If a target is specified, it indicates the entity to which the object was returned.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "return"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} returned {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json b/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json
deleted file mode 100644
index 6e9e8f5..0000000
--- a/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/rsvp-maybe.json#",
-    "type": "object",
-    "title": "Rsvp Maybe",
-    "description": "To indicate that the actor may attend an event",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "rsvp-maybe"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} might attend {object.displayName}"
-        }
-    }
-}



[12/32] incubator-streams git commit: re-enable hive plugin

Posted by sb...@apache.org.
re-enable hive plugin


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/02dc8efc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/02dc8efc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/02dc8efc

Branch: refs/feature/STREAMS-389,398
Commit: 02dc8efc6615142cce4d3ddd62d28c1972c82855
Parents: 9618ada
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Tue May 3 16:33:47 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Tue May 3 16:33:47 2016 -0500

----------------------------------------------------------------------
 streams-plugins/pom.xml | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02dc8efc/streams-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/pom.xml b/streams-plugins/pom.xml
index 390c8a0..b90e2d5 100644
--- a/streams-plugins/pom.xml
+++ b/streams-plugins/pom.xml
@@ -36,6 +36,7 @@
     </properties>
 
     <modules>
+        <module>streams-plugin-hive</module>
         <module>streams-plugin-pojo</module>
  	</modules>
 


[03/32] incubator-streams git commit: rename Hive Generator

Posted by sb...@apache.org.
rename Hive Generator


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/6501b27c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/6501b27c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/6501b27c

Branch: refs/feature/STREAMS-389,398
Commit: 6501b27cdc148e5044b893197b5dc38d34aa8aeb
Parents: 1c78ecc
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Mon Mar 28 08:32:19 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Mon Mar 28 08:32:19 2016 -0500

----------------------------------------------------------------------
 .../streams/plugins/StreamsHiveResourceGenerator.java     | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6501b27c/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java
index 4edacf0..1efb15e 100644
--- a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java
@@ -27,15 +27,14 @@ public class StreamsHiveResourceGenerator implements Runnable {
 
     private final static String LS = System.getProperty("line.separator");
 
-    private StreamsPojoHiveMojo mojo;
+    private StreamsHiveResourceGeneratorMojo mojo;
 
     String inDir = "./target/test-classes/activities";
     String outDir = "./target/generated-sources/hive";
-    String packages[] = {"org.apache.streams.pojo.json"};
 
     public void main(String[] args) {
         StreamsHiveResourceGenerator streamsHiveResourceGenerator = new StreamsHiveResourceGenerator();
-        Thread thread = new Thread(streamsPojoScala);
+        Thread thread = new Thread(streamsHiveResourceGenerator);
         thread.start();
         try {
             thread.join();
@@ -47,7 +46,7 @@ public class StreamsHiveResourceGenerator implements Runnable {
         return;
     }
 
-    public StreamsHiveResourceGenerator(StreamsPojoHiveMojo mojo) {
+    public StreamsHiveResourceGenerator(StreamsHiveResourceGeneratorMojo mojo) {
         this.mojo = mojo;
         if (    mojo != null &&
                 mojo.getTarget() != null &&
@@ -67,6 +66,9 @@ public class StreamsHiveResourceGenerator implements Runnable {
 
     public void run() {
 
+        List<File> schemaFiles;
+
+
         List<Class<?>> serializableClasses = detectSerializableClasses();
 
         LOGGER.info("Detected {} serialiables:", serializableClasses.size());


[10/32] incubator-streams git commit: STREAMS-398 - pojo generation

Posted by sb...@apache.org.
STREAMS-398 - pojo generation

code and plugin for generating POJOs now resides in streams-project
unit testing for generating POJOs without maven
unit testing for generating POJOs with maven


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/bf31cbe0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/bf31cbe0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/bf31cbe0

Branch: refs/feature/STREAMS-389,398
Commit: bf31cbe000b950cb07298d7dbc735726d4b91e3d
Parents: 02b5add
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Thu Apr 21 11:42:44 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Thu Apr 21 11:42:44 2016 -0500

----------------------------------------------------------------------
 pom.xml                                         |   1 +
 streams-plugins/streams-plugin-pojo/pom.xml     |  28 ++-
 .../plugins/StreamsPojoGenerationConfig.java    | 230 ++++---------------
 .../plugins/StreamsPojoSourceGenerator.java     |  98 ++++++++
 .../plugins/StreamsPojoSourceGeneratorMojo.java |  80 +++----
 .../StreamsPojoSourceGeneratorMojoTest.java     |  96 ++++++++
 .../test/StreamsPojoSourceGeneratorTest.java    |  43 +++-
 .../test/resources/streams-plugin-pojo/pom.xml  |  90 +++++++-
 streams-pojo/pom.xml                            |   6 +
 9 files changed, 421 insertions(+), 251 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/bf31cbe0/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b284ae2..30ec5e7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,6 +177,7 @@
         <module>streams-pojo-extensions</module>
         <module>streams-plugins</module>
         <module>streams-runtimes</module>
+        <module>streams-schemas</module>
         <module>streams-testing</module>
         <module>streams-util</module>
         <module>streams-verbs</module>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/bf31cbe0/streams-plugins/streams-plugin-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/pom.xml b/streams-plugins/streams-plugin-pojo/pom.xml
index 399a371..d7210c8 100644
--- a/streams-plugins/streams-plugin-pojo/pom.xml
+++ b/streams-plugins/streams-plugin-pojo/pom.xml
@@ -43,8 +43,14 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
             <groupId>org.jsonschema2pojo</groupId>
             <artifactId>jsonschema2pojo-core</artifactId>
+            <version>0.4.10</version>
             <exclusions>
                 <exclusion>
                     <groupId>commons-logging</groupId>
@@ -55,6 +61,7 @@
         <dependency>
             <groupId>org.jsonschema2pojo</groupId>
             <artifactId>jsonschema2pojo-maven-plugin</artifactId>
+            <version>0.4.10</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
@@ -86,6 +93,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.apache.maven.shared</groupId>
+            <artifactId>maven-verifier</artifactId>
+            <version>1.6</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-core</artifactId>
             <version>3.3.3</version>
@@ -216,19 +229,20 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-dependency-plugin</artifactId>
-                <version>2.4</version>
+                <configuration>
+                    <includes>**/*.json</includes>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <includeGroupIds>org.apache.streams</includeGroupIds>
+                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeTypes>jar,test-jar</includeTypes>
+                </configuration>
                 <executions>
                     <execution>
-                        <id>resource-dependencies</id>
+                        <id>test-resource-dependencies</id>
                         <phase>process-test-resources</phase>
                         <goals>
                             <goal>unpack-dependencies</goal>
                         </goals>
-                        <configuration>
-                            <includeArtifactIds>streams-pojo</includeArtifactIds>
-                            <includes>**/*.json</includes>
-                            <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
-                        </configuration>
                     </execution>
                 </executions>
             </plugin>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/bf31cbe0/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java
index b42ccf9..4c1f850 100644
--- a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java
+++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java
@@ -2,197 +2,67 @@ package org.apache.streams.plugins;
 
 import org.jsonschema2pojo.AnnotationStyle;
 import org.jsonschema2pojo.Annotator;
+import org.jsonschema2pojo.DefaultGenerationConfig;
 import org.jsonschema2pojo.GenerationConfig;
 import org.jsonschema2pojo.SourceType;
 import org.jsonschema2pojo.rules.RuleFactory;
+import org.jsonschema2pojo.util.URLUtil;
 
 import java.io.File;
 import java.io.FileFilter;
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
+import java.util.List;
 
 /**
  * Created by sblackmon on 3/27/16.
  */
-public class StreamsPojoGenerationConfig implements GenerationConfig {
+public class StreamsPojoGenerationConfig extends DefaultGenerationConfig {
+
+    private String sourceDirectory;
+    private List<String> sourcePaths;
+    private String targetPackage;
+    private String targetDirectory;
+
+    public void setSourceDirectory(String sourceDirectory) {
+        this.sourceDirectory = sourceDirectory;
+    }
+
+    public void setSourcePaths(List<String> sourcePaths) {
+        this.sourcePaths = sourcePaths;
+    }
+
+    public void setTargetPackage(String targetPackage) {
+        this.targetPackage = targetPackage;
+    }
+
+    public void setTargetDirectory(String targetDirectory) {
+        this.targetDirectory = targetDirectory;
+    }
+
+    @Override
+    public String getTargetPackage() {
+        return targetPackage;
+    }
+
+    @Override
+    public File getTargetDirectory() {
+        return new File(targetDirectory);
+    }
+
+    @Override
+    public Iterator<URL> getSource() {
+        if (null != sourceDirectory) {
+            return Collections.singleton(URLUtil.parseURL(sourceDirectory)).iterator();
+        }
+        List<URL> sourceURLs = new ArrayList<URL>();
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            for (String source : sourcePaths) {
+                sourceURLs.add(URLUtil.parseURL(source));
+            }
+        return sourceURLs.iterator();
+    }
 
-        @Override
-        public boolean isGenerateBuilders() {
-            return false;
-        }
-
-        @Override
-        public boolean isUsePrimitives() {
-            return false;
-        }
-
-        @Override
-        public Iterator<URL> getSource() {
-            return null;
-        }
-
-        @Override
-        public File getTargetDirectory() {
-            return null;
-        }
-
-        @Override
-        public String getTargetPackage() {
-            return null;
-        }
-
-        @Override
-        public char[] getPropertyWordDelimiters() {
-            return new char[0];
-        }
-
-        @Override
-        public boolean isUseLongIntegers() {
-            return false;
-        }
-
-        @Override
-        public boolean isUseDoubleNumbers() {
-            return false;
-        }
-
-        @Override
-        public boolean isUseBigDecimals() {
-            return false;
-        }
-
-        @Override
-        public boolean isIncludeHashcodeAndEquals() {
-            return false;
-        }
-
-        @Override
-        public boolean isIncludeToString() {
-            return false;
-        }
-
-        @Override
-        public AnnotationStyle getAnnotationStyle() {
-            return null;
-        }
-
-        @Override
-        public Class<? extends Annotator> getCustomAnnotator() {
-            return null;
-        }
-
-        @Override
-        public Class<? extends RuleFactory> getCustomRuleFactory() {
-            return null;
-        }
-
-        @Override
-        public boolean isIncludeJsr303Annotations() {
-            return false;
-        }
-
-        @Override
-        public SourceType getSourceType() {
-            return null;
-        }
-
-        @Override
-        public boolean isRemoveOldOutput() {
-            return false;
-        }
-
-        @Override
-        public String getOutputEncoding() {
-            return null;
-        }
-
-        @Override
-        public boolean isUseJodaDates() {
-            return false;
-        }
-
-        @Override
-        public boolean isUseJodaLocalDates() {
-            return false;
-        }
-
-        @Override
-        public boolean isUseJodaLocalTimes() {
-            return false;
-        }
-
-        @Override
-        public boolean isUseCommonsLang3() {
-            return false;
-        }
-
-        @Override
-        public boolean isParcelable() {
-            return false;
-        }
-
-        @Override
-        public FileFilter getFileFilter() {
-            return null;
-        }
-
-        @Override
-        public boolean isInitializeCollections() {
-            return false;
-        }
-
-        @Override
-        public String getClassNamePrefix() {
-            return null;
-        }
-
-        @Override
-        public String getClassNameSuffix() {
-            return null;
-        }
-
-        @Override
-        public boolean isIncludeConstructors() {
-            return false;
-        }
-
-        @Override
-        public boolean isConstructorsRequiredPropertiesOnly() {
-            return false;
-        }
-
-        @Override
-        public boolean isIncludeAdditionalProperties() {
-            return false;
-        }
-
-        @Override
-        public boolean isIncludeAccessors() {
-            return false;
-        }
-
-        @Override
-        public String getTargetVersion() {
-            return null;
-        }
-
-        @Override
-        public boolean isIncludeDynamicAccessors() {
-            return false;
-        }
-
-        @Override
-        public String getDateTimeType() {
-            return null;
-        }
-
-        @Override
-        public String getDateType() {
-            return null;
-        }
-
-        @Override
-        public String getTimeType() {
-            return null;
-        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/bf31cbe0/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
new file mode 100644
index 0000000..d80123d
--- /dev/null
+++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
@@ -0,0 +1,98 @@
+package org.apache.streams.plugins;
+
+import com.google.common.base.Preconditions;
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.jsonschema2pojo.Jsonschema2Pojo;
+import org.jsonschema2pojo.maven.ProjectClasspath;
+import org.jsonschema2pojo.util.URLUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import static org.apache.commons.lang.StringUtils.isNotBlank;
+
+/**
+ * Created by sblackmon on 4/20/16.
+ */
+public class StreamsPojoSourceGenerator implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoSourceGenerator.class);
+
+    private final static String LS = System.getProperty("line.separator");
+
+    private StreamsPojoSourceGeneratorMojo mojo;
+
+    private StreamsPojoGenerationConfig config;
+
+    public void main(String[] args) {
+        StreamsPojoGenerationConfig config = new StreamsPojoGenerationConfig();
+
+        String sourceDirectory = "./target/test-classes/activities";
+        String targetDirectory = "./target/generated-sources/streams-plugin-pojo";
+        String targetPackage = "";
+
+        if( args.length > 0 )
+            sourceDirectory = args[0];
+        if( args.length > 1 )
+            targetDirectory = args[1];
+        if( args.length > 2 )
+            targetPackage = args[2];
+
+        config.setSourceDirectory(sourceDirectory);
+        config.setTargetPackage(targetPackage);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator(config);
+        Thread thread = new Thread(streamsPojoSourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public StreamsPojoSourceGenerator(StreamsPojoGenerationConfig config) {
+        this.config = config;
+    }
+
+    @Override
+    public void run() {
+
+        Preconditions.checkNotNull(config);
+
+        try {
+            Jsonschema2Pojo.generate(config);
+        } catch (Throwable e) {
+            LOGGER.error("{} {}", e.getClass(), e.getMessage());
+        }
+    }
+
+
+
+    private void writeFile(String pojoFile, String pojoHive) {
+        try {
+            File path = new File(pojoFile);
+            File dir = path.getParentFile();
+            if( !dir.exists() )
+                dir.mkdirs();
+            Files.write(Paths.get(pojoFile), pojoHive.getBytes(), StandardOpenOption.CREATE_NEW);
+        } catch (Exception e) {
+            LOGGER.error("Write Exception: {}", e);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/bf31cbe0/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
index 8980daa..9d595fe 100644
--- a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
+++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
@@ -29,10 +29,10 @@ import java.util.List;
 
 import static org.apache.commons.lang.StringUtils.isNotBlank;
 
-@Mojo(  name = "hive",
+@Mojo(  name = "pojo",
         defaultPhase = LifecyclePhase.GENERATE_SOURCES
 )
-@Execute(   goal = "hive",
+@Execute(   goal = "pojo",
             phase = LifecyclePhase.GENERATE_SOURCES
 )
 public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
@@ -55,45 +55,42 @@ public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
     @Parameter( defaultValue = "${project.basedir}", readonly = true )
     public File basedir;
 
-    @Parameter( defaultValue = "${jsonschema2pojo.sourceDirectory}", readonly = true ) // Maven 3 only
+    @Parameter( defaultValue = "./src/main/jsonschema", readonly = true ) // Maven 3 only
     public String sourceDirectory;
 
-    @Parameter( defaultValue = "${jsonschema2pojo.sourcePaths}", readonly = true ) // Maven 3 only
-    public String[] sourcePaths;
+    @Parameter( readonly = true ) // Maven 3 only
+    public List<String> sourcePaths;
 
-    @Parameter(defaultValue = "${project.build.directory}", readonly = true)
-    public File target;
+    @Parameter(defaultValue = "./target/generated-sources/streams-plugin-pojo", readonly = true)
+    public String targetDirectory;
+
+    @Parameter(readonly = true)
+    public String targetPackage;
 
     public void execute() throws MojoExecutionException {
 
         addProjectDependenciesToClasspath();
 
-        // verify source directories
-        if (isNotBlank(sourceDirectory)) {
-            // verify sourceDirectory
-            try {
-                URLUtil.parseURL(sourceDirectory);
-            } catch (IllegalArgumentException e) {
-                throw new MojoExecutionException(e.getMessage(), e);
-            }
-        } else if (sourcePaths != null) {
-            // verify individual source paths
-            for (String source : sourcePaths) {
-                try {
-                    URLUtil.parseURL(source);
-                } catch (IllegalArgumentException e) {
-                    throw new MojoExecutionException(e.getMessage(), e);
-                }
-            }
-        } else {
-            throw new MojoExecutionException("One of sourceDirectory or sourcePaths must be provided");
-        }
+        StreamsPojoGenerationConfig config = new StreamsPojoGenerationConfig();
 
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            config.setSourcePaths(sourcePaths);
+        else
+            config.setSourceDirectory(sourceDirectory);
+        config.setTargetPackage(targetPackage);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator(config);
+        Thread thread = new Thread(streamsPojoSourceGenerator);
+        thread.start();
         try {
-            Jsonschema2Pojo.generate(new StreamsPojoGenerationConfig());
-        } catch (IOException e) {
-            throw new MojoExecutionException("Error generating classes from JSON Schema file(s) " + sourceDirectory, e);
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
         }
+        return;
 
 //        List<Class<?>> serializableClasses = detectSerializableClasses();
 //
@@ -133,29 +130,6 @@ public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
 
     }
 
-    private void writeFile(String pojoFile, String pojoHive) {
-        try {
-            File path = new File(pojoFile);
-            File dir = path.getParentFile();
-            if( !dir.exists() )
-                dir.mkdirs();
-            Files.write(Paths.get(pojoFile), pojoHive.getBytes(), StandardOpenOption.CREATE_NEW);
-        } catch (Exception e) {
-            LOGGER.error("Write Exception: {}", e);
-        }
-    }
-
-    public Iterator<URL> getSource() {
-        if (null != sourceDirectory) {
-            return Collections.singleton(URLUtil.parseURL(sourceDirectory)).iterator();
-        }
-        List<URL> sourceURLs = new ArrayList<URL>();
-        for (String source : sourcePaths) {
-            sourceURLs.add(URLUtil.parseURL(source));
-        }
-        return sourceURLs.iterator();
-    }
-
 //    public List<Class<?>> detectSerializableClasses() {
 //
 //        Set<Class<? extends Serializable>> classes =

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/bf31cbe0/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
new file mode 100644
index 0000000..a99f059
--- /dev/null
+++ b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
@@ -0,0 +1,96 @@
+package org.apache.streams.plugins.test;
+
+import com.google.common.collect.Lists;
+import junit.framework.TestCase;
+import org.apache.maven.it.Verifier;
+import org.apache.maven.it.util.ResourceExtractor;
+import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.streams.plugins.StreamsPojoGenerationConfig;
+import org.apache.streams.plugins.StreamsPojoSourceGenerator;
+import org.apache.streams.plugins.StreamsPojoSourceGeneratorMojo;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Test that Activity beans are compatible with the example activities in the spec.
+ */
+public class StreamsPojoSourceGeneratorMojoTest extends TestCase {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoSourceGeneratorMojoTest.class);
+
+    protected void setUp() throws Exception
+    {
+        // required for mojo lookups to work
+        super.setUp();
+    }
+
+    /**
+     * Tests that streams-plugin-pojo running via maven can convert activity schemas into pojos
+     * which then compile.
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testStreamsPojoSourceGeneratorMojo() throws Exception {
+
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/streams-plugin-pojo" );
+
+        Verifier verifier;
+
+        verifier = new Verifier( testDir.getAbsolutePath() );
+
+        List cliOptions = new ArrayList();
+        cliOptions.add( "-N" );
+        verifier.executeGoals( Lists.<String>newArrayList(
+                "clean",
+                "dependency:unpack-dependencies",
+                "generate-sources",
+                "compile"));
+
+        verifier.verifyErrorFreeLog();
+
+        verifier.resetStreams();
+//
+//        File pom = getTestFile(  );
+//        assertNotNull( pom );
+//        assertTrue( pom.exists() );
+//
+//        StreamsPojoSourceGeneratorMojo myMojo = (StreamsPojoSourceGeneratorMojo)
+//                lookupMojo( "pojo", pom);
+//        assertNotNull( myMojo );
+//        myMojo.execute();
+//
+//        File testOutput = new File( "target/generated-sources/test-mojo");
+//        FileFilter javaFilter = new FileFilter() {
+//            @Override
+//            public boolean accept(File pathname) {
+//            if( pathname.getName().endsWith(".java") )
+//                return true;
+//            return false;
+//            }
+//        };
+//
+//        assert( testOutput != null );
+//        assert( testOutput.exists() == true );
+//        assert( testOutput.isDirectory() == true );
+//        assert( testOutput.listFiles(javaFilter).length == 11 );
+//        assert( new File(testOutput + "/traits").exists() == true );
+//        assert( new File(testOutput + "/traits").isDirectory() == true );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
+//        assert( new File(testOutput + "/objectTypes").exists() == true );
+//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
+//        assert( new File(testO`utput + "/verbs").exists() == true );
+//        assert( new File(testOutput + "/verbs").isDirectory() == true );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/bf31cbe0/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
index 63d4995..667661f 100644
--- a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
+++ b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
@@ -1,11 +1,15 @@
 package org.apache.streams.plugins.test;
 
+import com.google.common.collect.Lists;
+import org.apache.streams.plugins.StreamsPojoGenerationConfig;
+import org.apache.streams.plugins.StreamsPojoSourceGenerator;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.FileFilter;
+import java.util.List;
 
 /**
  * Test that Activity beans are compatible with the example activities in the spec.
@@ -21,23 +25,48 @@ public class StreamsPojoSourceGeneratorTest {
      */
     @Test
     public void testStreamsPojoSourceGenerator() throws Exception {
-//        StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator();
-//        StreamsPojoSourceGenerator.main(new String[0]);
 
-        File testOutput = new File( "./target/generated-sources/streams-pojo");
+        StreamsPojoGenerationConfig config = new StreamsPojoGenerationConfig();
+
+        List<String> sourcePaths = Lists.newArrayList(
+            "target/test-classes/streams-schemas/activity.json",
+            "target/test-classes/streams-schemas/collection.json",
+            "target/test-classes/streams-schemas/media_link.json",
+            "target/test-classes/streams-schemas/object.json",
+            "target/test-classes/streams-schemas/objectTypes",
+            "target/test-classes/streams-schemas/verbs"
+        );
+        config.setSourcePaths(sourcePaths);
+
+//        config.setSourceDirectory("target/test-classes/streams-schemas");
+        config.setTargetPackage("org.apache.streams.pojo.test");
+        config.setTargetDirectory("target/generated-sources/test");
+
+        StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator(config);
+        Thread thread = new Thread(streamsPojoSourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+
+        File testOutput = new File( "target/generated-sources/test");
         FileFilter javaFilter = new FileFilter() {
             @Override
             public boolean accept(File pathname) {
-                if( pathname.getName().endsWith(".java") )
-                    return true;
-                return false;
+            if( pathname.getName().endsWith(".java") )
+                return true;
+            return false;
             }
         };
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );
         assert( testOutput.isDirectory() == true );
-        assert( testOutput.listFiles(javaFilter).length == 11 );
+//        assert( testOutput.listFiles(javaFilter).length == 11 );
 //        assert( new File(testOutput + "/traits").exists() == true );
 //        assert( new File(testOutput + "/traits").isDirectory() == true );
 //        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/bf31cbe0/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml b/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
index fbb2864..359179e 100644
--- a/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
+++ b/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
@@ -9,12 +9,49 @@
     <packaging>jar</packaging>
     <name>Test StreamsPojoMojo</name>
 
+    <properties>
+        <jackson.version>2.6.1</jackson.version>
+        <commons-lang.version>2.6</commons-lang.version>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.datatype</groupId>
+            <artifactId>jackson-datatype-joda</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>${commons-lang.version}</version>
+        </dependency>
     </dependencies>
 
     <build>
@@ -24,10 +61,16 @@
                 <artifactId>streams-plugin-pojo</artifactId>
                 <version>0.3-incubating-SNAPSHOT</version>
                 <configuration>
-                    <packages>
-                        <package>org.apache.streams.pojo.json</package>
-                    </packages>
-                    <target>target/test-classes/streams-pojo-plugin/</target>
+                    <sourcePaths>
+                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                    </sourcePaths>
+                    <targetPackage>org.apache.streams.pojo.testmojo</targetPackage>
+                    <targetDirectory>target/generated-sources/test-mojo</targetDirectory>
                 </configuration>
                 <executions>
                     <execution>
@@ -37,6 +80,45 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.10</version>
+                <configuration>
+                    <includes>**/*.json</includes>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <includeGroupIds>org.apache.streams</includeGroupIds>
+                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeTypes>jar,test-jar</includeTypes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>unpack-schemas</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>add-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>target/generated-sources/test-mojo</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/bf31cbe0/streams-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-pojo/pom.xml b/streams-pojo/pom.xml
index 942156a..055b842 100644
--- a/streams-pojo/pom.xml
+++ b/streams-pojo/pom.xml
@@ -39,6 +39,12 @@
             <artifactId>jsonschema2pojo-core</artifactId>
             <type>jar</type>
             <scope>compile</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>


[24/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/leave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/leave.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/leave.json
new file mode 100644
index 0000000..9995099
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/leave.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/leave.json#",
+    "type": "object",
+    "title": "Leave",
+    "description": "Indicates that the actor has left the object. For instance, a Person leaving a Group or checking-out of a Place.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "leave"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} left {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/like.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/like.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/like.json
new file mode 100644
index 0000000..d583305
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/like.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/like.json#",
+    "type": "object",
+    "title": "Like",
+    "description": "Indicates that the actor marked the object as an item of special interest.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "like"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} likes {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/listen.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/listen.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/listen.json
new file mode 100644
index 0000000..9982ac6
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/listen.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/listen.json#",
+    "type": "object",
+    "title": "Listen",
+    "description": "Indicates that the actor has listened to the object. This is typically only applicable for objects representing audio content, such as music, an audio-book, or a radio broadcast.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "listen"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} listened to {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/lose.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/lose.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/lose.json
new file mode 100644
index 0000000..1d959a4
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/lose.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/lose.json#",
+    "type": "object",
+    "title": "Lose",
+    "description": "Indicates that the actor has lost the object. For instance, if a person loses a game.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "lose"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} lost {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/make-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/make-friend.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/make-friend.json
new file mode 100644
index 0000000..141aba7
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/make-friend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/make-friend.json#",
+    "type": "object",
+    "title": "Befriend",
+    "description": "Indicates the creation of a friendship that is reciprocated by the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "make-friend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is now friends with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/open.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/open.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/open.json
new file mode 100644
index 0000000..6c06529
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/open.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/open.json#",
+    "type": "object",
+    "title": "Open",
+    "description": "Indicates that the actor has opened the object. For instance, the object could represent a ticket being tracked in an issue management system.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "open"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} opened {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/play.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/play.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/play.json
new file mode 100644
index 0000000..115ac11
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/play.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/play.json#",
+    "type": "object",
+    "title": "Play",
+    "description": "Indicates that the actor spent some time enjoying the object. For example, if the object is a video this indicates that the subject watched all or part of the video.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "play"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} played {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/post.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/post.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/post.json
new file mode 100644
index 0000000..20a5feb
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/post.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/post.json#",
+    "type": "object",
+    "title": "Post",
+    "description": "To publish an object",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "post"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} posted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/present.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/present.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/present.json
new file mode 100644
index 0000000..0cf7154
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/present.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/present.json#",
+    "type": "object",
+    "title": "Present",
+    "description": "Indicates that the actor has presented the object. For instance, when a person gives a presentation at a conference.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "present"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} presented {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/purchase.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/purchase.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/purchase.json
new file mode 100644
index 0000000..e867ad9
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/purchase.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/purchase.json#",
+    "type": "object",
+    "title": "Purchase",
+    "description": "Indicates that the actor has purchased the object. If a target is specified, in indicates the entity from which the object was purchased.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "purchase"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} purchased {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/qualify.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/qualify.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/qualify.json
new file mode 100644
index 0000000..8bc5248
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/qualify.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/qualify.json#",
+    "type": "object",
+    "title": "Qualify",
+    "description": "Indicates that the actor has qualified for the object. If a target is specified, it indicates the context within which the qualification applies.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "qualify"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} qualified {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/read.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/read.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/read.json
new file mode 100644
index 0000000..2776a4e
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/read.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/read.json#",
+    "type": "object",
+    "title": "Read",
+    "description": "Indicates that the actor read the object. This is typically only applicable for objects representing printed or written content, such as a book, a message or a comment.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "read"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} read {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/receive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/receive.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/receive.json
new file mode 100644
index 0000000..da88b34
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/receive.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/receive.json#",
+    "type": "object",
+    "title": "Receive",
+    "description": "Indicates that the actor is receiving an object. Examples include a person receiving a badge object. The object identifies the object being received.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "receive"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} received {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/reject.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/reject.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/reject.json
new file mode 100644
index 0000000..d8a8bb4
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/reject.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/reject.json#",
+    "type": "object",
+    "title": "Reject",
+    "description": "Indicates that the actor has rejected the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "reject"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} rejected {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/remove-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/remove-friend.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/remove-friend.json
new file mode 100644
index 0000000..84f6b78
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/remove-friend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/remove-friend.json#",
+    "type": "object",
+    "title": "UnFriend",
+    "description": "Indicates that the actor has removed the object from the collection of friends.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "remove-friend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} removed friend {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/remove.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/remove.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/remove.json
new file mode 100644
index 0000000..367da5d
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/remove.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/remove.json#",
+    "type": "object",
+    "title": "Remove",
+    "description": "Indicates that the actor has removed the object from the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "remove"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} removed {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/replace.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/replace.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/replace.json
new file mode 100644
index 0000000..418ea94
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/replace.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/replace.json#",
+    "type": "object",
+    "title": "Replace",
+    "description": "Indicates that the actor has replaced the target with the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "replace"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} replaced {target.displayName} with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/request-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/request-friend.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/request-friend.json
new file mode 100644
index 0000000..51333e2
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/request-friend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/request-friend.json#",
+    "type": "object",
+    "title": "RequestFriend",
+    "description": "Indicates the creation of a friendship that has not yet been reciprocated by the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "request-friend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} sent a friend request to {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/request.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/request.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/request.json
new file mode 100644
index 0000000..f15104c
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/request.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/request.json#",
+    "type": "object",
+    "title": "Request",
+    "description": "Indicates that the actor has requested the object. If a target is specified, it indicates the entity from which the object is being requested.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "request"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} requested {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/resolve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/resolve.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/resolve.json
new file mode 100644
index 0000000..2b8365d
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/resolve.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/resolve.json#",
+    "type": "object",
+    "title": "Resolve",
+    "description": "Indicates that the actor has resolved the object. For instance, the object could represent a ticket being tracked in an issue management system.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "resolve"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} resolved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/retract.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/retract.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/retract.json
new file mode 100644
index 0000000..8ddbcbc
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/retract.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/retract.json#",
+    "type": "object",
+    "title": "Retract",
+    "description": "Indicates that the actor has retracted the object. For instance, if an actor wishes to retract a previously published activity, the object would be the previously published activity that is being retracted.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "retract"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} retracted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/return.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/return.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/return.json
new file mode 100644
index 0000000..40426cf
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/return.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/return.json#",
+    "type": "object",
+    "title": "Return",
+    "description": "Indicates that the actor has returned the object. If a target is specified, it indicates the entity to which the object was returned.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "return"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} returned {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-maybe.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-maybe.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-maybe.json
new file mode 100644
index 0000000..6e9e8f5
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-maybe.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/rsvp-maybe.json#",
+    "type": "object",
+    "title": "Rsvp Maybe",
+    "description": "To indicate that the actor may attend an event",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "rsvp-maybe"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} might attend {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-no.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-no.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-no.json
new file mode 100644
index 0000000..6339f1e
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-no.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/rsvp-no.json#",
+    "type": "object",
+    "title": "Rsvp No",
+    "description": "To indicate that the actor will not attend an event",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "rsvp-no"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} will not attend {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-yes.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-yes.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-yes.json
new file mode 100644
index 0000000..7fecc78
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/rsvp-yes.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/rsvp-yes.json#",
+    "type": "object",
+    "title": "Rsvp Yes",
+    "description": "To indicate that the actor will attend an event",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "rsvp-yes"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is attending {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/satisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/satisfy.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/satisfy.json
new file mode 100644
index 0000000..9c36006
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/satisfy.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/satisfy.json#",
+    "type": "object",
+    "title": "Satisfy",
+    "description": "Indicates that the actor has satisfied the object. If a target is specified, it indicate the context within which the object was satisfied. For instance, if a person satisfies the requirements for a particular challenge, the person is the actor; the requirement is the object; and the challenge is the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "satisfy"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} has satisfied {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/save.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/save.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/save.json
new file mode 100644
index 0000000..06ec16f
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/save.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/save.json#",
+    "type": "object",
+    "title": "Save",
+    "description": "Indicates that the actor has called out the object as being of interest primarily to him- or herself. Though this action MAY be shared publicly, the implication is that the object has been saved primarily for the actor's own benefit rather than to show it to others as would be indicated by the \"share\" verb.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "save"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} saved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/schedule.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/schedule.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/schedule.json
new file mode 100644
index 0000000..a42d955
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/schedule.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/schedule.json#",
+    "type": "object",
+    "title": "Schedule",
+    "description": "Indicates that the actor has scheduled the object. For instance, scheduling a meeting.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "schedule"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} scheduled {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/search.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/search.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/search.json
new file mode 100644
index 0000000..1cb8572
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/search.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/search.json#",
+    "type": "object",
+    "title": "Search",
+    "description": "Indicates that the actor is or has searched for the object. If a target is specified, it indicates the context within which the search is or has been conducted.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "search"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} search for {object.displayName} in {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/sell.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/sell.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/sell.json
new file mode 100644
index 0000000..4ec46b6
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/sell.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/sell.json#",
+    "type": "object",
+    "title": "Sell",
+    "description": "Indicates that the actor has sold the object. If a target is specified, it indicates the entity to which the object was sold.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "sell"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} sold {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/send.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/send.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/send.json
new file mode 100644
index 0000000..69f565c
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/send.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/send.json#",
+    "type": "object",
+    "title": "Send",
+    "description": "Indicates that the actor has sent the object to the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "send"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} sent {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/share.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/share.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/share.json
new file mode 100644
index 0000000..576f5fb
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/share.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/share.json#",
+    "type": "object",
+    "title": "Share",
+    "description": "To share an object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "share"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} shared {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/sponsor.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/sponsor.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/sponsor.json
new file mode 100644
index 0000000..55445b7
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/sponsor.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/sponsor.json#",
+    "type": "object",
+    "title": "Sponsor",
+    "description": "Indicates that the actor has sponsored the object. If a target is specified, it indicates the context within which the sponsorship is offered. For instance, a company can sponsor an event; or an individual can sponsor a project; etc.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "sponsor"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} sponsored {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/start.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/start.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/start.json
new file mode 100644
index 0000000..3e52c12
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/start.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/start.json#",
+    "type": "object",
+    "title": "Start",
+    "description": "Indicates that the actor has started the object. For instance, when a person starts a project.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "start"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} started {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/stop-following.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/stop-following.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/stop-following.json
new file mode 100644
index 0000000..cd7c521
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/stop-following.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/stop-following.json#",
+    "type": "object",
+    "title": "UnFollow",
+    "description": "Indicates that the actor has stopped following the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "stop-following"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} stopped following {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/submit.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/submit.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/submit.json
new file mode 100644
index 0000000..58582ee
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/submit.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/submit.json#",
+    "type": "object",
+    "title": "Submit",
+    "description": "Indicates that the actor has submitted the object. If a target is specified, it indicates the entity to which the object was submitted.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "submit"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} submitted {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/tag.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/tag.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/tag.json
new file mode 100644
index 0000000..6ed1632
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/tag.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/tag.json#",
+    "type": "object",
+    "title": "Tag",
+    "description": "Indicates that the actor has associated the object with the target. For example, if the actor specifies that a particular user appears in a photo. the object is the user and the target is the photo.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "tag"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} tagged {object.displayName} as {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/terminate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/terminate.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/terminate.json
new file mode 100644
index 0000000..9a4d94c
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/terminate.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/terminate.json#",
+    "type": "object",
+    "title": "Terminate",
+    "description": "Indicates that the actor has terminated the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "terminate"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} terminated {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/tie.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/tie.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/tie.json
new file mode 100644
index 0000000..6637fb9
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/tie.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/tie.json#",
+    "type": "object",
+    "title": "Tie",
+    "description": "Indicates that the actor has neither won or lost the object. This verb is generally only applicable when the object represents some form of competition, such as a game.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "tie"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} tied at {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unfavorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unfavorite.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unfavorite.json
new file mode 100644
index 0000000..2b642b4
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unfavorite.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unfavorite.json#",
+    "type": "object",
+    "title": "UnFavorite",
+    "description": "Indicates that the actor has removed the object from the collection of favorited items.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unfavorite"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} removed {object.displayName} as a favorite"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unlike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unlike.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unlike.json
new file mode 100644
index 0000000..db0b7bc
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unlike.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unlike.json#",
+    "type": "object",
+    "title": "UnLike",
+    "description": "Indicates that the actor has removed the object from the collection of liked items.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unlike"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} no longer likes {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unsatisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unsatisfy.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unsatisfy.json
new file mode 100644
index 0000000..381818a
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unsatisfy.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unsatisfy.json#",
+    "type": "object",
+    "title": "UnSatisfy",
+    "description": "Indicates that the actor has not satisfied the object. If a target is specified, it indicates the context within which the object was not satisfied. For instance, if a person fails to satisfy the requirements of some particular challenge, the person is the actor; the requirement is the object and the challenge is the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unsatisfy"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} has not satisfied {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unsave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unsave.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unsave.json
new file mode 100644
index 0000000..09f7123
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unsave.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unsave.json#",
+    "type": "object",
+    "title": "UnSave",
+    "description": "Indicates that the actor has removed the object from the collection of saved items.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unsave"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} unsaved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unshare.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unshare.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unshare.json
new file mode 100644
index 0000000..9aceb25
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/unshare.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/unshare.json#",
+    "type": "object",
+    "title": "UnSave",
+    "description": "Indicates that the actor is no longer sharing the object. If a target is specified, it indicates the entity with whom the object is no longer being shared.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unshare"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is no longer sharing {object.displayName} with {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/update.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/update.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/update.json
new file mode 100644
index 0000000..4272bb4
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/update.json
@@ -0,0 +1,34 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/update.json#",
+    "type": "object",
+    "title": "Update",
+    "description": "The \"update\" verb indicates that the actor has modified the object. Use of the \"update\" verb is generally reserved to indicate modifications to existing objects or data such as changing an existing user's profile information.",
+    "notes": "The new property value can be a scalar value or an object. See the property object type",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "update"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} updated {target.displayName}'s {object.displayName} to {object.value}"
+        },
+        "object": {
+            "type": "object",
+            "$ref": "../object.json"
+        },
+        "target": {
+            "type": "object",
+            "optional": true,
+            "$ref": "../object.json"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/use.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/use.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/use.json
new file mode 100644
index 0000000..26c69a6
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/use.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/use.json#",
+    "type": "object",
+    "title": "Use",
+    "description": "Indicates that the actor has used the object in some manner.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "use"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} used {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/watch.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/watch.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/watch.json
new file mode 100644
index 0000000..08d7eb0
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/watch.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/watch.json#",
+    "type": "object",
+    "title": "Watch",
+    "description": "Indicates that the actor has watched the object. This verb is typically applicable only when the object represents dynamic, visible content such as a movie, a television show or a public performance.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "watch"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} watched {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/win.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/win.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/win.json
new file mode 100644
index 0000000..baedbaa
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/win.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/win.json#",
+    "type": "object",
+    "title": "Win",
+    "description": "Indicates that the actor has won the object.  For instance, if a person wins a game.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "win"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} won {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/xmlschema/activity.xsd
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/xmlschema/activity.xsd b/streams-schemas/streams-schema-activitystreams/src/main/xmlschema/activity.xsd
new file mode 100644
index 0000000..1d81b44
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/xmlschema/activity.xsd
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ 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
+  ~
+  ~   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.
+  -->
+
+<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+    <xs:element name="id" type="xs:string"/>
+    <xs:element name="actor" type="objectType"/>
+    <xs:element name="verb" type="verbType"/>
+    <xs:element name="object" type="objectType"/>
+    <xs:element name="target" type="objectType"/>
+    <xs:element name="object-type" type="xs:string"/>
+    <xs:element name="published" type="xs:dateTime"/>
+    <xs:element name="updated" type="xs:dateTime"/>
+    <xs:element name="provider" type="objectType"/>
+    <xs:element name="title" type="xs:string"/>
+    <xs:element name="content" type="xs:string"/>
+    <xs:element name="url" type="xs:string"/>
+
+    <xs:simpleType name="verbType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="favorite"/>
+            <xs:enumeration value="follow"/>
+            <xs:enumeration value="join"/>
+            <xs:enumeration value="like"/>
+            <xs:enumeration value="make-friend"/>
+            <xs:enumeration value="play"/>
+            <xs:enumeration value="post"/>
+            <xs:enumeration value="rsvp-yes"/>
+            <xs:enumeration value="rsvp-no"/>
+            <xs:enumeration value="rsvp-maybe"/>
+            <xs:enumeration value="save"/>
+            <xs:enumeration value="share"/>
+            <xs:enumeration value="tag"/>
+            <xs:enumeration value="update"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:complexType name="objectType">
+        <xs:sequence>
+            <xs:element name="id" type="xs:string"/>
+            <xs:element name="image" type="mediaLink"/>
+            <xs:element name="displayName" type="xs:string"/>
+            <xs:element name="summary" type="xs:string"/>
+            <xs:element name="content" type="xs:string"/>
+            <xs:element name="url" type="xs:string"/>
+            <xs:element name="published" type="xs:string"/>
+            <xs:element name="updated" type="xs:string"/>
+            <xs:element name="object-type" >
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="article"/>
+                        <xs:enumeration value="audio"/>
+                        <xs:enumeration value="badge"/>
+                        <xs:enumeration value="collection"/>
+                        <xs:enumeration value="comment"/>
+                        <xs:enumeration value="course"/>
+                        <xs:enumeration value="file"/>
+                        <xs:enumeration value="image"/>
+                        <xs:enumeration value="person"/>
+                        <xs:enumeration value="review"/>
+                        <xs:enumeration value="service"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+        </xs:sequence>
+
+    </xs:complexType>
+
+    <xs:complexType name="mediaLink">
+        <xs:sequence>
+            <xs:element name="duration" type="xs:positiveInteger"/>
+            <xs:element name="height" type="xs:positiveInteger"/>
+            <xs:element name="width" type="xs:positiveInteger"/>
+            <xs:element name="url" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+</xs:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/pom.xml
----------------------------------------------------------------------
diff --git a/streams-util/pom.xml b/streams-util/pom.xml
index e71bce0..ca6b928 100644
--- a/streams-util/pom.xml
+++ b/streams-util/pom.xml
@@ -34,28 +34,53 @@
 
     <dependencies>
         <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
         </dependency>
         <dependency>
             <groupId>joda-time</groupId>
             <artifactId>joda-time</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.jsonschema2pojo</groupId>
+            <artifactId>jsonschema2pojo-core</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.carrotsearch.randomizedtesting</groupId>
             <artifactId>randomizedtesting-runner</artifactId>
             <version>2.1.2</version>
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schema-activitystreams</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
             <artifactId>streams-testing</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
@@ -63,8 +88,43 @@
         </dependency>
     </dependencies>
     <build>
+        <sourceDirectory>src/main/java</sourceDirectory>
+        <testSourceDirectory>src/test/java</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
         <plugins>
             <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>add-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-resource</goal>
+                        </goals>
+                        <configuration>
+                            <resources>
+                                <resource>
+                                    <directory>${project.basedir}/src/main/jsonschema</directory>
+                                </resource>
+                                <resource>
+                                    <directory>src/main/xmlschema</directory>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
                 <executions>
@@ -75,6 +135,27 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.10</version>
+                <configuration>
+                    <includes>**/*.json</includes>
+                    <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
+                    <includeGroupIds>org.apache.streams</includeGroupIds>
+                    <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
+                    <includeTypes>jar,test-jar</includeTypes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>unpack-schemas</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/GuidUtils.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/GuidUtils.java b/streams-util/src/main/java/org/apache/streams/util/GuidUtils.java
index ee2c18c..1972bc7 100644
--- a/streams-util/src/main/java/org/apache/streams/util/GuidUtils.java
+++ b/streams-util/src/main/java/org/apache/streams/util/GuidUtils.java
@@ -25,7 +25,7 @@ import com.google.common.hash.Hashing;
 import java.nio.charset.Charset;
 
 /**
- * Created by sblackmon on 12/13/13.
+ * GuidUtils contains methods for generating guids from identifiers.
  */
 public class GuidUtils {
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/RegexUtils.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/RegexUtils.java b/streams-util/src/main/java/org/apache/streams/util/RegexUtils.java
index c32ed5f..2831df5 100644
--- a/streams-util/src/main/java/org/apache/streams/util/RegexUtils.java
+++ b/streams-util/src/main/java/org/apache/streams/util/RegexUtils.java
@@ -27,6 +27,9 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
 
+/**
+ * RegexUtils contains methods for applying regular expressions to strings.
+ */
 public class RegexUtils {
 
     public static boolean matches(String line, String regEx) {

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/SerializationUtil.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/SerializationUtil.java b/streams-util/src/main/java/org/apache/streams/util/SerializationUtil.java
index 81af5f4..de324d2 100644
--- a/streams-util/src/main/java/org/apache/streams/util/SerializationUtil.java
+++ b/streams-util/src/main/java/org/apache/streams/util/SerializationUtil.java
@@ -23,7 +23,8 @@ import org.apache.commons.io.input.ClassLoaderObjectInputStream;
 import java.io.*;
 
 /**
- * Created by rebanks on 2/18/14.
+ * SerializationUtil contains methods for serializing, deserializing, and cloning
+ * documents and tasks.
  */
 public class SerializationUtil {
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/schema/FieldType.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/schema/FieldType.java b/streams-util/src/main/java/org/apache/streams/util/schema/FieldType.java
new file mode 100644
index 0000000..6a2290c
--- /dev/null
+++ b/streams-util/src/main/java/org/apache/streams/util/schema/FieldType.java
@@ -0,0 +1,14 @@
+package org.apache.streams.util.schema;
+
+/**
+ * FieldType defines xsd types that streams schema processing libraries should
+ * be able to translate.
+ */
+public enum FieldType {
+    STRING,
+    INTEGER,
+    NUMBER,
+    BOOLEAN,
+    OBJECT,
+    ARRAY
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/schema/FieldUtil.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/schema/FieldUtil.java b/streams-util/src/main/java/org/apache/streams/util/schema/FieldUtil.java
new file mode 100644
index 0000000..20435c9
--- /dev/null
+++ b/streams-util/src/main/java/org/apache/streams/util/schema/FieldUtil.java
@@ -0,0 +1,34 @@
+package org.apache.streams.util.schema;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+/**
+ * FieldUtil contains methods to assist in understanding fields defined within schemas.
+ */
+public class FieldUtil {
+
+    public static FieldType determineFieldType(ObjectNode fieldNode) {
+        String typeSchemaField = "type";
+        if( !fieldNode.has(typeSchemaField))
+            return null;
+        String typeSchemaFieldValue = fieldNode.get(typeSchemaField).asText();
+        if( typeSchemaFieldValue.equals("string")) {
+            return FieldType.STRING;
+        } else if( typeSchemaFieldValue.equals("integer")) {
+            return FieldType.INTEGER;
+        } else if( typeSchemaFieldValue.equals("number")) {
+            return FieldType.NUMBER;
+        } else if( typeSchemaFieldValue.equals("object")) {
+            return FieldType.OBJECT;
+        } else if( typeSchemaFieldValue.equals("boolean")) {
+            return FieldType.BOOLEAN;
+        } else if( typeSchemaFieldValue.equals("array")) {
+            return FieldType.ARRAY;
+        }
+        else return null;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/main/java/org/apache/streams/util/schema/FileUtil.java
----------------------------------------------------------------------
diff --git a/streams-util/src/main/java/org/apache/streams/util/schema/FileUtil.java b/streams-util/src/main/java/org/apache/streams/util/schema/FileUtil.java
new file mode 100644
index 0000000..c025513
--- /dev/null
+++ b/streams-util/src/main/java/org/apache/streams/util/schema/FileUtil.java
@@ -0,0 +1,77 @@
+package org.apache.streams.util.schema;
+
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * FileUtil contains methods to assist in working with local schema files during
+ * source or resource generation.
+ */
+public class FileUtil {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(FileUtil.class);
+
+    public static String dropSourcePathPrefix(String inputFile, String sourceDirectory) {
+        if(Strings.isNullOrEmpty(sourceDirectory))
+            return inputFile;
+        else {
+            try {
+                if( inputFile.contains(sourceDirectory) && inputFile.indexOf(sourceDirectory) > 0) {
+                    return inputFile.substring(inputFile.indexOf(sourceDirectory)+sourceDirectory.length()+1);
+                }
+            } catch( Throwable e ) {
+                return inputFile;
+            }
+        }
+        return inputFile;
+    }
+
+    public static String swapExtension(String inputFile, String originalExtension, String newExtension) {
+        if(inputFile.endsWith("."+originalExtension))
+            return inputFile.replace("."+originalExtension, "."+newExtension);
+        else return inputFile;
+    }
+
+    public static String dropExtension(String inputFile) {
+        if(inputFile.contains("."))
+            return inputFile.substring(0, inputFile.lastIndexOf("."));
+        else return inputFile;
+    }
+
+    public static void writeFile(String resourceFile, String resourceContent) {
+        try {
+            File path = new File(resourceFile);
+            File dir = path.getParentFile();
+            if( !dir.exists() )
+                dir.mkdirs();
+            Files.write(Paths.get(resourceFile), resourceContent.getBytes(), StandardOpenOption.CREATE_NEW);
+        } catch (Exception e) {
+            LOGGER.error("Write Exception: {}", e);
+        }
+    }
+
+    public static void resolveRecursive(GenerationConfig config, List<File> schemaFiles) {
+
+        Preconditions.checkArgument(schemaFiles.size() > 0);
+        int i = 0;
+        while( schemaFiles.size() > i) {
+            File child = schemaFiles.get(i);
+            if (child.isDirectory()) {
+                schemaFiles.addAll(Arrays.asList(child.listFiles(config.getFileFilter())));
+                schemaFiles.remove(child);
+            } else {
+                i += 1;
+            }
+        }
+
+    }
+}



[25/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/note.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/note.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/note.json
new file mode 100644
index 0000000..63445d5
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/note.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/note.json#",
+    "type": "object",
+    "title": "note",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "note"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/offer.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/offer.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/offer.json
new file mode 100644
index 0000000..6d4b5f2
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/offer.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/offer.json#",
+    "type": "object",
+    "title": "offer",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "offer"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/organization.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/organization.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/organization.json
new file mode 100644
index 0000000..7ee7513
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/organization.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/organization.json#",
+    "type": "object",
+    "title": "organization",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "organization"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/page.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/page.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/page.json
new file mode 100644
index 0000000..4f18fcf
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/page.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/page.json#",
+    "type": "object",
+    "title": "page",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "page"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/permission.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/permission.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/permission.json
new file mode 100644
index 0000000..2a156dc
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/permission.json
@@ -0,0 +1,36 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/permission.json#",
+    "type": "object",
+    "title": "permission",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "permission"
+        },
+        "scope": {
+            "type": "object",
+            "extends": {
+              "$ref": "../object.json"
+            }
+        },
+        "actions": {
+            "type": "array",
+            "items": {
+               "type": "string",
+               "enumeration": [
+                  "create",
+                  "delete",
+                  "modify"
+               ]
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/person.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/person.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/person.json
new file mode 100644
index 0000000..6855634
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/person.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/person.json#",
+    "type": "object",
+    "title": "person",
+    "description": "vCard Format. Does not match PoCO",
+    "extends": [
+        {
+            "$ref": "../object.json"
+        },
+        {
+            "$ref": "http://www.json-schema.org/card"
+        }
+    ],
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "person"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/photo-album.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/photo-album.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/photo-album.json
new file mode 100644
index 0000000..1ad4b18
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/photo-album.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/photo-album.json#",
+    "type": "object",
+    "title": "article",
+    "extends": {
+        "$ref": "../objectTypes/list.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "photo-album"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/photo.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/photo.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/photo.json
new file mode 100644
index 0000000..ab44aad
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/photo.json
@@ -0,0 +1,23 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/photo.json#",
+    "type": "object",
+    "title": "photo",
+    "extends": {
+        "$ref": "../objectTypes/file.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "photo"
+        },
+        "displayName": {
+            "type": "string",
+            "default": "a photo"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/place.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/place.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/place.json
new file mode 100644
index 0000000..02d5fe4
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/place.json
@@ -0,0 +1,39 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/place.json#",
+    "type": "object",
+    "title": "place",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "place"
+        },
+        "address": {
+          "type": "object",
+          "extends": {
+            "$ref": "http://www.json-schema.org/address"
+          }
+        },
+        "position": {
+          "type": "object",
+          "properties": {
+            "altitude": {
+              "type": "number"
+            },
+            "latitude": {
+              "type": "number"
+            },
+            "longitude": {
+              "type": "number"
+            }
+          }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/playlist.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/playlist.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/playlist.json
new file mode 100644
index 0000000..d40b109
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/playlist.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/playlist.json#",
+    "type": "object",
+    "title": "playlist",
+    "extends": {
+        "$ref": "../objectTypes/list.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "playlist"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/process.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/process.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/process.json
new file mode 100644
index 0000000..343ff38
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/process.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/process.json#",
+    "type": "object",
+    "title": "process",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "process"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/product.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/product.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/product.json
new file mode 100644
index 0000000..7614cb9
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/product.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/product.json#",
+    "type": "object",
+    "title": "product",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "product"
+        },
+        "fullImage": {
+            "type": "object",
+            "extends": {
+              "$ref": "../media_link.json"
+            }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/property.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/property.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/property.json
new file mode 100644
index 0000000..ff2e73b
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/property.json
@@ -0,0 +1,48 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/property.json#",
+    "type": "object",
+    "title": "property",
+    "description": "A property describes name, path and value. Can be used with delete, update or post verbs",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "property"
+        },
+        "displayName": {
+            "type": "string",
+            "description": "The human readable name of the property in the appropriate language",
+            "optional": true
+        },
+        "path": {
+            "type": "string",
+            "description": "dot delimited path to the property in the target. Ex: streetAddress"
+        }
+    },
+    "example": {
+        "actor": {
+            "id": 1212,
+            "displayName": "Peter"
+        },
+        "verb": "update",
+        "time": "2010-08-02T15:29:00Z",
+        "object": {
+            "objectType": "property",
+            "displayName": "street address",
+            "path": "streetAddress",
+            "content": "234 Amazing St"
+        },
+        "target": {
+            "id": 12121,
+            "time": "2010-08-02T15:29:00Z",
+            "displayName": "Peter's House"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/question.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/question.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/question.json
new file mode 100644
index 0000000..9383caf
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/question.json
@@ -0,0 +1,28 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/question.json#",
+    "type": "object",
+    "title": "question",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "question"
+        },
+        "options": {
+            "type": "array",
+            "items": {
+               "type": "object",
+                "extends": {
+                  "$ref": "../object.json"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/review.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/review.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/review.json
new file mode 100644
index 0000000..5b5ab58
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/review.json
@@ -0,0 +1,22 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/review.json#",
+    "type": "object",
+    "title": "review",
+    "extends": {
+        "$ref": "../objectTypes/article.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "review"
+        },
+        "rating": {
+           "type": "number"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/role.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/role.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/role.json
new file mode 100644
index 0000000..0521f93
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/role.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/role.json#",
+    "type": "object",
+    "title": "role",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "role"
+        },
+        "members": {
+            "type": "object",
+            "extends": {
+              "$ref": "../collection.json"
+            }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/service.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/service.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/service.json
new file mode 100644
index 0000000..ff89fae
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/service.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/service.json#",
+    "type": "object",
+    "title": "service",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "service"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/song.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/song.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/song.json
new file mode 100644
index 0000000..2b89d4b
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/song.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/song.json#",
+    "type": "object",
+    "title": "song",
+    "extends": {
+        "$ref": "../objectTypes/audio.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "song"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/status.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/status.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/status.json
new file mode 100644
index 0000000..ac7a844
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/status.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/status.json#",
+    "type": "object",
+    "title": "status",
+    "extends": {
+        "$ref": "../objectTypes/note.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "song"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/task.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/task.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/task.json
new file mode 100644
index 0000000..2c8a3ea
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/task.json
@@ -0,0 +1,40 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/task.json#",
+    "type": "object",
+    "title": "task",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "task"
+        },
+        "by": {
+          "type": "string",
+          "format": "date-time"
+        },
+        "prerequisites": {
+          "type": "array",
+          "items": {
+            "type": "object",
+            "$ref": "../activity.json"
+          }
+        },
+        "required": {
+          "type": "boolean"
+        },
+        "supersedes": {
+          "type": "array",
+          "items": {
+            "type": "object",
+            "$ref": "../activity.json"
+          }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/team.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/team.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/team.json
new file mode 100644
index 0000000..f4f7494
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/team.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/team.json#",
+    "type": "object",
+    "title": "team",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "team"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/video.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/video.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/video.json
new file mode 100644
index 0000000..88a528d
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/objectTypes/video.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/video.json#",
+    "type": "object",
+    "title": "video",
+    "extends": {
+        "$ref": "../objectTypes/file.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "video"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/accept.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/accept.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/accept.json
new file mode 100644
index 0000000..04efee5
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/accept.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/accept.json#",
+    "type": "object",
+    "title": "Accept",
+    "description": "Indicates that that the actor has accepted the object. For instance, a person accepting an award, or accepting an assignment.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "accept"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} accepted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/access.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/access.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/access.json
new file mode 100644
index 0000000..eb08184
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/access.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/access.json#",
+    "type": "object",
+    "title": "Access",
+    "description": "Indicates that the actor has accessed the object. For instance, a person accessing a room, or accessing a file.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "access"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} accessed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/acknowledge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/acknowledge.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/acknowledge.json
new file mode 100644
index 0000000..aae6209
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/acknowledge.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/acknowledge.json#",
+    "type": "object",
+    "title": "Acknowledge",
+    "description": "Indicates that the actor has acknowledged the object. This effectively signals that the actor is aware of the object's existence.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "acknowledge"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} acknowledge {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/add.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/add.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/add.json
new file mode 100644
index 0000000..4d99411
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/add.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/add.json#",
+    "type": "object",
+    "title": "Add",
+    "description": "Indicates that the actor has added the object to the target. For instance, adding a photo to an album.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "add"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} added {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/agree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/agree.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/agree.json
new file mode 100644
index 0000000..9e79c2a
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/agree.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/agree.json#",
+    "type": "object",
+    "title": "Agree",
+    "description": "Indicates that the actor agrees with the object. For example, a person agreeing with an argument, or expressing agreement with a particular issue.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "agree"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} agrees with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/append.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/append.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/append.json
new file mode 100644
index 0000000..60e1a82
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/append.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/append.json#",
+    "type": "object",
+    "title": "Append",
+    "description": "Indicates that the actor has appended the object to the target. For instance, a person appending a new record to a database.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "append"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} append {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/approve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/approve.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/approve.json
new file mode 100644
index 0000000..247871c
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/approve.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/approve.json#",
+    "type": "object",
+    "title": "Approve",
+    "description": "Indicates that the actor has approved the object. For instance, a manager might approve a travel request.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "approve"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} approved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/archive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/archive.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/archive.json
new file mode 100644
index 0000000..7ee2226
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/archive.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/archive.json#",
+    "type": "object",
+    "title": "Archive",
+    "description": "Indicates that the actor has archived the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "archive"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} archived {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/assign.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/assign.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/assign.json
new file mode 100644
index 0000000..1d43041
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/assign.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/assign.json#",
+    "type": "object",
+    "title": "Assign",
+    "description": "Indicates that the actor has assigned the object to the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "assign"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} assigned {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/at.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/at.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/at.json
new file mode 100644
index 0000000..34497e2
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/at.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/at.json#",
+    "type": "object",
+    "title": "At",
+    "description": "Indicates that the actor is currently located at the object. For instance, a person being at a specific physical location.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "assign"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} assigned {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/attach.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/attach.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/attach.json
new file mode 100644
index 0000000..76c5a4f
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/attach.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/attach.json#",
+    "type": "object",
+    "title": "Attach",
+    "description": "Indicates that the actor has attached the object to the target.For instance, a person attaching a file to a wiki page or an email.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "attach"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} attached {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/attend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/attend.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/attend.json
new file mode 100644
index 0000000..6b02d07
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/attend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/attend.json#",
+    "type": "object",
+    "title": "Attend",
+    "description": "Indicates that the actor has attended the object. For instance, a person attending a meeting.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "attend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} attended {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/author.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/author.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/author.json
new file mode 100644
index 0000000..4898139
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/author.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/author.json#",
+    "type": "object",
+    "title": "Author",
+    "description": "Indicates that the actor has authored the object. Note that this is a more specific form of the verb \"create\".",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "author"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} authored {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/authorize.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/authorize.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/authorize.json
new file mode 100644
index 0000000..661e32c
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/authorize.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/authorize.json#",
+    "type": "object",
+    "title": "Authorize",
+    "description": "Indicates that the actor has authorized the object. If a target is specified, it means that the authorization is specifically in regards to the target. For instance, a service can authorize a person to access a given application; in which case the actor is the service, the object is the person, and the target is the application. In contrast, a person can authorize a request; in which case the actor is the person and the object is the request and there might be no explicit target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "authorize"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} authorized {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/borrow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/borrow.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/borrow.json
new file mode 100644
index 0000000..74eee36
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/borrow.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/borrow.json#",
+    "type": "object",
+    "title": "Borrow",
+    "description": "Indicates that the actor has borrowed the object. If a target is specified, it identifies the entity from which the object was borrowed. For instance, if a person borrows a book from a library, the person is the actor, the book is the object and the library is the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "borrow"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} borrow {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/build.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/build.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/build.json
new file mode 100644
index 0000000..d8e7d25
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/build.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/build.json#",
+    "type": "object",
+    "title": "Build",
+    "description": "Indicates that the actor has built the object. For example, if a person builds a model or compiles code.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "build"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} built {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/cancel.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/cancel.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/cancel.json
new file mode 100644
index 0000000..0d82c8e
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/cancel.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/cancel.json#",
+    "type": "object",
+    "title": "Cancel",
+    "description": "Indicates that the actor has canceled the object. For instance, canceling a calendar event.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "cancel"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} cancelled {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/checkin.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/checkin.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/checkin.json
new file mode 100644
index 0000000..88a9c86
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/checkin.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/checkin.json#",
+    "type": "object",
+    "title": "checkin",
+    "description": "Indicates that the actor has checked-in to the object. For instance, a person checking-in to a Place.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "checkin"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} checked in at {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/close.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/close.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/close.json
new file mode 100644
index 0000000..88a31b6
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/close.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/close.json#",
+    "type": "object",
+    "title": "Close",
+    "description": "Indicates that the actor has closed the object. For instance, the object could represent a ticket being tracked in an issue management system.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "close"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} closed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/complete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/complete.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/complete.json
new file mode 100644
index 0000000..ddffd0e
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/complete.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/complete.json#",
+    "type": "object",
+    "title": "Complete",
+    "description": "Indicates that the actor has completed the object",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "complete"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} completed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/confirm.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/confirm.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/confirm.json
new file mode 100644
index 0000000..5148c8c
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/confirm.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/confirm.json#",
+    "type": "object",
+    "title": "Confirm",
+    "description": "Indicates that the actor has confirmed or agrees with the object. For instance, a software developer might confirm an issue reported against a product.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "confirm"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} confirmed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/consume.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/consume.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/consume.json
new file mode 100644
index 0000000..661b40b
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/consume.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/consume.json#",
+    "type": "object",
+    "title": "Consume",
+    "description": "Indicates that the actor has consumed the object. The specific meaning is dependent largely on the object's type. For instance, an actor may \"consume\" an audio object, indicating that the actor has listened to it; or an actor may \"consume\" a book, indicating that the book has been read. As such, the \"consume\" verb is a more generic form of other more specific verbs such as \"read\" and \"play\".",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "consume"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} consumed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/create.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/create.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/create.json
new file mode 100644
index 0000000..c5ad298
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/create.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/create.json#",
+    "type": "object",
+    "title": "Create",
+    "description": "Indicates that the actor has created the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "create"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} created {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/delete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/delete.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/delete.json
new file mode 100644
index 0000000..544bf5d
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/delete.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/delete.json#",
+    "type": "object",
+    "title": "Delete",
+    "description": "Indicates that the actor has deleted the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "delete"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} deleted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/deliver.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/deliver.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/deliver.json
new file mode 100644
index 0000000..4d3d2c1
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/deliver.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/deliver.json#",
+    "type": "object",
+    "title": "Deliver",
+    "description": "Indicates that the actor has delivered the object. For example, delivering a package.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "deliver"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} delivered {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/deny.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/deny.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/deny.json
new file mode 100644
index 0000000..f880ad3
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/deny.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/deny.json#",
+    "type": "object",
+    "title": "Deny",
+    "description": "Indicates that the actor has denied the object. For example, a manager may deny a travel request.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "deny"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} denied {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/disagree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/disagree.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/disagree.json
new file mode 100644
index 0000000..17f0c4c
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/disagree.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/disagree.json#",
+    "type": "object",
+    "title": "Disagree",
+    "description": "Indicates that the actor disagrees with the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "disagree"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} disagrees with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/dislike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/dislike.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/dislike.json
new file mode 100644
index 0000000..308d5eb
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/dislike.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/dislike.json#",
+    "type": "object",
+    "title": "Dislike",
+    "description": "Indicates that the actor dislikes the object. Note that the \"dislike\" verb is distinct from the \"unlike\" verb which assumes that the object had been previously \"liked\".",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "dislike"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} dislikes {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/experience.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/experience.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/experience.json
new file mode 100644
index 0000000..543ac2c
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/experience.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/experience.json#",
+    "type": "object",
+    "title": "Experience",
+    "description": "Indicates that the actor has experienced the object in some manner. Note that, depending on the specific object types used for both the actor and object, the meaning of this verb can overlap that of the \"consume\" and \"play\" verbs. For instance, a person might \"experience\" a movie; or \"play\" the movie; or \"consume\" the movie. The \"experience\" verb can be considered a more generic form of other more specific verbs as \"consume\", \"play\", \"watch\", \"listen\", and \"read\"",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "experience"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} experienced {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/favorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/favorite.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/favorite.json
new file mode 100644
index 0000000..17e2490
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/favorite.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/favorite.json#",
+    "type": "object",
+    "title": "Favorite",
+    "description": "Indicates that the actor marked the object as an item of special interest.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "favorite"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} marked {object.displayName} as a favorite"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/find.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/find.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/find.json
new file mode 100644
index 0000000..79ebbe8
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/find.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/find.json#",
+    "type": "object",
+    "title": "Find",
+    "description": "Indicates that the actor has found the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "find"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} found {object.displayName}."
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/flag-as-inappropriate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/flag-as-inappropriate.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/flag-as-inappropriate.json
new file mode 100644
index 0000000..f7b5785
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/flag-as-inappropriate.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/flag-as-inappropriate.json#",
+    "type": "object",
+    "title": "Flag-As-Inappropriate",
+    "description": "Indicates that the actor has flagged the object as being inappropriate for some reason. When using this verb, the context property can be used to provide additional detail about why the object has been flagged.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "flag-as-inappropriate"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} flagged {object.displayName} as inappropriate."
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/follow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/follow.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/follow.json
new file mode 100644
index 0000000..2a922f9
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/follow.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/follow.json#",
+    "type": "object",
+    "title": "Follow",
+    "description": "Indicates that the actor began following the activity of the object. In most cases, the objectType will be a \"person\", but it can potentially be of any type that can sensibly generate activity. Processors MAY ignore (silently drop) successive identical \"follow\" activities.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "follow"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} started following {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/give.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/give.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/give.json
new file mode 100644
index 0000000..952fa59
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/give.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/give.json#",
+    "type": "object",
+    "title": "Give",
+    "description": "Indicates that the actor is giving an object to the target. Examples include one person giving a badge object to another person. The object identifies the object being given. The target identifies the receiver.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "give"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} gave {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/host.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/host.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/host.json
new file mode 100644
index 0000000..9661abe
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/host.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/host.json#",
+    "type": "object",
+    "title": "Host",
+    "description": "Indicates that the actor is hosting the object. As in hosting an event, or hosting a service.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "host"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is hosting {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/ignore.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/ignore.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/ignore.json
new file mode 100644
index 0000000..ae0ea6a
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/ignore.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/ignore.json#",
+    "type": "object",
+    "title": "Ignore",
+    "description": "Indicates that the actor has ignored the object. For instance, this verb may be used when an actor has ignored a friend request, in which case the object may be the request-friend activity.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "ignore"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} ignored {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/insert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/insert.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/insert.json
new file mode 100644
index 0000000..8dcd756
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/insert.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/insert.json#",
+    "type": "object",
+    "title": "Insert",
+    "description": "Indicates that the actor has inserted the object into the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "insert"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} inserted {object.displayName} into {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/install.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/install.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/install.json
new file mode 100644
index 0000000..6b270fa
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/install.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/install.json#",
+    "type": "object",
+    "title": "Install",
+    "description": "Indicates that the actor has installed the object, as in installing an application.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "install"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} installed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/interact.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/interact.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/interact.json
new file mode 100644
index 0000000..5098ee3
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/interact.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/interact.json#",
+    "type": "object",
+    "title": "Interact",
+    "description": "Indicates that the actor has interacted with the object. For instance, when one person interacts with another.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "interact"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} interacted with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/invite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/invite.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/invite.json
new file mode 100644
index 0000000..625a170
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/invite.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/invite.json#",
+    "type": "object",
+    "title": "Invite",
+    "description": "Indicates that the actor has invited the object, typically a person object, to join or participate in the object described by the target. The target could, for instance, be an event, group or a service.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "invite"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} invited {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/join.json
----------------------------------------------------------------------
diff --git a/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/join.json b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/join.json
new file mode 100644
index 0000000..5276072
--- /dev/null
+++ b/streams-schemas/streams-schema-activitystreams/src/main/jsonschema/verbs/join.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/verbs/join.json#",
+    "type": "object",
+    "title": "Join",
+    "description": "Indicates that the actor has become a member of the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "join"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} joined {object.displayName}"
+        }
+    }
+}



[02/32] incubator-streams git commit: create streams-plugin-pojo

Posted by sb...@apache.org.
create streams-plugin-pojo


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/1c78ecc7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/1c78ecc7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/1c78ecc7

Branch: refs/feature/STREAMS-389,398
Commit: 1c78ecc7fe7bf72dad6cd204cffc4fae1ac4b41b
Parents: f0a3518
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Mon Mar 28 08:32:00 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Mon Mar 28 08:32:00 2016 -0500

----------------------------------------------------------------------
 pom.xml                                         |   5 +
 streams-plugins/pom.xml                         |   2 +-
 streams-plugins/streams-plugin-hive/pom.xml     |   5 +-
 .../plugins/StreamsHiveResourceGenerator.java   | 219 +++++++++++++++
 .../StreamsHiveResourceGeneratorMojo.java       |  68 +++++
 .../apache/streams/plugins/StreamsPojoHive.java | 242 -----------------
 .../streams/plugins/StreamsPojoHiveMojo.java    |  71 -----
 .../test/StreamsHiveResourceGeneratorTest.java  |  55 ++++
 .../plugins/test/StreamsPojoHiveTest.java       |  55 ----
 streams-plugins/streams-plugin-pojo/pom.xml     | 239 ++++++++++++++++
 .../plugins/StreamsPojoGenerationConfig.java    | 198 ++++++++++++++
 .../plugins/StreamsPojoSourceGeneratorMojo.java | 272 +++++++++++++++++++
 .../test/StreamsPojoSourceGeneratorTest.java    |  54 ++++
 .../test/resources/streams-plugin-pojo/pom.xml  |  42 +++
 14 files changed, 1156 insertions(+), 371 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 74e5cf4..b284ae2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -175,6 +175,7 @@
         <module>streams-osgi-components</module>
         <module>streams-pojo</module>
         <module>streams-pojo-extensions</module>
+        <module>streams-plugins</module>
         <module>streams-runtimes</module>
         <module>streams-testing</module>
         <module>streams-util</module>
@@ -183,6 +184,10 @@
 
     <packaging>pom</packaging>
 
+    <properties>
+        <jsonschema2pojo.version>0.4.22</jsonschema2pojo.version>
+    </properties>
+
     <build>
         <plugins>
             <plugin>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/pom.xml b/streams-plugins/pom.xml
index 2306aab..390c8a0 100644
--- a/streams-plugins/pom.xml
+++ b/streams-plugins/pom.xml
@@ -36,7 +36,7 @@
     </properties>
 
     <modules>
-        <module>streams-plugin-scala</module>
+        <module>streams-plugin-pojo</module>
  	</modules>
 
     <dependencyManagement>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-hive/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/pom.xml b/streams-plugins/streams-plugin-hive/pom.xml
index cbc055b..22d75ce 100644
--- a/streams-plugins/streams-plugin-hive/pom.xml
+++ b/streams-plugins/streams-plugin-hive/pom.xml
@@ -213,19 +213,20 @@
                 <version>2.4</version>
                 <executions>
                     <execution>
-                        <id>streams-pojo-resource-dependencies</id>
+                        <id>resource-dependencies</id>
                         <phase>process-test-resources</phase>
                         <goals>
                             <goal>unpack-dependencies</goal>
                         </goals>
                         <configuration>
                             <includeArtifactIds>streams-pojo</includeArtifactIds>
-                            <includes>org/apache/streams/pojo/json/**</includes>
+                            <includes>**/*.json</includes>
                             <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
                         </configuration>
                     </execution>
                 </executions>
             </plugin>
+
         </plugins>
     </build>
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java
new file mode 100644
index 0000000..4edacf0
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGenerator.java
@@ -0,0 +1,219 @@
+package org.apache.streams.plugins;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import org.reflections.ReflectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Created by sblackmon on 11/18/15.
+ */
+public class StreamsHiveResourceGenerator implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHiveResourceGenerator.class);
+
+    private final static String LS = System.getProperty("line.separator");
+
+    private StreamsPojoHiveMojo mojo;
+
+    String inDir = "./target/test-classes/activities";
+    String outDir = "./target/generated-sources/hive";
+    String packages[] = {"org.apache.streams.pojo.json"};
+
+    public void main(String[] args) {
+        StreamsHiveResourceGenerator streamsHiveResourceGenerator = new StreamsHiveResourceGenerator();
+        Thread thread = new Thread(streamsPojoScala);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public StreamsHiveResourceGenerator(StreamsPojoHiveMojo mojo) {
+        this.mojo = mojo;
+        if (    mojo != null &&
+                mojo.getTarget() != null &&
+                !Strings.isNullOrEmpty(mojo.getTarget().getAbsolutePath())
+            )
+            outDir = mojo.getTarget().getAbsolutePath();
+
+        if (    mojo != null &&
+                mojo.getPackages() != null &&
+                mojo.getPackages().length > 0
+            )
+            packages = mojo.getPackages();
+    }
+
+    public StreamsHiveResourceGenerator() {
+    }
+
+    public void run() {
+
+        List<Class<?>> serializableClasses = detectSerializableClasses();
+
+        LOGGER.info("Detected {} serialiables:", serializableClasses.size());
+        for( Class clazz : serializableClasses )
+            LOGGER.debug(clazz.toString());
+
+        List<Class<?>> pojoClasses = detectPojoClasses(serializableClasses);
+
+        LOGGER.info("Detected {} pojos:", pojoClasses.size());
+        for( Class clazz : pojoClasses ) {
+            LOGGER.debug(clazz.toString());
+
+        }
+
+
+        for( Class clazz : pojoClasses ) {
+            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".hive").replace(".","/")+"/";
+            String pojoName = clazz.getSimpleName()+".hql";
+            String pojoHive = renderPojo(clazz);
+            writeFile(outDir+"/"+pojoPath+pojoName, pojoHive);
+        }
+
+    }
+
+    private void writeFile(String pojoFile, String pojoHive) {
+        try {
+            File path = new File(pojoFile);
+            File dir = path.getParentFile();
+            if( !dir.exists() )
+                dir.mkdirs();
+            Files.write(Paths.get(pojoFile), pojoHive.getBytes(), StandardOpenOption.CREATE_NEW);
+        } catch (Exception e) {
+            LOGGER.error("Write Exception: {}", e);
+        }
+    }
+
+    public List<Class<?>> detectSerializableClasses() {
+
+        Set<Class<? extends Serializable>> classes =
+                reflections.getSubTypesOf(java.io.Serializable.class);
+
+        List<Class<?>> result = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            result.add(clazz);
+        }
+
+        return result;
+    }
+
+    public List<Class<?>> detectPojoClasses(List<Class<?>> classes) {
+
+        List<Class<?>> result = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            try {
+                clazz.newInstance().toString();
+            } catch( Exception e) {}
+            // super-halfass way to know if this is a jsonschema2pojo
+            if( clazz.getAnnotations().length >= 1 )
+                result.add(clazz);
+        }
+
+        return result;
+    }
+
+    public String renderPojo(Class<?> pojoClass) {
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append("CREATE TABLE ");
+        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".hive"));
+        stringBuffer.append(LS);
+        stringBuffer.append("(");
+        stringBuffer.append(LS);
+
+        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
+        appendFields(stringBuffer, fields, "", ",");
+
+        stringBuffer.append(")");
+
+        return stringBuffer.toString();
+    }
+
+    private void appendFields(StringBuffer stringBuffer, Set<Field> fields, String varDef, String fieldDelimiter) {
+        if( fields.size() > 0 ) {
+            stringBuffer.append(LS);
+            Map<String,Field> fieldsToAppend = uniqueFields(fields);
+            for( Iterator<Field> iter = fieldsToAppend.values().iterator(); iter.hasNext(); ) {
+                Field field = iter.next();
+                stringBuffer.append(name(field));
+                stringBuffer.append(": ");
+                stringBuffer.append(type(field));
+                if( iter.hasNext()) stringBuffer.append(fieldDelimiter);
+                stringBuffer.append(LS);
+            }
+        } else {
+            stringBuffer.append(LS);
+        }
+    }
+
+    private String value(Field field) {
+        if( field.getName().equals("verb")) {
+            return "\"post\"";
+        } else if( field.getName().equals("objectType")) {
+            return "\"application\"";
+        } else return null;
+    }
+
+    private String type(Field field) {
+        if( field.getType().equals(java.lang.String.class)) {
+            return "STRING";
+        } else if( field.getType().equals(java.lang.Integer.class)) {
+            return "INT";
+        } else if( field.getType().equals(org.joda.time.DateTime.class)) {
+            return "DATE";
+        }else if( field.getType().equals(java.util.Map.class)) {
+            return "MAP";
+        } else if( field.getType().equals(java.util.List.class)) {
+            return "ARRAY";
+        }
+        return field.getType().getCanonicalName().replace(".pojo.json", ".scala");
+    }
+
+    private Map<String,Field> uniqueFields(Set<Field> fieldset) {
+        Map<String,Field> fields = Maps.newTreeMap();
+        Field item = null;
+        for( Iterator<Field> it = fieldset.iterator(); it.hasNext(); item = it.next() ) {
+            if( item != null && item.getName() != null ) {
+                Field added = fields.put(item.getName(), item);
+            }
+            // ensure right class will get used
+        }
+        return fields;
+    }
+
+    private String name(Field field) {
+        if( field.getName().equals("object"))
+            return "obj";
+        else return field.getName();
+    }
+
+    private boolean override(Field field) {
+        try {
+            if( field.getDeclaringClass().getSuperclass().getField(field.getName()) != null )
+                return true;
+            else return false;
+        } catch( Exception e ) {
+            return false;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGeneratorMojo.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGeneratorMojo.java
new file mode 100644
index 0000000..1f8c782
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsHiveResourceGeneratorMojo.java
@@ -0,0 +1,68 @@
+package org.apache.streams.plugins;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+
+@Mojo(  name = "hive",
+        defaultPhase = LifecyclePhase.GENERATE_SOURCES
+)
+@Execute(   goal = "hive",
+            phase = LifecyclePhase.GENERATE_SOURCES
+)
+public class StreamsHiveResourceGeneratorMojo extends AbstractMojo {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHiveResourceGeneratorMojo.class);
+
+    @Component
+    private MavenProject project;
+
+//    @Component
+//    private Settings settings;
+//
+//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+//    protected ArtifactRepository localRepository;
+//
+//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
+//    private PluginDescriptor plugin;
+//
+    @Parameter( defaultValue = "${project.basedir}", readonly = true )
+    private File basedir;
+
+    @Parameter(defaultValue = "${project.build.directory}", readonly = true)
+    private File target;
+
+    @Parameter(defaultValue = "org.apache.streams.pojo.json", readonly = true)
+    private String[] packages;
+
+    public void execute() throws MojoExecutionException {
+        StreamsHiveResourceGenerator streamsPojoScala = new StreamsHiveResourceGenerator(this);
+        Thread thread = new Thread(streamsPojoScala);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public File getTarget() {
+        return target;
+    }
+
+    public String[] getPackages() {
+        return packages;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHive.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHive.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHive.java
deleted file mode 100644
index f8a00f7..0000000
--- a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHive.java
+++ /dev/null
@@ -1,242 +0,0 @@
-package org.apache.streams.plugins;
-
-import com.google.common.base.Strings;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import org.apache.streams.data.DocumentClassifier;
-import org.reflections.ReflectionUtils;
-import org.reflections.Reflections;
-import org.reflections.scanners.SubTypesScanner;
-import org.reflections.scanners.TypeAnnotationsScanner;
-import org.reflections.util.ClasspathHelper;
-import org.reflections.util.ConfigurationBuilder;
-import org.reflections.ReflectionUtils.*;
-import org.reflections.util.FilterBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.annotation.Generated;
-import java.io.File;
-import java.io.IOException;
-import java.io.Serializable;
-import java.lang.reflect.Field;
-import java.nio.file.Files;
-import java.nio.file.OpenOption;
-import java.nio.file.Paths;
-import java.nio.file.StandardOpenOption;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * Created by sblackmon on 11/18/15.
- */
-public class StreamsPojoHive implements Runnable {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoHive.class);
-
-    private final static String LS = System.getProperty("line.separator");
-
-    private StreamsPojoHiveMojo mojo;
-
-    String outDir = "./target/generated-sources/hive";
-    String packages[] = {"org.apache.streams.pojo.json"};
-
-    private final Reflections reflections = new Reflections(
-            new ConfigurationBuilder()
-                    .forPackages(packages)
-                    .filterInputsBy(new FilterBuilder().includePackage(packages))
-                    .setScanners(
-                            new SubTypesScanner(),
-                            new TypeAnnotationsScanner()));
-
-    public void main(String[] args) {
-        StreamsPojoHive streamsPojoScala = new StreamsPojoHive();
-        Thread thread = new Thread(streamsPojoScala);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
-    }
-
-    public StreamsPojoHive(StreamsPojoHiveMojo mojo) {
-        this.mojo = mojo;
-        if (    mojo != null &&
-                mojo.getTarget() != null &&
-                !Strings.isNullOrEmpty(mojo.getTarget().getAbsolutePath())
-            )
-            outDir = mojo.getTarget().getAbsolutePath();
-
-        if (    mojo != null &&
-                mojo.getPackages() != null &&
-                mojo.getPackages().length > 0
-            )
-            packages = mojo.getPackages();
-    }
-
-    public StreamsPojoHive() {
-    }
-
-    public void run() {
-
-        List<Class<?>> serializableClasses = detectSerializableClasses();
-
-        LOGGER.info("Detected {} serialiables:", serializableClasses.size());
-        for( Class clazz : serializableClasses )
-            LOGGER.debug(clazz.toString());
-
-        List<Class<?>> pojoClasses = detectPojoClasses(serializableClasses);
-
-        LOGGER.info("Detected {} pojos:", pojoClasses.size());
-        for( Class clazz : pojoClasses ) {
-            LOGGER.debug(clazz.toString());
-
-        }
-
-
-        for( Class clazz : pojoClasses ) {
-            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".hive").replace(".","/")+"/";
-            String pojoName = clazz.getSimpleName()+".hql";
-            String pojoHive = renderPojo(clazz);
-            writeFile(outDir+"/"+pojoPath+pojoName, pojoHive);
-        }
-
-    }
-
-    private void writeFile(String pojoFile, String pojoHive) {
-        try {
-            File path = new File(pojoFile);
-            File dir = path.getParentFile();
-            if( !dir.exists() )
-                dir.mkdirs();
-            Files.write(Paths.get(pojoFile), pojoHive.getBytes(), StandardOpenOption.CREATE_NEW);
-        } catch (Exception e) {
-            LOGGER.error("Write Exception: {}", e);
-        }
-    }
-
-    public List<Class<?>> detectSerializableClasses() {
-
-        Set<Class<? extends Serializable>> classes =
-                reflections.getSubTypesOf(java.io.Serializable.class);
-
-        List<Class<?>> result = Lists.newArrayList();
-
-        for( Class clazz : classes ) {
-            result.add(clazz);
-        }
-
-        return result;
-    }
-
-    public List<Class<?>> detectPojoClasses(List<Class<?>> classes) {
-
-        List<Class<?>> result = Lists.newArrayList();
-
-        for( Class clazz : classes ) {
-            try {
-                clazz.newInstance().toString();
-            } catch( Exception e) {}
-            // super-halfass way to know if this is a jsonschema2pojo
-            if( clazz.getAnnotations().length >= 1 )
-                result.add(clazz);
-        }
-
-        return result;
-    }
-
-    public String renderPojo(Class<?> pojoClass) {
-        StringBuffer stringBuffer = new StringBuffer();
-        stringBuffer.append("CREATE TABLE ");
-        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".hive"));
-        stringBuffer.append(LS);
-        stringBuffer.append("(");
-        stringBuffer.append(LS);
-
-        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
-        appendFields(stringBuffer, fields, "", ",");
-
-        stringBuffer.append(")");
-
-        return stringBuffer.toString();
-    }
-
-    private void appendFields(StringBuffer stringBuffer, Set<Field> fields, String varDef, String fieldDelimiter) {
-        if( fields.size() > 0 ) {
-            stringBuffer.append(LS);
-            Map<String,Field> fieldsToAppend = uniqueFields(fields);
-            for( Iterator<Field> iter = fieldsToAppend.values().iterator(); iter.hasNext(); ) {
-                Field field = iter.next();
-                stringBuffer.append(name(field));
-                stringBuffer.append(": ");
-                stringBuffer.append(type(field));
-                if( iter.hasNext()) stringBuffer.append(fieldDelimiter);
-                stringBuffer.append(LS);
-            }
-        } else {
-            stringBuffer.append(LS);
-        }
-    }
-
-    private String value(Field field) {
-        if( field.getName().equals("verb")) {
-            return "\"post\"";
-        } else if( field.getName().equals("objectType")) {
-            return "\"application\"";
-        } else return null;
-    }
-
-    private String type(Field field) {
-        if( field.getType().equals(java.lang.String.class)) {
-            return "STRING";
-        } else if( field.getType().equals(java.lang.Integer.class)) {
-            return "INT";
-        } else if( field.getType().equals(org.joda.time.DateTime.class)) {
-            return "DATE";
-        }else if( field.getType().equals(java.util.Map.class)) {
-            return "MAP";
-        } else if( field.getType().equals(java.util.List.class)) {
-            return "ARRAY";
-        }
-        return field.getType().getCanonicalName().replace(".pojo.json", ".scala");
-    }
-
-    private Map<String,Field> uniqueFields(Set<Field> fieldset) {
-        Map<String,Field> fields = Maps.newTreeMap();
-        Field item = null;
-        for( Iterator<Field> it = fieldset.iterator(); it.hasNext(); item = it.next() ) {
-            if( item != null && item.getName() != null ) {
-                Field added = fields.put(item.getName(), item);
-            }
-            // ensure right class will get used
-        }
-        return fields;
-    }
-
-    private String name(Field field) {
-        if( field.getName().equals("object"))
-            return "obj";
-        else return field.getName();
-    }
-
-    private boolean override(Field field) {
-        try {
-            if( field.getDeclaringClass().getSuperclass().getField(field.getName()) != null )
-                return true;
-            else return false;
-        } catch( Exception e ) {
-            return false;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHiveMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHiveMojo.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHiveMojo.java
deleted file mode 100644
index a0af5ac..0000000
--- a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/StreamsPojoHiveMojo.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.apache.streams.plugins;
-
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.descriptor.PluginDescriptor;
-import org.apache.maven.plugins.annotations.Component;
-import org.apache.maven.plugins.annotations.Execute;
-import org.apache.maven.plugins.annotations.LifecyclePhase;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.settings.Settings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-
-@Mojo(  name = "hive",
-        defaultPhase = LifecyclePhase.GENERATE_SOURCES
-)
-@Execute(   goal = "hive",
-            phase = LifecyclePhase.GENERATE_SOURCES
-)
-public class StreamsPojoHiveMojo extends AbstractMojo {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoHiveMojo.class);
-
-    @Component
-    private MavenProject project;
-
-//    @Component
-//    private Settings settings;
-//
-//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
-//    protected ArtifactRepository localRepository;
-//
-//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
-//    private PluginDescriptor plugin;
-//
-    @Parameter( defaultValue = "${project.basedir}", readonly = true )
-    private File basedir;
-
-    @Parameter(defaultValue = "${project.build.directory}", readonly = true)
-    private File target;
-
-    @Parameter(defaultValue = "org.apache.streams.pojo.json", readonly = true)
-    private String[] packages;
-
-    public void execute() throws MojoExecutionException {
-        StreamsPojoHive streamsPojoScala = new StreamsPojoHive(this);
-        Thread thread = new Thread(streamsPojoScala);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
-    }
-
-    public File getTarget() {
-        return target;
-    }
-
-    public String[] getPackages() {
-        return packages;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
new file mode 100644
index 0000000..cd80cf8
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
@@ -0,0 +1,55 @@
+package org.apache.streams.plugins.test;
+
+import org.apache.streams.plugins.StreamsHiveResourceGenerator;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileFilter;
+
+/**
+ * Test that Activity beans are compatible with the example activities in the spec.
+ */
+public class StreamsHiveResourceGeneratorTest {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHiveResourceGeneratorTest.class);
+
+    /**
+     * Tests that all example activities can be loaded into Activity beans
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testStreamsPojoHive() throws Exception {
+        StreamsHiveResourceGenerator streamsHiveResourceGenerator = new StreamsHiveResourceGenerator();
+        streamsHiveResourceGenerator.main(new String[0]);
+
+        File testOutput = new File( "./target/generated-sources/hive/org/apache/streams/hive");
+        FileFilter hqlFilter = new FileFilter() {
+            @Override
+            public boolean accept(File pathname) {
+                if( pathname.getName().endsWith(".hql") )
+                    return true;
+                return false;
+            }
+        };
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+        assert( testOutput.listFiles(hqlFilter).length == 11 );
+//        assert( new File(testOutput + "/traits").exists() == true );
+//        assert( new File(testOutput + "/traits").isDirectory() == true );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
+//        assert( new File(testOutput + "/objectTypes").exists() == true );
+//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
+//        assert( new File(testOutput + "/verbs").exists() == true );
+//        assert( new File(testOutput + "/verbs").isDirectory() == true );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsPojoHiveTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsPojoHiveTest.java b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsPojoHiveTest.java
deleted file mode 100644
index e5a7abd..0000000
--- a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsPojoHiveTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.apache.streams.plugins.test;
-
-import org.apache.streams.plugins.StreamsPojoHive;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.FileFilter;
-
-/**
- * Test that Activity beans are compatible with the example activities in the spec.
- */
-public class StreamsPojoHiveTest {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoHiveTest.class);
-
-    /**
-     * Tests that all example activities can be loaded into Activity beans
-     *
-     * @throws Exception
-     */
-    @Test
-    public void testStreamsPojoHive() throws Exception {
-        StreamsPojoHive streamsPojoHive = new StreamsPojoHive();
-        streamsPojoHive.main(new String[0]);
-
-        File testOutput = new File( "./target/generated-sources/hive/org/apache/streams/hive");
-        FileFilter hqlFilter = new FileFilter() {
-            @Override
-            public boolean accept(File pathname) {
-                if( pathname.getName().endsWith(".hql") )
-                    return true;
-                return false;
-            }
-        };
-
-        assert( testOutput != null );
-        assert( testOutput.exists() == true );
-        assert( testOutput.isDirectory() == true );
-        assert( testOutput.listFiles(hqlFilter).length == 11 );
-//        assert( new File(testOutput + "/traits").exists() == true );
-//        assert( new File(testOutput + "/traits").isDirectory() == true );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
-//        assert( new File(testOutput + "/objectTypes").exists() == true );
-//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
-//        assert( new File(testOutput + "/verbs").exists() == true );
-//        assert( new File(testOutput + "/verbs").isDirectory() == true );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/pom.xml b/streams-plugins/streams-plugin-pojo/pom.xml
new file mode 100644
index 0000000..399a371
--- /dev/null
+++ b/streams-plugins/streams-plugin-pojo/pom.xml
@@ -0,0 +1,239 @@
+<?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
+  ~
+  ~   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>
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-pojo</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>maven-plugin</packaging>
+
+    <parent>
+        <groupId>org.apache.streams</groupId>
+        <artifactId>streams-plugins</artifactId>
+        <version>0.3-incubating-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-config</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jsonschema2pojo</groupId>
+            <artifactId>jsonschema2pojo-core</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.jsonschema2pojo</groupId>
+            <artifactId>jsonschema2pojo-maven-plugin</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-pojo</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
+        <dependency>
+            <groupId>org.reflections</groupId>
+            <artifactId>reflections</artifactId>
+            <version>0.9.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-aether-provider</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>3.3.3</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-compat</artifactId>
+            <version>3.3.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+            <version>3.3.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.sonatype.aether</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <version>2.7</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.maven</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>3.0.15</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-plugin-plugin</artifactId>
+            <version>3.4</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-api</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-generators</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-testing</groupId>
+            <artifactId>maven-plugin-testing-harness</artifactId>
+            <version>3.3.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+            <version>2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.joda</groupId>
+            <artifactId>joda-convert</artifactId>
+            <version>1.8.1</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <sourceDirectory>src/main/java</sourceDirectory>
+        <testSourceDirectory>src/test/java</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <version>3.4</version>
+                <configuration>
+                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>mojo-descriptor</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>descriptor</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.reflections</groupId>
+                <artifactId>reflections-maven</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>reflections</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.4</version>
+                <executions>
+                    <execution>
+                        <id>resource-dependencies</id>
+                        <phase>process-test-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <includeArtifactIds>streams-pojo</includeArtifactIds>
+                            <includes>**/*.json</includes>
+                            <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java
new file mode 100644
index 0000000..b42ccf9
--- /dev/null
+++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoGenerationConfig.java
@@ -0,0 +1,198 @@
+package org.apache.streams.plugins;
+
+import org.jsonschema2pojo.AnnotationStyle;
+import org.jsonschema2pojo.Annotator;
+import org.jsonschema2pojo.GenerationConfig;
+import org.jsonschema2pojo.SourceType;
+import org.jsonschema2pojo.rules.RuleFactory;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.net.URL;
+import java.util.Iterator;
+
+/**
+ * Created by sblackmon on 3/27/16.
+ */
+public class StreamsPojoGenerationConfig implements GenerationConfig {
+
+        @Override
+        public boolean isGenerateBuilders() {
+            return false;
+        }
+
+        @Override
+        public boolean isUsePrimitives() {
+            return false;
+        }
+
+        @Override
+        public Iterator<URL> getSource() {
+            return null;
+        }
+
+        @Override
+        public File getTargetDirectory() {
+            return null;
+        }
+
+        @Override
+        public String getTargetPackage() {
+            return null;
+        }
+
+        @Override
+        public char[] getPropertyWordDelimiters() {
+            return new char[0];
+        }
+
+        @Override
+        public boolean isUseLongIntegers() {
+            return false;
+        }
+
+        @Override
+        public boolean isUseDoubleNumbers() {
+            return false;
+        }
+
+        @Override
+        public boolean isUseBigDecimals() {
+            return false;
+        }
+
+        @Override
+        public boolean isIncludeHashcodeAndEquals() {
+            return false;
+        }
+
+        @Override
+        public boolean isIncludeToString() {
+            return false;
+        }
+
+        @Override
+        public AnnotationStyle getAnnotationStyle() {
+            return null;
+        }
+
+        @Override
+        public Class<? extends Annotator> getCustomAnnotator() {
+            return null;
+        }
+
+        @Override
+        public Class<? extends RuleFactory> getCustomRuleFactory() {
+            return null;
+        }
+
+        @Override
+        public boolean isIncludeJsr303Annotations() {
+            return false;
+        }
+
+        @Override
+        public SourceType getSourceType() {
+            return null;
+        }
+
+        @Override
+        public boolean isRemoveOldOutput() {
+            return false;
+        }
+
+        @Override
+        public String getOutputEncoding() {
+            return null;
+        }
+
+        @Override
+        public boolean isUseJodaDates() {
+            return false;
+        }
+
+        @Override
+        public boolean isUseJodaLocalDates() {
+            return false;
+        }
+
+        @Override
+        public boolean isUseJodaLocalTimes() {
+            return false;
+        }
+
+        @Override
+        public boolean isUseCommonsLang3() {
+            return false;
+        }
+
+        @Override
+        public boolean isParcelable() {
+            return false;
+        }
+
+        @Override
+        public FileFilter getFileFilter() {
+            return null;
+        }
+
+        @Override
+        public boolean isInitializeCollections() {
+            return false;
+        }
+
+        @Override
+        public String getClassNamePrefix() {
+            return null;
+        }
+
+        @Override
+        public String getClassNameSuffix() {
+            return null;
+        }
+
+        @Override
+        public boolean isIncludeConstructors() {
+            return false;
+        }
+
+        @Override
+        public boolean isConstructorsRequiredPropertiesOnly() {
+            return false;
+        }
+
+        @Override
+        public boolean isIncludeAdditionalProperties() {
+            return false;
+        }
+
+        @Override
+        public boolean isIncludeAccessors() {
+            return false;
+        }
+
+        @Override
+        public String getTargetVersion() {
+            return null;
+        }
+
+        @Override
+        public boolean isIncludeDynamicAccessors() {
+            return false;
+        }
+
+        @Override
+        public String getDateTimeType() {
+            return null;
+        }
+
+        @Override
+        public String getDateType() {
+            return null;
+        }
+
+        @Override
+        public String getTimeType() {
+            return null;
+        }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
new file mode 100644
index 0000000..8980daa
--- /dev/null
+++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
@@ -0,0 +1,272 @@
+package org.apache.streams.plugins;
+
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.jsonschema2pojo.Jsonschema2Pojo;
+import org.jsonschema2pojo.maven.Jsonschema2PojoMojo;
+import org.jsonschema2pojo.maven.ProjectClasspath;
+import org.jsonschema2pojo.util.URLUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import static org.apache.commons.lang.StringUtils.isNotBlank;
+
+@Mojo(  name = "hive",
+        defaultPhase = LifecyclePhase.GENERATE_SOURCES
+)
+@Execute(   goal = "hive",
+            phase = LifecyclePhase.GENERATE_SOURCES
+)
+public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoSourceGeneratorMojo.class);
+
+    @Component
+    public MavenProject project;
+
+//    @Component
+//    private Settings settings;
+//
+//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+//    protected ArtifactRepository localRepository;
+//
+//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
+//    private PluginDescriptor plugin;
+//
+
+    @Parameter( defaultValue = "${project.basedir}", readonly = true )
+    public File basedir;
+
+    @Parameter( defaultValue = "${jsonschema2pojo.sourceDirectory}", readonly = true ) // Maven 3 only
+    public String sourceDirectory;
+
+    @Parameter( defaultValue = "${jsonschema2pojo.sourcePaths}", readonly = true ) // Maven 3 only
+    public String[] sourcePaths;
+
+    @Parameter(defaultValue = "${project.build.directory}", readonly = true)
+    public File target;
+
+    public void execute() throws MojoExecutionException {
+
+        addProjectDependenciesToClasspath();
+
+        // verify source directories
+        if (isNotBlank(sourceDirectory)) {
+            // verify sourceDirectory
+            try {
+                URLUtil.parseURL(sourceDirectory);
+            } catch (IllegalArgumentException e) {
+                throw new MojoExecutionException(e.getMessage(), e);
+            }
+        } else if (sourcePaths != null) {
+            // verify individual source paths
+            for (String source : sourcePaths) {
+                try {
+                    URLUtil.parseURL(source);
+                } catch (IllegalArgumentException e) {
+                    throw new MojoExecutionException(e.getMessage(), e);
+                }
+            }
+        } else {
+            throw new MojoExecutionException("One of sourceDirectory or sourcePaths must be provided");
+        }
+
+        try {
+            Jsonschema2Pojo.generate(new StreamsPojoGenerationConfig());
+        } catch (IOException e) {
+            throw new MojoExecutionException("Error generating classes from JSON Schema file(s) " + sourceDirectory, e);
+        }
+
+//        List<Class<?>> serializableClasses = detectSerializableClasses();
+//
+//        LOGGER.info("Detected {} serialiables:", serializableClasses.size());
+//        for( Class clazz : serializableClasses )
+//            LOGGER.debug(clazz.toString());
+//
+//        List<Class<?>> pojoClasses = detectPojoClasses(serializableClasses);
+//
+//        LOGGER.info("Detected {} pojos:", pojoClasses.size());
+//        for( Class clazz : pojoClasses ) {
+//            LOGGER.debug(clazz.toString());
+//
+//        }
+//
+//
+//        for( Class clazz : pojoClasses ) {
+//            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".hive").replace(".","/")+"/";
+//            String pojoName = clazz.getSimpleName()+".hql";
+//            String pojoHive = renderPojo(clazz);
+//            writeFile(outDir+"/"+pojoPath+pojoName, pojoHive);
+//        }
+
+    }
+
+    private void addProjectDependenciesToClasspath() {
+
+        try {
+
+            ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
+            ClassLoader newClassLoader = new ProjectClasspath().getClassLoader(project, oldClassLoader, getLog());
+            Thread.currentThread().setContextClassLoader(newClassLoader);
+
+        } catch (DependencyResolutionRequiredException e) {
+            LOGGER.info("Skipping addition of project artifacts, there appears to be a dependecy resolution problem", e);
+        }
+
+    }
+
+    private void writeFile(String pojoFile, String pojoHive) {
+        try {
+            File path = new File(pojoFile);
+            File dir = path.getParentFile();
+            if( !dir.exists() )
+                dir.mkdirs();
+            Files.write(Paths.get(pojoFile), pojoHive.getBytes(), StandardOpenOption.CREATE_NEW);
+        } catch (Exception e) {
+            LOGGER.error("Write Exception: {}", e);
+        }
+    }
+
+    public Iterator<URL> getSource() {
+        if (null != sourceDirectory) {
+            return Collections.singleton(URLUtil.parseURL(sourceDirectory)).iterator();
+        }
+        List<URL> sourceURLs = new ArrayList<URL>();
+        for (String source : sourcePaths) {
+            sourceURLs.add(URLUtil.parseURL(source));
+        }
+        return sourceURLs.iterator();
+    }
+
+//    public List<Class<?>> detectSerializableClasses() {
+//
+//        Set<Class<? extends Serializable>> classes =
+//                reflections.getSubTypesOf(java.io.Serializable.class);
+//
+//        List<Class<?>> result = Lists.newArrayList();
+//
+//        for( Class clazz : classes ) {
+//            result.add(clazz);
+//        }
+//
+//        return result;
+//    }
+//
+//    public List<Class<?>> detectPojoClasses(List<Class<?>> classes) {
+//
+//        List<Class<?>> result = Lists.newArrayList();
+//
+//        for( Class clazz : classes ) {
+//            try {
+//                clazz.newInstance().toString();
+//            } catch( Exception e) {}
+//            // super-halfass way to know if this is a jsonschema2pojo
+//            if( clazz.getAnnotations().length >= 1 )
+//                result.add(clazz);
+//        }
+//
+//        return result;
+//    }
+//
+//    public String renderPojo(Class<?> pojoClass) {
+//        StringBuffer stringBuffer = new StringBuffer();
+//        stringBuffer.append("CREATE TABLE ");
+//        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".hive"));
+//        stringBuffer.append(LS);
+//        stringBuffer.append("(");
+//        stringBuffer.append(LS);
+//
+//        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
+//        appendFields(stringBuffer, fields, "", ",");
+//
+//        stringBuffer.append(")");
+//
+//        return stringBuffer.toString();
+//    }
+//
+//    private void appendFields(StringBuffer stringBuffer, Set<Field> fields, String varDef, String fieldDelimiter) {
+//        if( fields.size() > 0 ) {
+//            stringBuffer.append(LS);
+//            Map<String,Field> fieldsToAppend = uniqueFields(fields);
+//            for( Iterator<Field> iter = fieldsToAppend.values().iterator(); iter.hasNext(); ) {
+//                Field field = iter.next();
+//                stringBuffer.append(name(field));
+//                stringBuffer.append(": ");
+//                stringBuffer.append(type(field));
+//                if( iter.hasNext()) stringBuffer.append(fieldDelimiter);
+//                stringBuffer.append(LS);
+//            }
+//        } else {
+//            stringBuffer.append(LS);
+//        }
+//    }
+//
+//    private String value(Field field) {
+//        if( field.getName().equals("verb")) {
+//            return "\"post\"";
+//        } else if( field.getName().equals("objectType")) {
+//            return "\"application\"";
+//        } else return null;
+//    }
+//
+//    private String type(Field field) {
+//        if( field.getType().equals(java.lang.String.class)) {
+//            return "STRING";
+//        } else if( field.getType().equals(java.lang.Integer.class)) {
+//            return "INT";
+//        } else if( field.getType().equals(org.joda.time.DateTime.class)) {
+//            return "DATE";
+//        }else if( field.getType().equals(java.util.Map.class)) {
+//            return "MAP";
+//        } else if( field.getType().equals(java.util.List.class)) {
+//            return "ARRAY";
+//        }
+//        return field.getType().getCanonicalName().replace(".pojo.json", ".scala");
+//    }
+//
+//    private Map<String,Field> uniqueFields(Set<Field> fieldset) {
+//        Map<String,Field> fields = Maps.newTreeMap();
+//        Field item = null;
+//        for( Iterator<Field> it = fieldset.iterator(); it.hasNext(); item = it.next() ) {
+//            if( item != null && item.getName() != null ) {
+//                Field added = fields.put(item.getName(), item);
+//            }
+//            // ensure right class will get used
+//        }
+//        return fields;
+//    }
+//
+//    private String name(Field field) {
+//        if( field.getName().equals("object"))
+//            return "obj";
+//        else return field.getName();
+//    }
+//
+//    private boolean override(Field field) {
+//        try {
+//            if( field.getDeclaringClass().getSuperclass().getField(field.getName()) != null )
+//                return true;
+//            else return false;
+//        } catch( Exception e ) {
+//            return false;
+//        }
+//    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
new file mode 100644
index 0000000..63d4995
--- /dev/null
+++ b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
@@ -0,0 +1,54 @@
+package org.apache.streams.plugins.test;
+
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileFilter;
+
+/**
+ * Test that Activity beans are compatible with the example activities in the spec.
+ */
+public class StreamsPojoSourceGeneratorTest {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoSourceGeneratorTest.class);
+
+    /**
+     * Tests that all example activities can be loaded into Activity beans
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testStreamsPojoSourceGenerator() throws Exception {
+//        StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator();
+//        StreamsPojoSourceGenerator.main(new String[0]);
+
+        File testOutput = new File( "./target/generated-sources/streams-pojo");
+        FileFilter javaFilter = new FileFilter() {
+            @Override
+            public boolean accept(File pathname) {
+                if( pathname.getName().endsWith(".java") )
+                    return true;
+                return false;
+            }
+        };
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+        assert( testOutput.listFiles(javaFilter).length == 11 );
+//        assert( new File(testOutput + "/traits").exists() == true );
+//        assert( new File(testOutput + "/traits").isDirectory() == true );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
+//        assert( new File(testOutput + "/objectTypes").exists() == true );
+//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
+//        assert( new File(testO`utput + "/verbs").exists() == true );
+//        assert( new File(testOutput + "/verbs").isDirectory() == true );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/1c78ecc7/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml b/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
new file mode 100644
index 0000000..b1de7b8
--- /dev/null
+++ b/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
@@ -0,0 +1,42 @@
+<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>
+
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-hive-test</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>jar</packaging>
+    <name>Test StreamsPojoHiveMojo</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.streams.plugins</groupId>
+                <artifactId>streams-plugin-hive</artifactId>
+                <version>0.3-incubating-SNAPSHOT</version>
+                <configuration>
+                    <packages>
+                        <package>org.apache.streams.pojo.json</package>
+                    </packages>
+                    <target>target/test-classes/streams-hive-plugin/</target>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>hive</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file


[20/32] incubator-streams git commit: WIP for apachecon

Posted by sb...@apache.org.
WIP for apachecon


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/95a02d71
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/95a02d71
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/95a02d71

Branch: refs/feature/STREAMS-389,398
Commit: 95a02d71c8b28ffda7ef37a151efd896d65b1223
Parents: 02dc8ef
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Fri May 6 19:45:12 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Fri May 6 19:45:12 2016 -0500

----------------------------------------------------------------------
 pom.xml                                         |  10 -
 streams-config/pom.xml                          |   8 +-
 .../spring/streams-cassandra-context.xml        |  25 ++
 .../src/main/jsonschema/com/twitter/tweet.json  |   6 +-
 streams-plugins/pom.xml                         |   4 +
 .../streams-plugin-cassandra/pom.xml            | 244 ++++++++++++
 .../StreamsCassandraGenerationConfig.java       |  81 ++++
 .../StreamsCassandraResourceGenerator.java      | 376 +++++++++++++++++++
 .../StreamsCassandraResourceGeneratorMojo.java  |  93 +++++
 .../src/site/markdown/index.md                  |  22 ++
 ...treamsCassandraResourceGeneratorCLITest.java |  50 +++
 ...reamsCassandraResourceGeneratorMojoTest.java |  75 ++++
 .../StreamsCassandraResourceGeneratorTest.java  | 124 ++++++
 .../resources/streams-plugin-cassandra/pom.xml  |  75 ++++
 .../streams-plugin-elasticsearch/pom.xml        | 245 ++++++++++++
 .../StreamsElasticsearchGenerationConfig.java   |  81 ++++
 .../StreamsElasticsearchResourceGenerator.java  | 373 ++++++++++++++++++
 ...reamsElasticsearchResourceGeneratorMojo.java |  93 +++++
 .../src/site/markdown/index.md                  |  22 ++
 ...sElasticsearchResourceGeneratorMojoTest.java |  50 +++
 ...reamsElasticsearchResourceGeneratorTest.java | 139 +++++++
 .../streams-plugin-elasticsearch/pom.xml        |  75 ++++
 streams-plugins/streams-plugin-hbase/pom.xml    | 244 ++++++++++++
 .../hbase/StreamsHbaseGenerationConfig.java     |  90 +++++
 .../hbase/StreamsHbaseResourceGenerator.java    | 204 ++++++++++
 .../StreamsHbaseResourceGeneratorMojo.java      |  93 +++++
 .../src/site/markdown/index.md                  |  22 ++
 .../StreamsHbaseResourceGeneratorCLITest.java   |  41 ++
 .../StreamsHbaseResourceGeneratorMojoTest.java  |  65 ++++
 .../test/StreamsHbaseResourceGeneratorTest.java | 125 ++++++
 .../test/resources/streams-plugin-hbase/pom.xml |  76 ++++
 streams-plugins/streams-plugin-hive/pom.xml     |   6 +
 .../hive/StreamsHiveResourceGenerator.java      |   7 +-
 .../hive/StreamsHiveResourceGeneratorMojo.java  |  33 +-
 .../src/site/markdown/index.md                  |  22 ++
 .../StreamsHiveResourceGeneratorCLITest.java    |  41 ++
 .../StreamsHiveResourceGeneratorMojoTest.java   |  64 ++++
 .../test/StreamsHiveResourceGeneratorTest.java  |  21 +-
 .../test/resources/streams-plugin-hive/pom.xml  |  41 +-
 streams-plugins/streams-plugin-pig/pom.xml      | 244 ++++++++++++
 .../plugins/pig/StreamsPigGenerationConfig.java |  84 +++++
 .../pig/StreamsPigResourceGenerator.java        | 317 ++++++++++++++++
 .../pig/StreamsPigResourceGeneratorMojo.java    |  93 +++++
 .../src/site/markdown/index.md                  |  22 ++
 .../StreamsPigResourceGeneratorCLITest.java     |  39 ++
 .../StreamsPigResourceGeneratorMojoTest.java    |  64 ++++
 .../test/StreamsPigResourceGeneratorTest.java   | 122 ++++++
 .../src/test/resources/expected/media_link.pig  |   1 +
 .../resources/expected/objectTypes/file.pig     |   1 +
 .../expected/objectTypes/photo-album.pig        |   1 +
 .../test/resources/streams-plugin-pig/pom.xml   |  75 ++++
 streams-plugins/streams-plugin-pojo/pom.xml     |   7 -
 .../plugins/StreamsPojoSourceGenerator.java     |  16 +-
 .../plugins/StreamsPojoSourceGeneratorMojo.java |  43 +--
 .../src/site/markdown/index.md                  |  22 ++
 .../test/StreamsPojoSourceGeneratorCLITest.java |  43 +++
 .../StreamsPojoSourceGeneratorMojoTest.java     |  68 +---
 .../test/StreamsPojoSourceGeneratorTest.java    |  28 +-
 .../test/resources/streams-plugin-pojo/pom.xml  |   1 +
 .../org/apache/streams/schema/FieldUtil.java    |  30 ++
 .../org/apache/streams/schema/FileUtil.java     |  13 +-
 .../apache/streams/schema/GenerationConfig.java |   4 +-
 .../org/apache/streams/schema/SchemaUtil.java   |   4 +-
 .../src/main/jsonschema/activity.json           |  10 +-
 .../src/main/jsonschema/collection.json         |   2 +-
 .../src/main/jsonschema/media_link.json         |   2 +-
 streams-schemas/src/main/jsonschema/object.json |   6 +-
 .../src/main/jsonschema/objectTypes/alert.json  |   2 +-
 .../jsonschema/objectTypes/application.json     |   2 +-
 .../main/jsonschema/objectTypes/article.json    |   2 +-
 .../src/main/jsonschema/objectTypes/audio.json  |   2 +-
 .../src/main/jsonschema/objectTypes/badge.json  |   2 +-
 .../src/main/jsonschema/objectTypes/binary.json |   2 +-
 .../main/jsonschema/objectTypes/bookmark.json   |   2 +-
 .../main/jsonschema/objectTypes/comment.json    |   2 +-
 .../src/main/jsonschema/objectTypes/device.json |   2 +-
 .../src/main/jsonschema/objectTypes/event.json  |   2 +-
 .../src/main/jsonschema/objectTypes/file.json   |   2 +-
 .../src/main/jsonschema/objectTypes/folder.json |   2 +-
 .../src/main/jsonschema/objectTypes/game.json   |   2 +-
 .../src/main/jsonschema/objectTypes/group.json  |   2 +-
 .../src/main/jsonschema/objectTypes/image.json  |   2 +-
 .../src/main/jsonschema/objectTypes/issue.json  |   2 +-
 .../src/main/jsonschema/objectTypes/job.json    |   2 +-
 .../src/main/jsonschema/objectTypes/list.json   |   2 +-
 .../src/main/jsonschema/objectTypes/note.json   |   2 +-
 .../src/main/jsonschema/objectTypes/offer.json  |   2 +-
 .../jsonschema/objectTypes/organization.json    |   2 +-
 .../src/main/jsonschema/objectTypes/page.json   |   2 +-
 .../main/jsonschema/objectTypes/permission.json |   2 +-
 .../src/main/jsonschema/objectTypes/person.json |   2 +-
 .../jsonschema/objectTypes/photo-album.json     |   2 +-
 .../src/main/jsonschema/objectTypes/photo.json  |   2 +-
 .../src/main/jsonschema/objectTypes/place.json  |  18 +-
 .../main/jsonschema/objectTypes/playlist.json   |   2 +-
 .../main/jsonschema/objectTypes/process.json    |   2 +-
 .../main/jsonschema/objectTypes/product.json    |   2 +-
 .../main/jsonschema/objectTypes/property.json   |   2 +-
 .../main/jsonschema/objectTypes/question.json   |   2 +-
 .../src/main/jsonschema/objectTypes/review.json |   2 +-
 .../src/main/jsonschema/objectTypes/role.json   |   2 +-
 .../main/jsonschema/objectTypes/service.json    |   2 +-
 .../src/main/jsonschema/objectTypes/song.json   |   2 +-
 .../src/main/jsonschema/objectTypes/status.json |   2 +-
 .../src/main/jsonschema/objectTypes/task.json   |   2 +-
 .../src/main/jsonschema/objectTypes/team.json   |   2 +-
 .../src/main/jsonschema/objectTypes/video.json  |   2 +-
 .../src/main/jsonschema/verbs/accept.json       |   2 +-
 .../src/main/jsonschema/verbs/access.json       |   2 +-
 .../src/main/jsonschema/verbs/acknowledge.json  |   2 +-
 .../src/main/jsonschema/verbs/add.json          |   2 +-
 .../src/main/jsonschema/verbs/agree.json        |   2 +-
 .../src/main/jsonschema/verbs/append.json       |   2 +-
 .../src/main/jsonschema/verbs/approve.json      |   2 +-
 .../src/main/jsonschema/verbs/archive.json      |   2 +-
 .../src/main/jsonschema/verbs/assign.json       |   2 +-
 .../src/main/jsonschema/verbs/at.json           |   2 +-
 .../src/main/jsonschema/verbs/attach.json       |   2 +-
 .../src/main/jsonschema/verbs/attend.json       |   2 +-
 .../src/main/jsonschema/verbs/author.json       |   2 +-
 .../src/main/jsonschema/verbs/authorize.json    |   2 +-
 .../src/main/jsonschema/verbs/borrow.json       |   2 +-
 .../src/main/jsonschema/verbs/build.json        |   2 +-
 .../src/main/jsonschema/verbs/cancel.json       |   2 +-
 .../src/main/jsonschema/verbs/checkin.json      |   2 +-
 .../src/main/jsonschema/verbs/close.json        |   2 +-
 .../src/main/jsonschema/verbs/complete.json     |   2 +-
 .../src/main/jsonschema/verbs/confirm.json      |   2 +-
 .../src/main/jsonschema/verbs/consume.json      |   2 +-
 .../src/main/jsonschema/verbs/create.json       |   2 +-
 .../src/main/jsonschema/verbs/delete.json       |   2 +-
 .../src/main/jsonschema/verbs/deliver.json      |   2 +-
 .../src/main/jsonschema/verbs/deny.json         |   2 +-
 .../src/main/jsonschema/verbs/disagree.json     |   2 +-
 .../src/main/jsonschema/verbs/dislike.json      |   2 +-
 .../src/main/jsonschema/verbs/experience.json   |   2 +-
 .../src/main/jsonschema/verbs/favorite.json     |   2 +-
 .../src/main/jsonschema/verbs/find.json         |   2 +-
 .../jsonschema/verbs/flag-as-inappropriate.json |   2 +-
 .../src/main/jsonschema/verbs/follow.json       |   2 +-
 .../src/main/jsonschema/verbs/give.json         |   2 +-
 .../src/main/jsonschema/verbs/host.json         |   2 +-
 .../src/main/jsonschema/verbs/ignore.json       |   2 +-
 .../src/main/jsonschema/verbs/insert.json       |   2 +-
 .../src/main/jsonschema/verbs/install.json      |   2 +-
 .../src/main/jsonschema/verbs/interact.json     |   2 +-
 .../src/main/jsonschema/verbs/invite.json       |   2 +-
 .../src/main/jsonschema/verbs/join.json         |   2 +-
 .../src/main/jsonschema/verbs/leave.json        |   2 +-
 .../src/main/jsonschema/verbs/like.json         |   2 +-
 .../src/main/jsonschema/verbs/listen.json       |   2 +-
 .../src/main/jsonschema/verbs/lose.json         |   2 +-
 .../src/main/jsonschema/verbs/make-friend.json  |   2 +-
 .../src/main/jsonschema/verbs/open.json         |   2 +-
 .../src/main/jsonschema/verbs/play.json         |   2 +-
 .../src/main/jsonschema/verbs/post.json         |   2 +-
 .../src/main/jsonschema/verbs/present.json      |   2 +-
 .../src/main/jsonschema/verbs/purchase.json     |   2 +-
 .../src/main/jsonschema/verbs/qualify.json      |   2 +-
 .../src/main/jsonschema/verbs/read.json         |   2 +-
 .../src/main/jsonschema/verbs/receive.json      |   2 +-
 .../src/main/jsonschema/verbs/reject.json       |   2 +-
 .../main/jsonschema/verbs/remove-friend.json    |   2 +-
 .../src/main/jsonschema/verbs/remove.json       |   2 +-
 .../src/main/jsonschema/verbs/replace.json      |   2 +-
 .../main/jsonschema/verbs/request-friend.json   |   2 +-
 .../src/main/jsonschema/verbs/request.json      |   2 +-
 .../src/main/jsonschema/verbs/resolve.json      |   2 +-
 .../src/main/jsonschema/verbs/retract.json      |   2 +-
 .../src/main/jsonschema/verbs/return.json       |   2 +-
 .../src/main/jsonschema/verbs/rsvp-maybe.json   |   2 +-
 .../src/main/jsonschema/verbs/rsvp-no.json      |   2 +-
 .../src/main/jsonschema/verbs/rsvp-yes.json     |   2 +-
 .../src/main/jsonschema/verbs/satisfy.json      |   2 +-
 .../src/main/jsonschema/verbs/save.json         |   2 +-
 .../src/main/jsonschema/verbs/schedule.json     |   2 +-
 .../src/main/jsonschema/verbs/search.json       |   4 +-
 .../src/main/jsonschema/verbs/sell.json         |   2 +-
 .../src/main/jsonschema/verbs/send.json         |  10 +-
 .../src/main/jsonschema/verbs/share.json        |   2 +-
 .../src/main/jsonschema/verbs/sponsor.json      |   2 +-
 .../src/main/jsonschema/verbs/start.json        |   2 +-
 .../main/jsonschema/verbs/stop-following.json   |   4 +-
 .../src/main/jsonschema/verbs/submit.json       |   2 +-
 .../src/main/jsonschema/verbs/tag.json          |   2 +-
 .../src/main/jsonschema/verbs/terminate.json    |   2 +-
 .../src/main/jsonschema/verbs/tie.json          |   2 +-
 .../src/main/jsonschema/verbs/unfavorite.json   |   2 +-
 .../src/main/jsonschema/verbs/unlike.json       |   2 +-
 .../src/main/jsonschema/verbs/unsatisfy.json    |   2 +-
 .../src/main/jsonschema/verbs/unsave.json       |   2 +-
 .../src/main/jsonschema/verbs/unshare.json      |   2 +-
 .../src/main/jsonschema/verbs/update.json       |   2 +-
 .../src/main/jsonschema/verbs/use.json          |   2 +-
 .../src/main/jsonschema/verbs/watch.json        |   2 +-
 .../src/main/jsonschema/verbs/win.json          |   2 +-
 .../src/site/resources/activity.json            | 108 ------
 streams-schemas/src/site/resources/activity.xsd |  94 -----
 .../src/site/resources/collection.json          |  47 ---
 .../src/site/resources/media_link.json          |  34 --
 streams-schemas/src/site/resources/object.json  |  98 -----
 .../src/site/resources/objectTypes/alert.json   |  19 -
 .../site/resources/objectTypes/application.json |  19 -
 .../src/site/resources/objectTypes/article.json |  19 -
 .../src/site/resources/objectTypes/audio.json   |  19 -
 .../src/site/resources/objectTypes/badge.json   |  19 -
 .../src/site/resources/objectTypes/binary.json  |  19 -
 .../site/resources/objectTypes/bookmark.json    |  19 -
 .../src/site/resources/objectTypes/comment.json |  19 -
 .../src/site/resources/objectTypes/device.json  |  19 -
 .../src/site/resources/objectTypes/event.json   |  51 ---
 .../src/site/resources/objectTypes/file.json    |  25 --
 .../src/site/resources/objectTypes/folder.json  |  19 -
 .../src/site/resources/objectTypes/game.json    |  19 -
 .../src/site/resources/objectTypes/group.json   |  19 -
 .../src/site/resources/objectTypes/image.json   |  22 --
 .../src/site/resources/objectTypes/issue.json   |  25 --
 .../src/site/resources/objectTypes/job.json     |  19 -
 .../src/site/resources/objectTypes/list.json    |  28 --
 .../src/site/resources/objectTypes/note.json    |  19 -
 .../src/site/resources/objectTypes/offer.json   |  19 -
 .../resources/objectTypes/organization.json     |  19 -
 .../src/site/resources/objectTypes/page.json    |  19 -
 .../site/resources/objectTypes/permission.json  |  36 --
 .../src/site/resources/objectTypes/person.json  |  25 --
 .../site/resources/objectTypes/photo-album.json |  19 -
 .../src/site/resources/objectTypes/photo.json   |  23 --
 .../src/site/resources/objectTypes/place.json   |  43 ---
 .../site/resources/objectTypes/playlist.json    |  19 -
 .../src/site/resources/objectTypes/process.json |  19 -
 .../src/site/resources/objectTypes/product.json |  25 --
 .../site/resources/objectTypes/property.json    |  48 ---
 .../site/resources/objectTypes/question.json    |  28 --
 .../src/site/resources/objectTypes/review.json  |  22 --
 .../src/site/resources/objectTypes/role.json    |  25 --
 .../src/site/resources/objectTypes/service.json |  19 -
 .../src/site/resources/objectTypes/song.json    |  19 -
 .../src/site/resources/objectTypes/status.json  |  19 -
 .../src/site/resources/objectTypes/task.json    |  40 --
 .../src/site/resources/objectTypes/team.json    |  19 -
 .../src/site/resources/objectTypes/video.json   |  19 -
 .../src/site/resources/verbs/accept.json        |  24 --
 .../src/site/resources/verbs/access.json        |  24 --
 .../src/site/resources/verbs/acknowledge.json   |  24 --
 .../src/site/resources/verbs/add.json           |  24 --
 .../src/site/resources/verbs/agree.json         |  24 --
 .../src/site/resources/verbs/append.json        |  24 --
 .../src/site/resources/verbs/approve.json       |  24 --
 .../src/site/resources/verbs/archive.json       |  24 --
 .../src/site/resources/verbs/assign.json        |  24 --
 .../src/site/resources/verbs/at.json            |  24 --
 .../src/site/resources/verbs/attach.json        |  24 --
 .../src/site/resources/verbs/attend.json        |  24 --
 .../src/site/resources/verbs/author.json        |  24 --
 .../src/site/resources/verbs/authorize.json     |  24 --
 .../src/site/resources/verbs/borrow.json        |  24 --
 .../src/site/resources/verbs/build.json         |  24 --
 .../src/site/resources/verbs/cancel.json        |  24 --
 .../src/site/resources/verbs/checkin.json       |  24 --
 .../src/site/resources/verbs/close.json         |  24 --
 .../src/site/resources/verbs/complete.json      |  24 --
 .../src/site/resources/verbs/confirm.json       |  24 --
 .../src/site/resources/verbs/consume.json       |  24 --
 .../src/site/resources/verbs/create.json        |  24 --
 .../src/site/resources/verbs/delete.json        |  24 --
 .../src/site/resources/verbs/deliver.json       |  24 --
 .../src/site/resources/verbs/deny.json          |  24 --
 .../src/site/resources/verbs/disagree.json      |  24 --
 .../src/site/resources/verbs/dislike.json       |  24 --
 .../src/site/resources/verbs/experience.json    |  24 --
 .../src/site/resources/verbs/favorite.json      |  24 --
 .../src/site/resources/verbs/find.json          |  24 --
 .../resources/verbs/flag-as-inappropriate.json  |  24 --
 .../src/site/resources/verbs/follow.json        |  24 --
 .../src/site/resources/verbs/give.json          |  24 --
 .../src/site/resources/verbs/host.json          |  24 --
 .../src/site/resources/verbs/ignore.json        |  24 --
 .../src/site/resources/verbs/insert.json        |  24 --
 .../src/site/resources/verbs/install.json       |  24 --
 .../src/site/resources/verbs/interact.json      |  24 --
 .../src/site/resources/verbs/invite.json        |  24 --
 .../src/site/resources/verbs/join.json          |  24 --
 .../src/site/resources/verbs/leave.json         |  24 --
 .../src/site/resources/verbs/like.json          |  24 --
 .../src/site/resources/verbs/listen.json        |  24 --
 .../src/site/resources/verbs/lose.json          |  24 --
 .../src/site/resources/verbs/make-friend.json   |  24 --
 .../src/site/resources/verbs/open.json          |  24 --
 .../src/site/resources/verbs/play.json          |  24 --
 .../src/site/resources/verbs/post.json          |  24 --
 .../src/site/resources/verbs/present.json       |  24 --
 .../src/site/resources/verbs/purchase.json      |  24 --
 .../src/site/resources/verbs/qualify.json       |  24 --
 .../src/site/resources/verbs/read.json          |  24 --
 .../src/site/resources/verbs/receive.json       |  24 --
 .../src/site/resources/verbs/reject.json        |  24 --
 .../src/site/resources/verbs/remove-friend.json |  24 --
 .../src/site/resources/verbs/remove.json        |  24 --
 .../src/site/resources/verbs/replace.json       |  24 --
 .../site/resources/verbs/request-friend.json    |  24 --
 .../src/site/resources/verbs/request.json       |  24 --
 .../src/site/resources/verbs/resolve.json       |  24 --
 .../src/site/resources/verbs/retract.json       |  24 --
 .../src/site/resources/verbs/return.json        |  24 --
 .../src/site/resources/verbs/rsvp-maybe.json    |  24 --
 .../src/site/resources/verbs/rsvp-no.json       |  24 --
 .../src/site/resources/verbs/rsvp-yes.json      |  24 --
 .../src/site/resources/verbs/satisfy.json       |  24 --
 .../src/site/resources/verbs/save.json          |  24 --
 .../src/site/resources/verbs/schedule.json      |  24 --
 .../src/site/resources/verbs/search.json        |  24 --
 .../src/site/resources/verbs/sell.json          |  24 --
 .../src/site/resources/verbs/send.json          |  24 --
 .../src/site/resources/verbs/share.json         |  24 --
 .../src/site/resources/verbs/sponsor.json       |  24 --
 .../src/site/resources/verbs/start.json         |  24 --
 .../site/resources/verbs/stop-following.json    |  24 --
 .../src/site/resources/verbs/submit.json        |  24 --
 .../src/site/resources/verbs/tag.json           |  24 --
 .../src/site/resources/verbs/terminate.json     |  24 --
 .../src/site/resources/verbs/tie.json           |  24 --
 .../src/site/resources/verbs/unfavorite.json    |  24 --
 .../src/site/resources/verbs/unlike.json        |  24 --
 .../src/site/resources/verbs/unsatisfy.json     |  24 --
 .../src/site/resources/verbs/unsave.json        |  24 --
 .../src/site/resources/verbs/unshare.json       |  24 --
 .../src/site/resources/verbs/update.json        |  34 --
 .../src/site/resources/verbs/use.json           |  24 --
 .../src/site/resources/verbs/watch.json         |  24 --
 .../src/site/resources/verbs/win.json           |  24 --
 .../schema/test/SchemaOrderingTests.java        | 146 +++++++
 .../streams/schema/test/SchemaStoreTests.java   |  76 ++++
 .../src/test/resources/activities/accept.json   |  16 +
 .../src/test/resources/activities/access.json   |  17 +
 .../test/resources/activities/acknowledge.json  |  16 +
 .../src/test/resources/activities/add.json      |  21 ++
 .../src/test/resources/activities/agree.json    |  15 +
 .../src/test/resources/activities/append.json   |  16 +
 .../src/test/resources/activities/approve.json  |  20 +
 .../src/test/resources/activities/archive.json  |  15 +
 .../src/test/resources/activities/assign.json   |  20 +
 .../src/test/resources/activities/at.json       |  15 +
 .../src/test/resources/activities/attach.json   |  20 +
 .../src/test/resources/activities/attend.json   |  15 +
 .../src/test/resources/activities/author.json   |  15 +
 .../test/resources/activities/authorize.json    |  23 ++
 .../src/test/resources/activities/borrow.json   |  21 ++
 .../src/test/resources/activities/build.json    |  16 +
 .../src/test/resources/activities/cancel.json   |  16 +
 .../src/test/resources/activities/checkin.json  |  16 +
 .../src/test/resources/activities/close.json    |  16 +
 .../src/test/resources/activities/complete.json |  16 +
 .../src/test/resources/activities/confirm.json  |  17 +
 .../src/test/resources/activities/consume.json  |  16 +
 .../src/test/resources/activities/create.json   |  15 +
 .../src/test/resources/activities/delete.json   |  16 +
 .../src/test/resources/activities/deliver.json  |  20 +
 .../src/test/resources/activities/deny.json     |  23 ++
 .../src/test/resources/activities/disagree.json |  30 ++
 .../src/test/resources/activities/dislike.json  |  15 +
 .../test/resources/activities/experience.json   |  16 +
 .../src/test/resources/activities/favorite.json |  15 +
 .../src/test/resources/activities/find.json     |  19 +
 .../activities/flag-as-inappropriate.json       |  24 ++
 .../src/test/resources/activities/follow.json   |  15 +
 .../src/test/resources/activities/give.json     |  28 ++
 .../src/test/resources/activities/host.json     |  15 +
 .../src/test/resources/activities/ignore.json   |  15 +
 .../src/test/resources/activities/insert.json   |  19 +
 .../src/test/resources/activities/install.json  |  18 +
 .../src/test/resources/activities/interact.json |  16 +
 .../src/test/resources/activities/invite.json   |  19 +
 .../src/test/resources/activities/join.json     |  15 +
 .../src/test/resources/activities/leave.json    |  15 +
 .../src/test/resources/activities/like.json     |  22 ++
 .../src/test/resources/activities/listen.json   |  15 +
 .../src/test/resources/activities/lose.json     |  15 +
 .../test/resources/activities/make-friend.json  |  15 +
 .../src/test/resources/activities/open.json     |  15 +
 .../src/test/resources/activities/play.json     |  15 +
 .../src/test/resources/activities/post.json     |  25 ++
 .../src/test/resources/activities/present.json  |  15 +
 .../src/test/resources/activities/purchase.json |  16 +
 .../src/test/resources/activities/qualify.json  |  15 +
 .../src/test/resources/activities/read.json     |  16 +
 .../src/test/resources/activities/receive.json  |  16 +
 .../src/test/resources/activities/reject.json   |  15 +
 .../resources/activities/remove-friend.json     |  15 +
 .../src/test/resources/activities/remove.json   |  23 ++
 .../src/test/resources/activities/replace.json  |  19 +
 .../resources/activities/request-friend.json    |  16 +
 .../src/test/resources/activities/request.json  |  23 ++
 .../src/test/resources/activities/resolve.json  |  15 +
 .../src/test/resources/activities/retract.json  |  26 ++
 .../src/test/resources/activities/return.json   |  19 +
 .../test/resources/activities/rsvp-maybe.json   |  16 +
 .../src/test/resources/activities/rsvp-no.json  |  16 +
 .../src/test/resources/activities/rsvp-yes.json |  16 +
 .../src/test/resources/activities/satisfy.json  |  21 ++
 .../src/test/resources/activities/save.json     |  20 +
 .../src/test/resources/activities/schedule.json |  15 +
 .../src/test/resources/activities/search.json   |  21 ++
 .../src/test/resources/activities/sell.json     |  19 +
 .../src/test/resources/activities/send.json     |  19 +
 .../src/test/resources/activities/share.json    |  16 +
 .../src/test/resources/activities/sponsor.json  |  17 +
 .../src/test/resources/activities/start.json    |  15 +
 .../resources/activities/stop-following.json    |  15 +
 .../src/test/resources/activities/submit.json   |  15 +
 .../src/test/resources/activities/tag.json      |  19 +
 .../test/resources/activities/terminate.json    |  15 +
 .../src/test/resources/activities/tie.json      |  24 ++
 .../test/resources/activities/unfavorite.json   |  15 +
 .../src/test/resources/activities/unlike.json   |  15 +
 .../test/resources/activities/unsatisfy.json    |  20 +
 .../src/test/resources/activities/unsave.json   |  15 +
 .../src/test/resources/activities/unshare.json  |  15 +
 .../src/test/resources/activities/update.json   |  15 +
 .../src/test/resources/activities/use.json      |  15 +
 .../src/test/resources/activities/watch.json    |  16 +
 .../src/test/resources/activities/win.json      |  15 +
 .../src/test/resources/media_link.json          |   7 +
 .../src/test/resources/objects/event.json       |  18 +
 .../src/test/resources/objects/group.json       |  16 +
 .../src/test/resources/objects/issue.json       |   9 +
 .../src/test/resources/objects/note.json        |  12 +
 .../src/test/resources/objects/permission.json  |   9 +
 .../src/test/resources/objects/place.json       |   9 +
 .../src/test/resources/objects/task.json        |  16 +
 .../src/test/resources/objects/video.json       |   8 +
 430 files changed, 6688 insertions(+), 3777 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 30ec5e7..da99ed5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,12 +81,6 @@
             <subscribe>dev-subscribe@streams.incubator.apache.org</subscribe>
             <unsubscribe>dev-unsubscribe@streams.incubator.apache.org</unsubscribe>
         </mailingList>
-        <mailingList>
-            <name>User Mailing List</name>
-            <post>user@streams.incubator.apache.org</post>
-            <subscribe>user-subscribe@streams.incubator.apache.org</subscribe>
-            <unsubscribe>user-unsubscribe@streams.incubator.apache.org</unsubscribe>
-        </mailingList>
     </mailingLists>
 
     <repositories>
@@ -185,10 +179,6 @@
 
     <packaging>pom</packaging>
 
-    <properties>
-        <jsonschema2pojo.version>0.4.22</jsonschema2pojo.version>
-    </properties>
-
     <build>
         <plugins>
             <plugin>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-config/pom.xml
----------------------------------------------------------------------
diff --git a/streams-config/pom.xml b/streams-config/pom.xml
index f9d8de9..5cd118d 100644
--- a/streams-config/pom.xml
+++ b/streams-config/pom.xml
@@ -111,7 +111,7 @@
                         </goals>
                         <configuration>
                             <sources>
-                                <source>target/generated-sources/jsonschema2pojo</source>
+                                <source>${project.basedir}/target/generated-sources/jsonschema2pojo</source>
                             </sources>
                         </configuration>
                     </execution>
@@ -121,12 +121,6 @@
                 <groupId>org.jsonschema2pojo</groupId>
                 <artifactId>jsonschema2pojo-maven-plugin</artifactId>
                 <configuration>
-                    <addCompileSourceRoot>true</addCompileSourceRoot>
-                    <generateBuilders>true</generateBuilders>
-                    <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
-                    </sourcePaths>
-                    <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.config</targetPackage>
                     <useLongIntegers>true</useLongIntegers>
                     <useJodaDates>true</useJodaDates>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-contrib/streams-persist-cassandra/src/site/resources/META_INF/spring/streams-cassandra-context.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-persist-cassandra/src/site/resources/META_INF/spring/streams-cassandra-context.xml b/streams-contrib/streams-persist-cassandra/src/site/resources/META_INF/spring/streams-cassandra-context.xml
new file mode 100644
index 0000000..842c918
--- /dev/null
+++ b/streams-contrib/streams-persist-cassandra/src/site/resources/META_INF/spring/streams-cassandra-context.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ 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
+  ~
+  ~   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.
+  -->
+<beans
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xmlns="http://www.springframework.org/schema/beans"
+        xmlns:context="http://www.springframework.org/schema/context"
+        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+
+</beans>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-contrib/streams-provider-twitter/src/main/jsonschema/com/twitter/tweet.json
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-twitter/src/main/jsonschema/com/twitter/tweet.json b/streams-contrib/streams-provider-twitter/src/main/jsonschema/com/twitter/tweet.json
index 34ca3fa..bdd2201 100644
--- a/streams-contrib/streams-provider-twitter/src/main/jsonschema/com/twitter/tweet.json
+++ b/streams-contrib/streams-provider-twitter/src/main/jsonschema/com/twitter/tweet.json
@@ -97,9 +97,9 @@
                              },
                              "indices": {
                                  "type": "array",
-                                 "items": [{
-                                         "type": "integer"
-                                 }]
+                                 "items": {
+                                     "type": "integer"
+                                 }
                              }
                           }
                     }

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/pom.xml b/streams-plugins/pom.xml
index b90e2d5..5d403ac 100644
--- a/streams-plugins/pom.xml
+++ b/streams-plugins/pom.xml
@@ -36,7 +36,11 @@
     </properties>
 
     <modules>
+        <module>streams-plugin-cassandra</module>
+        <module>streams-plugin-elasticsearch</module>
+        <module>streams-plugin-hbase</module>
         <module>streams-plugin-hive</module>
+        <module>streams-plugin-pig</module>
         <module>streams-plugin-pojo</module>
  	</modules>
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/pom.xml b/streams-plugins/streams-plugin-cassandra/pom.xml
new file mode 100644
index 0000000..b2dbf36
--- /dev/null
+++ b/streams-plugins/streams-plugin-cassandra/pom.xml
@@ -0,0 +1,244 @@
+<?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
+  ~
+  ~   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>
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-cassandra</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>maven-plugin</packaging>
+
+    <parent>
+        <groupId>org.apache.streams</groupId>
+        <artifactId>streams-plugins</artifactId>
+        <version>0.3-incubating-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <properties>
+        <cassandra.version>3.0.0</cassandra.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-config</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.reflections</groupId>
+            <artifactId>reflections</artifactId>
+            <version>0.9.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-aether-provider</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>3.3.3</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-compat</artifactId>
+            <version>3.3.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+            <version>3.3.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.sonatype.aether</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <version>2.7</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.maven</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.shared</groupId>
+            <artifactId>maven-verifier</artifactId>
+            <version>1.6</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>3.0.15</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-plugin-plugin</artifactId>
+            <version>3.4</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-api</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-generators</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-testing</groupId>
+            <artifactId>maven-plugin-testing-harness</artifactId>
+            <version>3.3.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+            <version>2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.joda</groupId>
+            <artifactId>joda-convert</artifactId>
+            <version>1.8.1</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <sourceDirectory>src/main/java</sourceDirectory>
+        <testSourceDirectory>src/test/java</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <version>3.4</version>
+                <configuration>
+                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>mojo-descriptor</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>descriptor</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.reflections</groupId>
+                <artifactId>reflections-maven</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>reflections</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.4</version>
+                <executions>
+                    <execution>
+                        <id>resource-dependencies</id>
+                        <phase>process-test-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <includeGroupIds>org.apache.streams</includeGroupIds>
+                            <includeArtifactIds>streams-schemas</includeArtifactIds>
+                            <includes>**/*.json</includes>
+                            <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraGenerationConfig.java b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraGenerationConfig.java
new file mode 100644
index 0000000..28e20e4
--- /dev/null
+++ b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraGenerationConfig.java
@@ -0,0 +1,81 @@
+package org.apache.streams.plugins.cassandra;
+
+import org.apache.streams.schema.GenerationConfig;
+import org.jsonschema2pojo.DefaultGenerationConfig;
+import org.jsonschema2pojo.util.URLUtil;
+
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Configures StreamsHiveResourceGenerator
+ *
+ *
+ */
+public class StreamsCassandraGenerationConfig extends DefaultGenerationConfig implements GenerationConfig {
+
+    public String getSourceDirectory() {
+        return sourceDirectory;
+    }
+
+    public List<String> getSourcePaths() {
+        return sourcePaths;
+    }
+
+    private String sourceDirectory;
+    private List<String> sourcePaths = new ArrayList<String>();
+    private String targetDirectory;
+    private int maxDepth = 1;
+
+    public Set<String> getExclusions() {
+        return exclusions;
+    }
+
+    public void setExclusions(Set<String> exclusions) {
+        this.exclusions = exclusions;
+    }
+
+    private Set<String> exclusions = new HashSet<String>();
+
+    public int getMaxDepth() {
+        return maxDepth;
+    }
+
+    public void setSourceDirectory(String sourceDirectory) {
+        this.sourceDirectory = sourceDirectory;
+    }
+
+    public void setSourcePaths(List<String> sourcePaths) {
+        this.sourcePaths = sourcePaths;
+    }
+
+    public void setTargetDirectory(String targetDirectory) {
+        this.targetDirectory = targetDirectory;
+    }
+
+    public File getTargetDirectory() {
+        return new File(targetDirectory);
+    }
+
+    public Iterator<URL> getSource() {
+        if (null != sourceDirectory) {
+            return Collections.singleton(URLUtil.parseURL(sourceDirectory)).iterator();
+        }
+        List<URL> sourceURLs = new ArrayList<URL>();
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            for (String source : sourcePaths) {
+                sourceURLs.add(URLUtil.parseURL(source));
+            }
+        return sourceURLs.iterator();
+    }
+
+    public void setMaxDepth(int maxDepth) {
+        this.maxDepth = maxDepth;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGenerator.java b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGenerator.java
new file mode 100644
index 0000000..787ae02
--- /dev/null
+++ b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGenerator.java
@@ -0,0 +1,376 @@
+package org.apache.streams.plugins.cassandra;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.base.Joiner;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+import org.apache.streams.schema.FieldType;
+import org.apache.streams.schema.FieldUtil;
+import org.apache.streams.schema.GenerationConfig;
+import org.apache.streams.schema.Schema;
+import org.apache.streams.schema.SchemaStore;
+import org.apache.streams.schema.URIUtil;
+import org.jsonschema2pojo.util.URLUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.commons.lang3.StringUtils.defaultString;
+import static org.apache.streams.schema.FileUtil.dropExtension;
+import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.schema.FileUtil.resolveRecursive;
+import static org.apache.streams.schema.FileUtil.swapExtension;
+import static org.apache.streams.schema.FileUtil.writeFile;
+
+/**
+ * Created by sblackmon on 5/3/16.
+ */
+public class StreamsCassandraResourceGenerator implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsCassandraResourceGenerator.class);
+
+    private final static String LS = System.getProperty("line.separator");
+
+    private StreamsCassandraGenerationConfig config;
+
+    private SchemaStore schemaStore = new SchemaStore();
+
+    private int currentDepth = 0;
+
+    public static void main(String[] args) {
+        StreamsCassandraGenerationConfig config = new StreamsCassandraGenerationConfig();
+
+        String sourceDirectory = "./target/test-classes/activities";
+        String targetDirectory = "./target/generated-resources/cassandra";
+
+        if( args.length > 0 )
+            sourceDirectory = args[0];
+        if( args.length > 1 )
+            targetDirectory = args[1];
+
+        config.setSourceDirectory(sourceDirectory);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsCassandraResourceGenerator streamsCassandraResourceGenerator = new StreamsCassandraResourceGenerator(config);
+        Thread thread = new Thread(streamsCassandraResourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public StreamsCassandraResourceGenerator(StreamsCassandraGenerationConfig config) {
+        this.config = config;
+    }
+
+    public void run() {
+
+        checkNotNull(config);
+
+        generate(config);
+
+    }
+
+    public void generate(StreamsCassandraGenerationConfig config) {
+
+        LinkedList<File> sourceFiles = new LinkedList<File>();
+
+        for (Iterator<URL> sources = config.getSource(); sources.hasNext();) {
+            URL source = sources.next();
+            sourceFiles.add(URLUtil.getFileFromURL(source));
+        }
+
+        LOGGER.info("Seeded with {} source paths:", sourceFiles.size());
+
+        resolveRecursive((GenerationConfig)config, sourceFiles);
+
+        LOGGER.info("Resolved {} schema files:", sourceFiles.size());
+
+        for (Iterator<File> iterator = sourceFiles.iterator(); iterator.hasNext();) {
+            File item = iterator.next();
+            schemaStore.create(item.toURI());
+        }
+
+        LOGGER.info("Identified {} objects:", schemaStore.getSize());
+
+        String outputFile = config.getTargetDirectory() + "/" + "types.cql";
+        StringBuilder typesContent = new StringBuilder();
+
+        for (Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator(); schemaIterator.hasNext(); ) {
+            Schema schema = schemaIterator.next();
+            currentDepth = 0;
+            if( schema.getURI().getScheme().equals("file")) {
+                String inputFile = schema.getURI().getPath();
+                String resourcePath = dropSourcePathPrefix(inputFile, config.getSourceDirectory());
+                for (String sourcePath : config.getSourcePaths()) {
+                    resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
+                }
+
+                LOGGER.info("Processing {}:", resourcePath);
+
+                String resourceId = schemaSymbol(schema);
+
+                String resourceContent = generateResource(schema, resourceId);
+
+                typesContent.append(resourceContent);
+
+                LOGGER.info("Added {}:", resourceId);
+            }
+        }
+
+        writeFile(outputFile, typesContent.toString());
+
+    }
+
+    public String generateResource(Schema schema, String resourceId) {
+        StringBuilder resourceBuilder = new StringBuilder();
+        resourceBuilder.append("CREATE TYPE ");
+        resourceBuilder.append(resourceId);
+        resourceBuilder.append(" IF NOT EXISTS (");
+        resourceBuilder.append(LS);
+        resourceBuilder = appendRootObject(resourceBuilder, schema, resourceId, ' ');
+        resourceBuilder.append(");");
+        resourceBuilder.append(LS);
+        return resourceBuilder.toString();
+    }
+
+    public StringBuilder appendRootObject(StringBuilder builder, Schema schema, String resourceId, Character seperator) {
+        ObjectNode propertiesNode = schemaStore.resolveProperties(schema, null, resourceId);
+        if( propertiesNode.get("id") != null ) {
+            builder.append("id text PRIMARY KEY,");
+            builder.append(LS);
+            propertiesNode.remove("id");
+        }
+        if( propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0) {
+            builder = appendPropertiesNode(builder, schema, propertiesNode, seperator);
+        }
+        return builder;
+    }
+
+    private StringBuilder appendValueField(StringBuilder builder, Schema schema, String fieldId, FieldType fieldType, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        builder.append(cqlEscape(fieldId));
+        builder.append(seperator);
+        builder.append(cqlType(fieldType));
+        return builder;
+    }
+
+    public StringBuilder appendArrayItems(StringBuilder builder, Schema schema, String fieldId, ObjectNode itemsNode, Character seperator) {
+        // not safe to append nothing
+        checkNotNull(builder);
+        if( itemsNode == null ) return builder;
+        if( itemsNode.has("type")) {
+            try {
+                FieldType itemType = FieldUtil.determineFieldType(itemsNode);
+                switch( itemType ) {
+                    case OBJECT:
+                        Schema objectSchema = null;
+                        URI parentURI = null;
+                        if( itemsNode.has("$ref") || itemsNode.has("extends") ) {
+                            JsonNode refNode = itemsNode.get("$ref");
+                            JsonNode extendsNode = itemsNode.get("extends");
+                            if (refNode != null && refNode.isValueNode())
+                                parentURI = URI.create(refNode.asText());
+                            else if (extendsNode != null && extendsNode.isObject())
+                                parentURI = URI.create(extendsNode.get("$ref").asText());
+                            URI absoluteURI;
+                            if (parentURI.isAbsolute())
+                                absoluteURI = parentURI;
+                            else {
+                                absoluteURI = schema.getURI().resolve(parentURI);
+                                if (!absoluteURI.isAbsolute() || (absoluteURI.isAbsolute() && !schemaStore.getByUri(absoluteURI).isPresent() ))
+                                    absoluteURI = schema.getParentURI().resolve(parentURI);
+                            }
+                            if (absoluteURI != null && absoluteURI.isAbsolute()) {
+                                Optional<Schema> schemaLookup = schemaStore.getByUri(absoluteURI);
+                                if (schemaLookup.isPresent()) {
+                                    objectSchema = schemaLookup.get();
+                                }
+                            }
+                        }
+                        // have to resolve schema here
+
+                        builder = appendArrayObject(builder, objectSchema, fieldId, seperator);
+                        break;
+                    case ARRAY:
+                        ObjectNode subArrayItems = (ObjectNode) itemsNode.get("items");
+                        builder = appendArrayItems(builder, schema, fieldId, subArrayItems, seperator);
+                        break;
+                    default:
+                        builder = appendArrayField(builder, schema, fieldId, itemType, seperator);
+                }
+            } catch (Exception e) {
+                LOGGER.warn("No item type resolvable for {}", fieldId);
+            }
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendArrayField(StringBuilder builder, Schema schema, String fieldId, FieldType fieldType, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        checkNotNull(fieldId);
+        builder.append(cqlEscape(fieldId));
+        builder.append(seperator);
+        builder.append("list<"+cqlType(fieldType)+">");
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendArrayObject(StringBuilder builder, Schema schema, String fieldId, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        String schemaSymbol = schemaSymbol(schema);
+        if( !Strings.isNullOrEmpty(fieldId) && schemaSymbol != null ) {
+            builder.append(cqlEscape(fieldId));
+            builder.append(seperator);
+            builder.append("list<" + schemaSymbol + ">");
+            builder.append(LS);
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendSchemaField(StringBuilder builder, Schema schema, String fieldId, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        String schemaSymbol = schemaSymbol(schema);
+        if( !Strings.isNullOrEmpty(fieldId) && schemaSymbol != null ) {
+            builder.append(cqlEscape(fieldId));
+            builder.append(seperator);
+            builder.append(schemaSymbol);
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    /*
+     can this be moved to streams-schemas if schemastore available in scope?
+     maybe an interface?
+     lot of boilerplate / reuse between plugins
+     however treatment is way different when resolving a type symbol vs resolving and listing fields .
+     */
+    private StringBuilder appendPropertiesNode(StringBuilder builder, Schema schema, ObjectNode propertiesNode, Character seperator) {
+        checkNotNull(builder);
+        checkNotNull(propertiesNode);
+        Iterator<Map.Entry<String, JsonNode>> fields = propertiesNode.fields();
+        Joiner joiner = Joiner.on(","+LS).skipNulls();
+        List<String> fieldStrings = Lists.newArrayList();
+        for( ; fields.hasNext(); ) {
+            Map.Entry<String, JsonNode> field = fields.next();
+            String fieldId = field.getKey();
+            if( !config.getExclusions().contains(fieldId) && field.getValue().isObject()) {
+                ObjectNode fieldNode = (ObjectNode) field.getValue();
+                FieldType fieldType = FieldUtil.determineFieldType(fieldNode);
+                if (fieldType != null ) {
+                    switch (fieldType) {
+                        case ARRAY:
+                            ObjectNode itemsNode = (ObjectNode) fieldNode.get("items");
+                            if( currentDepth <= config.getMaxDepth()) {
+                                StringBuilder arrayItemsBuilder = appendArrayItems(new StringBuilder(), schema, fieldId, itemsNode, seperator);
+                                if( !Strings.isNullOrEmpty(arrayItemsBuilder.toString())) {
+                                    fieldStrings.add(arrayItemsBuilder.toString());
+                                }
+                            }
+                            break;
+                        case OBJECT:
+                            Schema objectSchema = null;
+                            URI parentURI = null;
+                            if( fieldNode.has("$ref") || fieldNode.has("extends") ) {
+                                JsonNode refNode = fieldNode.get("$ref");
+                                JsonNode extendsNode = fieldNode.get("extends");
+                                if (refNode != null && refNode.isValueNode())
+                                    parentURI = URI.create(refNode.asText());
+                                else if (extendsNode != null && extendsNode.isObject())
+                                    parentURI = URI.create(extendsNode.get("$ref").asText());
+                                URI absoluteURI;
+                                if (parentURI.isAbsolute())
+                                    absoluteURI = parentURI;
+                                else {
+                                    absoluteURI = schema.getURI().resolve(parentURI);
+                                    if (!absoluteURI.isAbsolute() || (absoluteURI.isAbsolute() && !schemaStore.getByUri(absoluteURI).isPresent() ))
+                                        absoluteURI = schema.getParentURI().resolve(parentURI);
+                                }
+                                if (absoluteURI != null && absoluteURI.isAbsolute()) {
+                                    Optional<Schema> schemaLookup = schemaStore.getByUri(absoluteURI);
+                                    if (schemaLookup.isPresent()) {
+                                        objectSchema = schemaLookup.get();
+                                    }
+                                }
+                            }
+                            //ObjectNode childProperties = schemaStore.resolveProperties(schema, fieldNode, fieldId);
+                            if( currentDepth < config.getMaxDepth()) {
+                                StringBuilder structFieldBuilder = appendSchemaField(new StringBuilder(), objectSchema, fieldId, seperator);
+                                if( !Strings.isNullOrEmpty(structFieldBuilder.toString())) {
+                                    fieldStrings.add(structFieldBuilder.toString());
+                                }
+                            }
+                            break;
+                        default:
+                            StringBuilder valueFieldBuilder = appendValueField(new StringBuilder(), schema, fieldId, fieldType, seperator);
+                            if( !Strings.isNullOrEmpty(valueFieldBuilder.toString())) {
+                                fieldStrings.add(valueFieldBuilder.toString());
+                            }
+                    }
+                }
+            }
+        }
+        builder.append(joiner.join(fieldStrings)).append(LS);
+        Preconditions.checkNotNull(builder);
+        return builder;
+    }
+
+    private static String cqlEscape( String fieldId ) {
+        return "`"+fieldId+"`";
+    }
+
+    private static String cqlType( FieldType fieldType ) {
+        switch( fieldType ) {
+            case STRING:
+                return "text";
+            case INTEGER:
+                return "int";
+            case NUMBER:
+                return "double";
+            case OBJECT:
+                return "tuple";
+            case ARRAY:
+                return "list";
+            default:
+                return fieldType.name().toUpperCase();
+        }
+    }
+
+    private String schemaSymbol( Schema schema ) {
+        if (schema == null) return null;
+        // this needs to return whatever
+        if (schema.getURI().getScheme().equals("file")) {
+            String inputFile = schema.getURI().getPath();
+            String resourcePath = dropSourcePathPrefix(inputFile, config.getSourceDirectory());
+            for (String sourcePath : config.getSourcePaths()) {
+                resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
+            }
+            return dropExtension(resourcePath).replace("/", "_");
+        } else {
+            return "IDK";
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGeneratorMojo.java b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGeneratorMojo.java
new file mode 100644
index 0000000..2e9a37f
--- /dev/null
+++ b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGeneratorMojo.java
@@ -0,0 +1,93 @@
+package org.apache.streams.plugins.cassandra;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.List;
+
+@Mojo(  name = "cassandra",
+        defaultPhase = LifecyclePhase.GENERATE_RESOURCES
+)
+@Execute(   goal = "cassandra",
+            phase = LifecyclePhase.GENERATE_RESOURCES
+)
+public class StreamsCassandraResourceGeneratorMojo extends AbstractMojo {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsCassandraResourceGeneratorMojo.class);
+
+    private volatile MojoFailureException mojoFailureException;
+
+    @Component
+    private MavenProject project;
+
+//    @Component
+//    private Settings settings;
+//
+//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+//    protected ArtifactRepository localRepository;
+//
+//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
+//    private PluginDescriptor plugin;
+//
+    @Parameter( defaultValue = "${project.basedir}", readonly = true )
+    private File basedir;
+
+    @Parameter( defaultValue = "src/main/jsonschema", readonly = true ) // Maven 3 only
+    public String sourceDirectory;
+
+    @Parameter( readonly = true ) // Maven 3 only
+    public List<String> sourcePaths;
+
+    @Parameter(defaultValue = "target/generated-resources/cassandra", readonly = true)
+    public String targetDirectory;
+
+    public void execute() throws MojoExecutionException, MojoFailureException {
+
+        //addProjectDependenciesToClasspath();
+
+        StreamsCassandraGenerationConfig config = new StreamsCassandraGenerationConfig();
+
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            config.setSourcePaths(sourcePaths);
+        else
+            config.setSourceDirectory(sourceDirectory);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsCassandraResourceGenerator streamsCassandraResourceGenerator = new StreamsCassandraResourceGenerator(config);
+
+        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
+            public void uncaughtException(Thread th, Throwable ex) {
+                LOGGER.error("Exception", ex);
+                mojoFailureException = new MojoFailureException("Exception", ex);
+            }
+        };
+        Thread.setDefaultUncaughtExceptionHandler(h);
+        Thread thread = new Thread(streamsCassandraResourceGenerator);
+        thread.setUncaughtExceptionHandler(h);
+        try {
+            thread.start();
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+            mojoFailureException = new MojoFailureException("Exception", e);
+        }
+
+        if( mojoFailureException != null )
+            throw mojoFailureException;
+
+        return;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-cassandra/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/site/markdown/index.md b/streams-plugins/streams-plugin-cassandra/src/site/markdown/index.md
new file mode 100644
index 0000000..d0c2129
--- /dev/null
+++ b/streams-plugins/streams-plugin-cassandra/src/site/markdown/index.md
@@ -0,0 +1,22 @@
+org.apache.streams.plugins:streams-plugin-cassandra
+===================================================
+
+streams-plugin-cassandra generates resources from json schemas to assist with indexing of json data using Apache Cassandra.
+
+#### Usage
+
+Run within a module containing a src/main/jsonschema directory
+
+    mvn org.apache.streams.plugins:streams-plugin-cassandra:0.3-incubating-SNAPSHOT:cassandra
+
+Output will be placed in target/generated-resources/cassandra by default
+
+#### Example
+
+[streams-plugin-cassandra/pom.xml](streams-plugin-cassandra/pom.xml "streams-plugin-cassandra/pom.xml")
+
+#### Documentation
+
+[JavaDocs](apidocs/index.html "JavaDocs")
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorCLITest.java b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorCLITest.java
new file mode 100644
index 0000000..465a326
--- /dev/null
+++ b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorCLITest.java
@@ -0,0 +1,50 @@
+package org.apache.streams.plugins.cassandra.test;
+
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.streams.plugins.cassandra.StreamsCassandraResourceGenerator;
+import org.junit.Test;
+
+import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collection;
+import java.util.List;
+
+import static org.apache.streams.plugins.cassandra.test.StreamsCassandraResourceGeneratorTest.cqlFilter;
+
+/**
+ * Created by sblackmon on 5/5/16.
+ */
+public class StreamsCassandraResourceGeneratorCLITest {
+
+    @Test
+    public void testStreamsHiveResourceGeneratorCLI() throws Exception {
+
+        String sourceDirectory = "target/test-classes/streams-schemas";
+        String targetDirectory = "target/generated-resources/cassandra-cli";
+
+        List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);
+        StreamsCassandraResourceGenerator.main(argsList.toArray(new String[0]));
+
+        File testOutput = new File( targetDirectory );
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(cqlFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 1 );
+
+        Path path = Paths.get("types.cql");
+
+        String typesCqlBytes = new String(
+                java.nio.file.Files.readAllBytes(path));
+
+        assert( StringUtils.countMatches(typesCqlBytes, "CREATE TYPE") == 133 );
+
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorMojoTest.java
new file mode 100644
index 0000000..aad069f
--- /dev/null
+++ b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorMojoTest.java
@@ -0,0 +1,75 @@
+package org.apache.streams.plugins.cassandra.test;
+
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import junit.framework.TestCase;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.maven.it.Verifier;
+import org.apache.maven.it.util.ResourceExtractor;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import static org.apache.streams.plugins.cassandra.test.StreamsCassandraResourceGeneratorTest.cqlFilter;
+
+/**
+ * Tests that streams-plugin-hive running via maven generates hql resources
+ */
+public class StreamsCassandraResourceGeneratorMojoTest extends TestCase {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsCassandraResourceGeneratorMojoTest.class);
+
+    protected void setUp() throws Exception
+    {
+        // required for mojo lookups to work
+        super.setUp();
+    }
+
+    @Test
+    public void testStreamsCassandraResourceGeneratorMojo() throws Exception {
+
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/streams-plugin-cassandra" );
+
+        Verifier verifier;
+
+        verifier = new Verifier( testDir.getAbsolutePath() );
+
+        List cliOptions = new ArrayList();
+        cliOptions.add( "-N" );
+        verifier.executeGoals( Lists.<String>newArrayList(
+                "clean",
+                "dependency:unpack-dependencies",
+                "generate-resources"));
+
+        verifier.verifyErrorFreeLog();
+
+        verifier.resetStreams();
+
+        File testOutput = new File( "./target/generated-resources/test-mojo");
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(cqlFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 1 );
+
+        Path path = Paths.get("./target/generated-sources/test/types.cql");
+
+        String typesCqlBytes = new String(
+                java.nio.file.Files.readAllBytes(path));
+
+        assert( StringUtils.countMatches(typesCqlBytes, "CREATE TYPE") == 133 );
+
+        assert( !typesCqlBytes.contains("IDK"));
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorTest.java b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorTest.java
new file mode 100644
index 0000000..d46eaa6
--- /dev/null
+++ b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorTest.java
@@ -0,0 +1,124 @@
+package org.apache.streams.plugins.cassandra.test;
+
+import com.google.common.base.Charsets;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.google.common.io.Files;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.streams.plugins.cassandra.StreamsCassandraGenerationConfig;
+import org.apache.streams.plugins.cassandra.StreamsCassandraResourceGenerator;
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.annotation.Nullable;
+import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+
+/**
+ * Test that cassandra resources are generated.
+ */
+public class StreamsCassandraResourceGeneratorTest {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsCassandraResourceGeneratorTest.class);
+
+    public static final Predicate<File> cqlFilter = new Predicate<File>() {
+        @Override
+        public boolean apply(@Nullable File file) {
+            if( file.getName().endsWith(".cql") )
+                return true;
+            else return false;
+        }
+    };
+
+    /**
+     * Test that cassandra resources are generated
+     *
+     * @throws Exception
+     */
+    @Test
+    public void StreamsCassandraResourceGenerator() throws Exception {
+
+        StreamsCassandraGenerationConfig config = new StreamsCassandraGenerationConfig();
+
+        String sourceDirectory = "target/test-classes/streams-schemas";
+
+        config.setSourceDirectory(sourceDirectory);
+
+        config.setTargetDirectory("target/generated-sources/test");
+
+        config.setExclusions(Sets.newHashSet("attachments"));
+
+        config.setMaxDepth(2);
+
+        StreamsCassandraResourceGenerator streamsCassandraResourceGenerator = new StreamsCassandraResourceGenerator(config);
+        Thread thread = new Thread(streamsCassandraResourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+
+        File testOutput = new File( "./target/generated-sources/test");
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(cqlFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 1 );
+
+        Path path = Paths.get("./target/generated-sources/test/types.cql");
+
+        String typesCqlBytes = new String(
+                java.nio.file.Files.readAllBytes(path));
+
+        assert( StringUtils.countMatches(typesCqlBytes, "CREATE TYPE") == 133 );
+
+        assert( !typesCqlBytes.contains("IDK"));
+
+
+//        String expectedDirectory = "target/test-classes/expected";
+//        File testExpected = new File( expectedDirectory );
+//
+//        Iterable<File> expectedIterator = Files.fileTreeTraverser().breadthFirstTraversal(testExpected)
+//                .filter(cqlFilter);
+//        Collection<File> expectedCollection = Lists.newArrayList(expectedIterator);
+//
+//        int fails = 0;
+//
+//        Iterator<File> iterator = expectedCollection.iterator();
+//        while( iterator.hasNext() ) {
+//            File objectExpected = iterator.next();
+//            String expectedEnd = dropSourcePathPrefix(objectExpected.getAbsolutePath(),  expectedDirectory);
+//            File objectActual = new File(config.getTargetDirectory() + "/" + expectedEnd);
+//            LOGGER.info("Comparing: {} and {}", objectExpected.getAbsolutePath(), objectActual.getAbsolutePath());
+//            assert( objectActual.exists());
+//            if( FileUtils.contentEquals(objectActual, objectExpected) == true ) {
+//                LOGGER.info("Exact Match!");
+//            } else {
+//                LOGGER.info("No Match!");
+//                fails++;
+//            }
+//        }
+//        if( fails > 0 ) {
+//            LOGGER.info("Fails: {}", fails);
+//            Assert.fail();
+//        }
+
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-cassandra/src/test/resources/streams-plugin-cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/test/resources/streams-plugin-cassandra/pom.xml b/streams-plugins/streams-plugin-cassandra/src/test/resources/streams-plugin-cassandra/pom.xml
new file mode 100644
index 0000000..064ea52
--- /dev/null
+++ b/streams-plugins/streams-plugin-cassandra/src/test/resources/streams-plugin-cassandra/pom.xml
@@ -0,0 +1,75 @@
+<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>
+
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-cassandra-test</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>jar</packaging>
+    <name>Test StreamsCassandraResourceGeneratorMojo</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.streams.plugins</groupId>
+                <artifactId>streams-plugin-cassandra</artifactId>
+                <version>0.3-incubating-SNAPSHOT</version>
+                <configuration>
+                    <sourcePaths>
+                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                    </sourcePaths>
+                    <targetDirectory>target/generated-resources/test-mojo</targetDirectory>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>cassandra</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.10</version>
+                <configuration>
+                    <includes>**/*.json</includes>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <includeGroupIds>org.apache.streams</includeGroupIds>
+                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeTypes>jar,test-jar</includeTypes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>unpack-schemas</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file


[07/32] incubator-streams git commit: STREAMS-398 - streams-schemas

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/terminate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/terminate.json b/streams-schemas/src/main/jsonschema/verbs/terminate.json
new file mode 100644
index 0000000..280eb31
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/terminate.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Terminate",
+    "description": "Indicates that the actor has terminated the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "terminate"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} terminated {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/tie.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/tie.json b/streams-schemas/src/main/jsonschema/verbs/tie.json
new file mode 100644
index 0000000..7530ed2
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/tie.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Tie",
+    "description": "Indicates that the actor has neither won or lost the object. This verb is generally only applicable when the object represents some form of competition, such as a game.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "tie"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} tied at {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/unfavorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unfavorite.json b/streams-schemas/src/main/jsonschema/verbs/unfavorite.json
new file mode 100644
index 0000000..bfa9c20
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/unfavorite.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnFavorite",
+    "description": "Indicates that the actor has removed the object from the collection of favorited items.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unfavorite"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} removed {object.displayName} as a favorite"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/unlike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unlike.json b/streams-schemas/src/main/jsonschema/verbs/unlike.json
new file mode 100644
index 0000000..4dc75f6
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/unlike.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnLike",
+    "description": "Indicates that the actor has removed the object from the collection of liked items.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unlike"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} no longer likes {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json b/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json
new file mode 100644
index 0000000..8ea075b
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/unsatisfy.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnSatisfy",
+    "description": "Indicates that the actor has not satisfied the object. If a target is specified, it indicates the context within which the object was not satisfied. For instance, if a person fails to satisfy the requirements of some particular challenge, the person is the actor; the requirement is the object and the challenge is the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unsatisfy"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} has not satisfied {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/unsave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unsave.json b/streams-schemas/src/main/jsonschema/verbs/unsave.json
new file mode 100644
index 0000000..e45a97f
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/unsave.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnSave",
+    "description": "Indicates that the actor has removed the object from the collection of saved items.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unsave"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} unsaved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/unshare.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/unshare.json b/streams-schemas/src/main/jsonschema/verbs/unshare.json
new file mode 100644
index 0000000..4ca924b
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/unshare.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnSave",
+    "description": "Indicates that the actor is no longer sharing the object. If a target is specified, it indicates the entity with whom the object is no longer being shared.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "unshare"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is no longer sharing {object.displayName} with {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/update.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/update.json b/streams-schemas/src/main/jsonschema/verbs/update.json
new file mode 100644
index 0000000..4b143fc
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/update.json
@@ -0,0 +1,34 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Update",
+    "description": "The \"update\" verb indicates that the actor has modified the object. Use of the \"update\" verb is generally reserved to indicate modifications to existing objects or data such as changing an existing user's profile information.",
+    "notes": "The new property value can be a scalar value or an object. See the property object type",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "update"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} updated {target.displayName}'s {object.displayName} to {object.value}"
+        },
+        "object": {
+            "type": "object",
+            "$ref": "../object.json"
+        },
+        "target": {
+            "type": "object",
+            "optional": true,
+            "$ref": "../object.json"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/use.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/use.json b/streams-schemas/src/main/jsonschema/verbs/use.json
new file mode 100644
index 0000000..d5a79fd
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/use.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Use",
+    "description": "Indicates that the actor has used the object in some manner.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "use"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} used {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/watch.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/watch.json b/streams-schemas/src/main/jsonschema/verbs/watch.json
new file mode 100644
index 0000000..192d56e
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/watch.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Watch",
+    "description": "Indicates that the actor has watched the object. This verb is typically applicable only when the object represents dynamic, visible content such as a movie, a television show or a public performance.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "watch"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} watched {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/win.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/win.json b/streams-schemas/src/main/jsonschema/verbs/win.json
new file mode 100644
index 0000000..a5bef2a
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/win.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Win",
+    "description": "Indicates that the actor has won the object.  For instance, if a person wins a game.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "win"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} won {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/xmlschema/activity.xsd
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/xmlschema/activity.xsd b/streams-schemas/src/main/xmlschema/activity.xsd
new file mode 100644
index 0000000..1d81b44
--- /dev/null
+++ b/streams-schemas/src/main/xmlschema/activity.xsd
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ 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
+  ~
+  ~   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.
+  -->
+
+<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+    <xs:element name="id" type="xs:string"/>
+    <xs:element name="actor" type="objectType"/>
+    <xs:element name="verb" type="verbType"/>
+    <xs:element name="object" type="objectType"/>
+    <xs:element name="target" type="objectType"/>
+    <xs:element name="object-type" type="xs:string"/>
+    <xs:element name="published" type="xs:dateTime"/>
+    <xs:element name="updated" type="xs:dateTime"/>
+    <xs:element name="provider" type="objectType"/>
+    <xs:element name="title" type="xs:string"/>
+    <xs:element name="content" type="xs:string"/>
+    <xs:element name="url" type="xs:string"/>
+
+    <xs:simpleType name="verbType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="favorite"/>
+            <xs:enumeration value="follow"/>
+            <xs:enumeration value="join"/>
+            <xs:enumeration value="like"/>
+            <xs:enumeration value="make-friend"/>
+            <xs:enumeration value="play"/>
+            <xs:enumeration value="post"/>
+            <xs:enumeration value="rsvp-yes"/>
+            <xs:enumeration value="rsvp-no"/>
+            <xs:enumeration value="rsvp-maybe"/>
+            <xs:enumeration value="save"/>
+            <xs:enumeration value="share"/>
+            <xs:enumeration value="tag"/>
+            <xs:enumeration value="update"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:complexType name="objectType">
+        <xs:sequence>
+            <xs:element name="id" type="xs:string"/>
+            <xs:element name="image" type="mediaLink"/>
+            <xs:element name="displayName" type="xs:string"/>
+            <xs:element name="summary" type="xs:string"/>
+            <xs:element name="content" type="xs:string"/>
+            <xs:element name="url" type="xs:string"/>
+            <xs:element name="published" type="xs:string"/>
+            <xs:element name="updated" type="xs:string"/>
+            <xs:element name="object-type" >
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="article"/>
+                        <xs:enumeration value="audio"/>
+                        <xs:enumeration value="badge"/>
+                        <xs:enumeration value="collection"/>
+                        <xs:enumeration value="comment"/>
+                        <xs:enumeration value="course"/>
+                        <xs:enumeration value="file"/>
+                        <xs:enumeration value="image"/>
+                        <xs:enumeration value="person"/>
+                        <xs:enumeration value="review"/>
+                        <xs:enumeration value="service"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+        </xs:sequence>
+
+    </xs:complexType>
+
+    <xs:complexType name="mediaLink">
+        <xs:sequence>
+            <xs:element name="duration" type="xs:positiveInteger"/>
+            <xs:element name="height" type="xs:positiveInteger"/>
+            <xs:element name="width" type="xs:positiveInteger"/>
+            <xs:element name="url" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+</xs:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/activity.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/activity.json b/streams-schemas/src/site/resources/activity.json
new file mode 100644
index 0000000..8c058a4
--- /dev/null
+++ b/streams-schemas/src/site/resources/activity.json
@@ -0,0 +1,108 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "activity",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "An activity construct recounts what an actor did to an object in the past. If there is no actor it simply describes the change.",
+    "additionalProperties": true,
+    "properties": {
+        "id": {
+            "type": "string",
+            "description": "Uniquely identifies each activity within the service",
+            "required": true
+        },
+        "actor": {
+            "type": "object",
+            "required": true,
+            "description": "Describes the entity that performed the activity. An activity MUST contain one actor property whose value is a single Object.",
+            "javaInterfaces": ["java.io.Serializable"],
+            "$ref": "./object.json"
+        },
+        "verb": {
+            "title": "verb",
+            "type": "string",
+            "default": "post",
+            "required": true,
+            "description": "Identifies the action that the activity describes. An activity MUST contain a verb property whose value is a JSON String that is non-empty and matches either the \"isegment-nz-nc\" or the \"IRI\" production in [RFC3987]. Note that the use of a relative reference other than a simple name is not allowed."
+        },
+        "object": {
+            "type": "object",
+            "required": true,
+            "description": "Describes the primary object of the activity. For instance, in the activity, \"John saved a movie to his wishlist\", the object of the activity is \"movie\". An activity SHOULD contain an object property whose value is a single Object. If the object property is not contained, the primary object of the activity MAY be implied by context.",
+            "$ref": "./object.json"
+        },
+        "target": {
+            "type": "object",
+            "description": "Describes the target of the activity. The precise meaning of the activity's target is dependent on the activities verb, but will often be the object the English preposition \"to\". For instance, in the activity, \"John saved a movie to his wishlist\", the target of the activity is \"wishlist\". The activity target MUST NOT be used to identity an indirect object that is not a target of the activity. An activity MAY contain a target property whose value is a single Object.",
+            "$ref": "./object.json"
+        },
+        "published": {
+            "type": "string",
+            "description": "The date and time at which the activity occurred. It is important to note that this is not necessarily the same as the time at which the activity was published. An activity MUST contain a postedTime property.",
+            "format": "date-time"
+        },
+        "updated": {
+            "type": "string",
+            "description": "The date and time at which a previously published activity has been modified. An Activity MAY contain an updatedTime property",
+            "format": "date-time"
+        },
+        "generator": {
+            "type": "object",
+            "description": "Describes the application that generated the activity. An activity MAY contain a generator property whose value is a single Object.",
+            "javaInterfaces": ["java.io.Serializable"],
+            "extends": {
+                "$ref": "./object.json"
+            }
+        },
+        "icon": {
+            "type": "object",
+            "javaInterfaces": ["java.io.Serializable"],
+            "properties": {
+                "$ref": "./media_link.json#properties"
+            },
+            "description": "An IRI[RFC3987] identifying an image resource provides a visual representation of the activity, intended for human consumption. The image SHOULD have an aspect ratio of one (horizontal) to one (vertical) and SHOULD be suitable for presentation at a small size. An activity MAY have an icon property"
+        },
+        "provider": {
+            "type": "object",
+            "description": "Describes the application that published the activity. Note that this is not necessarily the same entity that generated the activity. An activity MAY contain a provider property whose value is a single Object",
+            "javaInterfaces": ["java.io.Serializable"],
+            "extends": {
+                "$ref": "./object.json"
+            }
+        },
+        "title": {
+            "type": "string",
+            "description": "Natural-language title or headline for the activity encoded as a single JSON String containing HTML markup. An activity MAY contain a title property",
+            "format": "html"
+        },
+        "content": {
+            "type": "string",
+            "description": "Natural-language description of the activity encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a content property",
+            "format": "html"
+        },
+        "url": {
+            "type": "string",
+            "description": "An IRI [RFC3987] identifying a resource providing an HTML representation of the activity. An activity MAY contain a url property",
+            "format": "url"
+        },
+        "links": {
+            "type": "array",
+            "description": "Links between this object and other resources as defined in Web Linking",
+            "note": "Tell JSON schema team to not put links inside http://json-schema.org/hyper-schema#properties",
+            "items": {
+                "type": "string"
+            }
+        }
+    },
+    "links": [
+        {
+            "rel": "describedby",
+            "href": "./verbs/{verb}.json"
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/activity.xsd
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/activity.xsd b/streams-schemas/src/site/resources/activity.xsd
new file mode 100644
index 0000000..1d81b44
--- /dev/null
+++ b/streams-schemas/src/site/resources/activity.xsd
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ 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
+  ~
+  ~   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.
+  -->
+
+<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+    <xs:element name="id" type="xs:string"/>
+    <xs:element name="actor" type="objectType"/>
+    <xs:element name="verb" type="verbType"/>
+    <xs:element name="object" type="objectType"/>
+    <xs:element name="target" type="objectType"/>
+    <xs:element name="object-type" type="xs:string"/>
+    <xs:element name="published" type="xs:dateTime"/>
+    <xs:element name="updated" type="xs:dateTime"/>
+    <xs:element name="provider" type="objectType"/>
+    <xs:element name="title" type="xs:string"/>
+    <xs:element name="content" type="xs:string"/>
+    <xs:element name="url" type="xs:string"/>
+
+    <xs:simpleType name="verbType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="favorite"/>
+            <xs:enumeration value="follow"/>
+            <xs:enumeration value="join"/>
+            <xs:enumeration value="like"/>
+            <xs:enumeration value="make-friend"/>
+            <xs:enumeration value="play"/>
+            <xs:enumeration value="post"/>
+            <xs:enumeration value="rsvp-yes"/>
+            <xs:enumeration value="rsvp-no"/>
+            <xs:enumeration value="rsvp-maybe"/>
+            <xs:enumeration value="save"/>
+            <xs:enumeration value="share"/>
+            <xs:enumeration value="tag"/>
+            <xs:enumeration value="update"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:complexType name="objectType">
+        <xs:sequence>
+            <xs:element name="id" type="xs:string"/>
+            <xs:element name="image" type="mediaLink"/>
+            <xs:element name="displayName" type="xs:string"/>
+            <xs:element name="summary" type="xs:string"/>
+            <xs:element name="content" type="xs:string"/>
+            <xs:element name="url" type="xs:string"/>
+            <xs:element name="published" type="xs:string"/>
+            <xs:element name="updated" type="xs:string"/>
+            <xs:element name="object-type" >
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="article"/>
+                        <xs:enumeration value="audio"/>
+                        <xs:enumeration value="badge"/>
+                        <xs:enumeration value="collection"/>
+                        <xs:enumeration value="comment"/>
+                        <xs:enumeration value="course"/>
+                        <xs:enumeration value="file"/>
+                        <xs:enumeration value="image"/>
+                        <xs:enumeration value="person"/>
+                        <xs:enumeration value="review"/>
+                        <xs:enumeration value="service"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:element>
+        </xs:sequence>
+
+    </xs:complexType>
+
+    <xs:complexType name="mediaLink">
+        <xs:sequence>
+            <xs:element name="duration" type="xs:positiveInteger"/>
+            <xs:element name="height" type="xs:positiveInteger"/>
+            <xs:element name="width" type="xs:positiveInteger"/>
+            <xs:element name="url" type="xs:string"/>
+        </xs:sequence>
+    </xs:complexType>
+
+</xs:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/collection.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/collection.json b/streams-schemas/src/site/resources/collection.json
new file mode 100644
index 0000000..8173b75
--- /dev/null
+++ b/streams-schemas/src/site/resources/collection.json
@@ -0,0 +1,47 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "collection",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "A collection is a generic list of Objects of any object type. The objectType of each item in the collection MAY be omitted if the type of object can be established through context. The collection is used primarily as the root of an Activity Streams document, but can be used as the value of extension properties in a variety of situations. ",
+    "properties": {
+        "url": {
+            "type": "string",
+            "description": "An IRI [RFC3987] referencing a JSON document containing the full listing of objects in the collection."
+        },
+        "totalItems": {
+            "type": "integer",
+            "description": "Non-negative integer specifying the total number of activities within the stream. The Stream serialization MAY contain a count property."
+        },
+        "items": {
+            "type": "array",
+            "required": true,
+            "description": "An array containing a listing of Objects of any object type. If used in combination with the url property, the items array can be used to provide a subset of the objects that may be found in the resource identified by the url.",
+            "items": {
+                "type": "object",
+                "extends": {
+                    "$ref": "./object.json"
+                }
+            }
+        },
+        "links": {
+            "type": "array",
+            "optional": true,
+            "description": "Links between an this object and other resources as defined in Web Linking",
+            "extends": {
+                "$ref": "http://json-schema.org/links#properties"
+            }
+        }
+    },
+    "links": [
+        {
+            "rel": "describedby",
+            "href": "http://json-schema.org/schema"
+        }
+    ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/media_link.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/media_link.json b/streams-schemas/src/site/resources/media_link.json
new file mode 100644
index 0000000..fa55b2f
--- /dev/null
+++ b/streams-schemas/src/site/resources/media_link.json
@@ -0,0 +1,34 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "media_link",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "Visual representation of an object in the form of an image, video or embedded HTML fragments",
+    "properties": {
+        "duration": {
+            "title": "duration",
+            "type": "number",
+            "description": "A hint to the consumer about the length, in seconds, of the media resource identified by the url property. A media link MAY contain a \"duration\" property when the target resource is a time-based media item such as an audio or video."
+        },
+        "height": {
+            "title": "height",
+            "type": "integer",
+            "description": "A hint to the consumer about the height, in pixels, of the media resource identified by the url property. A media link MAY contain a height property when the target resource is a visual media item such as an image, video or embeddable HTML page."
+        },
+        "width": {
+            "title": "width",
+            "type": "integer",
+            "description": "A hint to the consumer about the width, in pixels, of the media resource identified by the url property. A media link MAY contain a width property when the target resource is a visual media item such as an image, video or embeddable HTML page."
+        },
+        "url": {
+            "type": "string",
+            "required": true,
+            "description": "The IRI of the media resource being linked. A media link MUST have a url property."
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/object.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/object.json b/streams-schemas/src/site/resources/object.json
new file mode 100644
index 0000000..97adc3c
--- /dev/null
+++ b/streams-schemas/src/site/resources/object.json
@@ -0,0 +1,98 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "object",
+    "javaInterfaces": ["java.io.Serializable"],
+    "description": "Basic object on the web. The only required property is the id",
+    "properties": {
+        "id": {
+            "type": "string",
+            "description": "Provides a permanent, universally unique identifier for the object in the form of an absolute IRI [RFC3987]. An object SHOULD contain a single id property. If an object does not contain an id property, consumers MAY use the value of the url property as a less-reliable, non-unique identifier.",
+            "required": true
+        },
+        "image": {
+            "format": "image",
+            "type": "object",
+            "extends": {
+                "$ref": "./media_link.json"
+            },
+            "description": "Description of a resource providing a visual representation of the object, intended for human consumption. An object MAY contain an image property whose value is a Media Link."
+        },
+        "displayName": {
+            "type": "string",
+            "description": "A natural-language, human-readable and plain-text name for the object. HTML markup MUST NOT be included. An object MAY contain a displayName property. If the object does not specify an objectType property, the object SHOULD specify a displayName"
+        },
+        "summary": {
+            "type": "string",
+            "description": "Natural-language summary of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a summary property"
+        },
+        "content": {
+            "type": "string",
+            "description": "Natural-language description of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An object MAY contain a content property"
+        },
+        "url": {
+            "type": "string",
+            "format": "url",
+            "description": "An IRI [RFC3987] identifying a resource providing an HTML representation of the object. An object MAY contain a url property"
+        },
+        "objectType": {
+            "type": "string",
+            "description": "Identifies the type of object. An object MAY contain an objectType property whose value is a JSON String that is non-empty and matches either the \"isegment-nz-nc\" or the \"IRI\" production in [RFC3987]. Note that the use of a relative reference other than a simple name is not allowed. If no objectType property is contained, the object has no specific type."
+        },
+        "author": {
+            "type": "object",
+            "description": "Describes the entity that created or authored the object. An object MAY contain a single author property whose value is an Object of any type. Note that the author field identifies the entity that created the object and does not necessarily identify the entity that published the object. For instance, it may be the case that an object created by one person is posted and published to a system by an entirely different entity",
+            "javaInterfaces": ["java.io.Serializable"],
+            "extends": {
+                "$ref": "./object.json"
+            }
+        },
+        "published": {
+            "type": "string",
+            "description": "[RFC3339] date-time. The date and time at which the object was published. An object MAY contain a published property",
+            "format": "date-time"
+        },
+        "updated": {
+            "type": "string",
+            "description": "[RFC3339] date-time. The date and time at which a previously published object has been modified. An Object MAY contain an updated property.",
+            "format": "date-time"
+        },
+        "attachments": {
+            "title": "Related objects",
+            "description": "A collection of one or more additional, associated objects, similar to the concept of attached files in an email message. An object MAY have an attachedObjects property whose value is a JSON Array of Objects.",
+            "type": "array",
+            "items": {
+                "type": "object",
+                "javaType": "org.apache.streams.pojo.json.Attachment",
+                "javaInterfaces": ["java.io.Serializable"],
+                "$ref": "./object.json"
+            }
+        },
+        "upstreamDuplicates": {
+            "type": "array",
+            "description": "A JSON Array of one or more absolute IRI's [RFC3987] identifying objects that duplicate this object's content. An object SHOULD contain an upstreamDuplicates property when a publisher is knowingly duplicating with a new ID the content from another object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources",
+            "items": {
+                "type": "string"
+            }
+        },
+        "downstreamDuplicates": {
+            "type": "array",
+            "description": "A JSON Array of one or more absolute IRI's [RFC3987] identifying objects that duplicate this object's content. An object SHOULD contain a downstreamDuplicates property when there are known objects, possibly in a different system, that duplicate the content in this object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources.",
+            "items": {
+                "type": "string"
+            }
+        }
+    },
+    "additionalProperties": true,
+    "links": [
+        {
+            "rel": "describedby",
+            "href": "./objectType/{objectType}.json"
+        }
+    ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/alert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/alert.json b/streams-schemas/src/site/resources/objectTypes/alert.json
new file mode 100644
index 0000000..0ace5de
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/alert.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "alert",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "alert"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/application.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/application.json b/streams-schemas/src/site/resources/objectTypes/application.json
new file mode 100644
index 0000000..ceb1208
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/application.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "application",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "application"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/article.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/article.json b/streams-schemas/src/site/resources/objectTypes/article.json
new file mode 100644
index 0000000..8abc7f7
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/article.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "article",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "article"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/audio.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/audio.json b/streams-schemas/src/site/resources/objectTypes/audio.json
new file mode 100644
index 0000000..92cef7f
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/audio.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "audio",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "audio"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/badge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/badge.json b/streams-schemas/src/site/resources/objectTypes/badge.json
new file mode 100644
index 0000000..b743236
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/badge.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "badge",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "badge"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/binary.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/binary.json b/streams-schemas/src/site/resources/objectTypes/binary.json
new file mode 100644
index 0000000..8915633
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/binary.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "binary",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "binary"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/bookmark.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/bookmark.json b/streams-schemas/src/site/resources/objectTypes/bookmark.json
new file mode 100644
index 0000000..3d3e3f1
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/bookmark.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "bookmark",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "bookmark"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/comment.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/comment.json b/streams-schemas/src/site/resources/objectTypes/comment.json
new file mode 100644
index 0000000..90249c4
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/comment.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "comment",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "comment"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/device.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/device.json b/streams-schemas/src/site/resources/objectTypes/device.json
new file mode 100644
index 0000000..faea368
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/device.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "device",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "device"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/event.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/event.json b/streams-schemas/src/site/resources/objectTypes/event.json
new file mode 100644
index 0000000..479213f
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/event.json
@@ -0,0 +1,51 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "event",
+    "description": "xCal fromat for vevent",
+    "extends": [
+        {
+            "$ref": "../object.json"
+        },
+        {
+            "$ref": "http://www.json-schema.org/calendar"
+        }
+    ],
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "event"
+        },
+        "attendedBy": {
+            "type": "../collection.json"
+        },
+        "attending": {
+          "type": "../collection.json"
+        },
+        "endTime": {
+          "type": "string",
+          "format": "date-time"
+        },
+        "invited": {
+          "type": "../collection.json"
+        },
+        "maybeAttending": {
+          "type": "../collection.json"
+        },
+        "notAttendedBy": {
+          "type": "../collection.json"
+        },
+        "notAttending": {
+          "type": "../collection.json"
+        },
+        "startTime": {
+          "type": "string",
+          "format": "date-time"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/file.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/file.json b/streams-schemas/src/site/resources/objectTypes/file.json
new file mode 100644
index 0000000..695ef98
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/file.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "file",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "file"
+        },
+        "fileUrl": {
+          "type": "string"
+        },
+        "mimeType": {
+          "type": "string"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/folder.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/folder.json b/streams-schemas/src/site/resources/objectTypes/folder.json
new file mode 100644
index 0000000..a319efe
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/folder.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "folder",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "folder"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/game.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/game.json b/streams-schemas/src/site/resources/objectTypes/game.json
new file mode 100644
index 0000000..5f13dfc
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/game.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "game",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "game"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/group.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/group.json b/streams-schemas/src/site/resources/objectTypes/group.json
new file mode 100644
index 0000000..b67d88d
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/group.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "group",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "group"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/image.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/image.json b/streams-schemas/src/site/resources/objectTypes/image.json
new file mode 100644
index 0000000..8a19fd1
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/image.json
@@ -0,0 +1,22 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "image",
+    "extends": {
+        "$ref": "../media_link.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "image"
+        },
+        "fullImage": {
+          "type": "string"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/issue.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/issue.json b/streams-schemas/src/site/resources/objectTypes/issue.json
new file mode 100644
index 0000000..29bfe44
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/issue.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "issue",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "issue"
+        },
+        "types": {
+          "type": "array",
+          "items": {
+            "type": "string"
+          }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/job.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/job.json b/streams-schemas/src/site/resources/objectTypes/job.json
new file mode 100644
index 0000000..2d82975
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/job.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "job",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "job"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/list.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/list.json b/streams-schemas/src/site/resources/objectTypes/list.json
new file mode 100644
index 0000000..d7c164a
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/list.json
@@ -0,0 +1,28 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "list",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "list"
+        },
+        "items": {
+            "type": "array",
+            "items": {
+                "type": "object",
+                "properties": {
+                    "$ref": "../object.json"
+                }
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/note.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/note.json b/streams-schemas/src/site/resources/objectTypes/note.json
new file mode 100644
index 0000000..09de97c
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/note.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "note",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "note"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/offer.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/offer.json b/streams-schemas/src/site/resources/objectTypes/offer.json
new file mode 100644
index 0000000..38db718
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/offer.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "offer",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "offer"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/organization.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/organization.json b/streams-schemas/src/site/resources/objectTypes/organization.json
new file mode 100644
index 0000000..a3fd5a2
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/organization.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "organization",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "organization"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/page.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/page.json b/streams-schemas/src/site/resources/objectTypes/page.json
new file mode 100644
index 0000000..4f76aa2
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/page.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "page",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "page"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/permission.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/permission.json b/streams-schemas/src/site/resources/objectTypes/permission.json
new file mode 100644
index 0000000..32b395c
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/permission.json
@@ -0,0 +1,36 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "permission",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "permission"
+        },
+        "scope": {
+            "type": "object",
+            "extends": {
+              "$ref": "../object.json"
+            }
+        },
+        "actions": {
+            "type": "array",
+            "items": {
+               "type": "string",
+               "enumeration": [
+                  "create",
+                  "delete",
+                  "modify"
+               ]
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/person.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/person.json b/streams-schemas/src/site/resources/objectTypes/person.json
new file mode 100644
index 0000000..f42eb8e
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/person.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "person",
+    "description": "vCard Format. Does not match PoCO",
+    "extends": [
+        {
+            "$ref": "../object.json"
+        },
+        {
+            "$ref": "http://www.json-schema.org/card"
+        }
+    ],
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "person"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/photo-album.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/photo-album.json b/streams-schemas/src/site/resources/objectTypes/photo-album.json
new file mode 100644
index 0000000..933804b
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/photo-album.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "article",
+    "extends": {
+        "$ref": "../objectTypes/list.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "photo-album"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/photo.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/photo.json b/streams-schemas/src/site/resources/objectTypes/photo.json
new file mode 100644
index 0000000..347f25c
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/photo.json
@@ -0,0 +1,23 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "photo",
+    "extends": {
+        "$ref": "../objectTypes/file.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "photo"
+        },
+        "displayName": {
+            "type": "string",
+            "default": "a photo"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/place.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/place.json b/streams-schemas/src/site/resources/objectTypes/place.json
new file mode 100644
index 0000000..bb96a79
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/place.json
@@ -0,0 +1,43 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "place",
+    "extends": [
+        {
+            "$ref": "../object.json"
+        }
+    ],
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "place"
+        },
+        "address": {
+          "type": "object",
+          "extends": [
+            {
+              "$ref": "http://www.json-schema.org/address"
+            }
+          ]
+        },
+        "position": {
+          "type": "object",
+          "properties": {
+            "altitude": {
+              "type": "number"
+            },
+            "latitude": {
+              "type": "number"
+            },
+            "longitude": {
+              "type": "number"
+            }
+          }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/playlist.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/playlist.json b/streams-schemas/src/site/resources/objectTypes/playlist.json
new file mode 100644
index 0000000..6ce9dd2
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/playlist.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "playlist",
+    "extends": {
+        "$ref": "../objectTypes/list.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "playlist"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/process.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/process.json b/streams-schemas/src/site/resources/objectTypes/process.json
new file mode 100644
index 0000000..d717cc7
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/process.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "process",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "process"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/product.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/product.json b/streams-schemas/src/site/resources/objectTypes/product.json
new file mode 100644
index 0000000..4e035cf
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/product.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "product",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "product"
+        },
+        "fullImage": {
+            "type": "object",
+            "extends": {
+              "$ref": "../media_link.json"
+            }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/property.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/property.json b/streams-schemas/src/site/resources/objectTypes/property.json
new file mode 100644
index 0000000..0cd630e
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/property.json
@@ -0,0 +1,48 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "property",
+    "description": "A property describes name, path and value. Can be used with delete, update or post verbs",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "property"
+        },
+        "displayName": {
+            "type": "string",
+            "description": "The human readable name of the property in the appropriate language",
+            "optional": true
+        },
+        "path": {
+            "type": "string",
+            "description": "dot delimited path to the property in the target. Ex: streetAddress"
+        }
+    },
+    "example": {
+        "actor": {
+            "id": 1212,
+            "displayName": "Peter"
+        },
+        "verb": "update",
+        "time": "2010-08-02T15:29:00Z",
+        "object": {
+            "objectType": "property",
+            "displayName": "street address",
+            "path": "streetAddress",
+            "content": "234 Amazing St"
+        },
+        "target": {
+            "id": 12121,
+            "time": "2010-08-02T15:29:00Z",
+            "displayName": "Peter's House"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/question.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/question.json b/streams-schemas/src/site/resources/objectTypes/question.json
new file mode 100644
index 0000000..cccdfe0
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/question.json
@@ -0,0 +1,28 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "question",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "question"
+        },
+        "options": {
+            "type": "array",
+            "items": {
+               "type": "object",
+                "extends": {
+                  "$ref": "../object.json"
+                }
+            }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/review.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/review.json b/streams-schemas/src/site/resources/objectTypes/review.json
new file mode 100644
index 0000000..7629cb6
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/review.json
@@ -0,0 +1,22 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "review",
+    "extends": {
+        "$ref": "../objectTypes/article.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "review"
+        },
+        "rating": {
+           "type": "number"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/role.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/role.json b/streams-schemas/src/site/resources/objectTypes/role.json
new file mode 100644
index 0000000..25524ab
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/role.json
@@ -0,0 +1,25 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "role",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "role"
+        },
+        "members": {
+            "type": "object",
+            "extends": {
+              "$ref": "../collection.json"
+            }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/service.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/service.json b/streams-schemas/src/site/resources/objectTypes/service.json
new file mode 100644
index 0000000..3d4a496
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/service.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "service",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "service"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/song.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/song.json b/streams-schemas/src/site/resources/objectTypes/song.json
new file mode 100644
index 0000000..46d6eb0
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/song.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "song",
+    "extends": {
+        "$ref": "../objectTypes/audio.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "song"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/status.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/status.json b/streams-schemas/src/site/resources/objectTypes/status.json
new file mode 100644
index 0000000..a029f19
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/status.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "status",
+    "extends": {
+        "$ref": "../objectTypes/note.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "song"
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/task.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/task.json b/streams-schemas/src/site/resources/objectTypes/task.json
new file mode 100644
index 0000000..fb2f39f
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/task.json
@@ -0,0 +1,40 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "task",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "task"
+        },
+        "by": {
+          "type": "string",
+          "format": "date-time"
+        },
+        "prerequisites": {
+          "type": "array",
+          "items": {
+            "type": "object",
+            "$ref": "../activity.json"
+          }
+        },
+        "required": {
+          "type": "boolean"
+        },
+        "supersedes": {
+          "type": "array",
+          "items": {
+            "type": "object",
+            "$ref": "../activity.json"
+          }
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/team.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/team.json b/streams-schemas/src/site/resources/objectTypes/team.json
new file mode 100644
index 0000000..37419a0
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/team.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "team",
+    "extends": {
+        "$ref": "../object.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "team"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/objectTypes/video.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/objectTypes/video.json b/streams-schemas/src/site/resources/objectTypes/video.json
new file mode 100644
index 0000000..7ac63d8
--- /dev/null
+++ b/streams-schemas/src/site/resources/objectTypes/video.json
@@ -0,0 +1,19 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "video",
+    "extends": {
+        "$ref": "../objectTypes/file.json"
+    },
+    "properties": {
+        "objectType": {
+            "type": "string",
+            "default": "video"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/accept.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/accept.json b/streams-schemas/src/site/resources/verbs/accept.json
new file mode 100644
index 0000000..a9f91fe
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/accept.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Accept",
+    "description": "Indicates that that the actor has accepted the object. For instance, a person accepting an award, or accepting an assignment.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "accept"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} accepted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/access.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/access.json b/streams-schemas/src/site/resources/verbs/access.json
new file mode 100644
index 0000000..156e3cb
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/access.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Access",
+    "description": "Indicates that the actor has accessed the object. For instance, a person accessing a room, or accessing a file.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "access"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} accessed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/acknowledge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/acknowledge.json b/streams-schemas/src/site/resources/verbs/acknowledge.json
new file mode 100644
index 0000000..2e84c43
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/acknowledge.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Acknowledge",
+    "description": "Indicates that the actor has acknowledged the object. This effectively signals that the actor is aware of the object's existence.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "acknowledge"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} acknowledge {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/add.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/add.json b/streams-schemas/src/site/resources/verbs/add.json
new file mode 100644
index 0000000..cec0c58
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/add.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Add",
+    "description": "Indicates that the actor has added the object to the target. For instance, adding a photo to an album.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "add"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} added {object.displayName} to {target.displayName}"
+        }
+    }
+}



[14/32] incubator-streams git commit: WIP for apachecon

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/read.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/read.json b/streams-schemas/src/site/resources/verbs/read.json
deleted file mode 100644
index e797f41..0000000
--- a/streams-schemas/src/site/resources/verbs/read.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Read",
-    "description": "Indicates that the actor read the object. This is typically only applicable for objects representing printed or written content, such as a book, a message or a comment.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "read"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} read {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/receive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/receive.json b/streams-schemas/src/site/resources/verbs/receive.json
deleted file mode 100644
index 0d44aef..0000000
--- a/streams-schemas/src/site/resources/verbs/receive.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Receive",
-    "description": "Indicates that the actor is receiving an object. Examples include a person receiving a badge object. The object identifies the object being received.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "receive"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} received {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/reject.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/reject.json b/streams-schemas/src/site/resources/verbs/reject.json
deleted file mode 100644
index b82fac7..0000000
--- a/streams-schemas/src/site/resources/verbs/reject.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Reject",
-    "description": "Indicates that the actor has rejected the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "reject"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} rejected {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/remove-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/remove-friend.json b/streams-schemas/src/site/resources/verbs/remove-friend.json
deleted file mode 100644
index 073441d..0000000
--- a/streams-schemas/src/site/resources/verbs/remove-friend.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "UnFriend",
-    "description": "Indicates that the actor has removed the object from the collection of friends.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "remove-friend"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} removed friend {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/remove.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/remove.json b/streams-schemas/src/site/resources/verbs/remove.json
deleted file mode 100644
index 5b694db..0000000
--- a/streams-schemas/src/site/resources/verbs/remove.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Remove",
-    "description": "Indicates that the actor has removed the object from the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "remove"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} removed {object.displayName} from {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/replace.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/replace.json b/streams-schemas/src/site/resources/verbs/replace.json
deleted file mode 100644
index 198c8c5..0000000
--- a/streams-schemas/src/site/resources/verbs/replace.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Replace",
-    "description": "Indicates that the actor has replaced the target with the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "replace"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} replaced {target.displayName} with {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/request-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/request-friend.json b/streams-schemas/src/site/resources/verbs/request-friend.json
deleted file mode 100644
index 9e246ca..0000000
--- a/streams-schemas/src/site/resources/verbs/request-friend.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "RequestFriend",
-    "description": "Indicates the creation of a friendship that has not yet been reciprocated by the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "request-friend"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} sent a friend request to {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/request.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/request.json b/streams-schemas/src/site/resources/verbs/request.json
deleted file mode 100644
index 35807f5..0000000
--- a/streams-schemas/src/site/resources/verbs/request.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Request",
-    "description": "Indicates that the actor has requested the object. If a target is specified, it indicates the entity from which the object is being requested.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "request"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} requested {object.displayName} from {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/resolve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/resolve.json b/streams-schemas/src/site/resources/verbs/resolve.json
deleted file mode 100644
index 0b71ce3..0000000
--- a/streams-schemas/src/site/resources/verbs/resolve.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Resolve",
-    "description": "Indicates that the actor has resolved the object. For instance, the object could represent a ticket being tracked in an issue management system.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "resolve"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} resolved {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/retract.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/retract.json b/streams-schemas/src/site/resources/verbs/retract.json
deleted file mode 100644
index ff7cbe7..0000000
--- a/streams-schemas/src/site/resources/verbs/retract.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Retract",
-    "description": "Indicates that the actor has retracted the object. For instance, if an actor wishes to retract a previously published activity, the object would be the previously published activity that is being retracted.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "retract"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} retracted {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/return.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/return.json b/streams-schemas/src/site/resources/verbs/return.json
deleted file mode 100644
index 14a8cfb..0000000
--- a/streams-schemas/src/site/resources/verbs/return.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Return",
-    "description": "Indicates that the actor has returned the object. If a target is specified, it indicates the entity to which the object was returned.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "return"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} returned {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/rsvp-maybe.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/rsvp-maybe.json b/streams-schemas/src/site/resources/verbs/rsvp-maybe.json
deleted file mode 100644
index 4838406..0000000
--- a/streams-schemas/src/site/resources/verbs/rsvp-maybe.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Rsvp Maybe",
-    "description": "To indicate that the actor may attend an event",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "rsvp-maybe"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} might attend {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/rsvp-no.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/rsvp-no.json b/streams-schemas/src/site/resources/verbs/rsvp-no.json
deleted file mode 100644
index dc36ee3..0000000
--- a/streams-schemas/src/site/resources/verbs/rsvp-no.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Rsvp No",
-    "description": "To indicate that the actor will not attend an event",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "rsvp-no"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} will not attend {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/rsvp-yes.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/rsvp-yes.json b/streams-schemas/src/site/resources/verbs/rsvp-yes.json
deleted file mode 100644
index f62141e..0000000
--- a/streams-schemas/src/site/resources/verbs/rsvp-yes.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Rsvp Yes",
-    "description": "To indicate that the actor will attend an event",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "rsvp-yes"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} is attending {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/satisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/satisfy.json b/streams-schemas/src/site/resources/verbs/satisfy.json
deleted file mode 100644
index a719680..0000000
--- a/streams-schemas/src/site/resources/verbs/satisfy.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Satisfy",
-    "description": "Indicates that the actor has satisfied the object. If a target is specified, it indicate the context within which the object was satisfied. For instance, if a person satisfies the requirements for a particular challenge, the person is the actor; the requirement is the object; and the challenge is the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "satisfy"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} has satisfied {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/save.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/save.json b/streams-schemas/src/site/resources/verbs/save.json
deleted file mode 100644
index 1bdbc4b..0000000
--- a/streams-schemas/src/site/resources/verbs/save.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Save",
-    "description": "Indicates that the actor has called out the object as being of interest primarily to him- or herself. Though this action MAY be shared publicly, the implication is that the object has been saved primarily for the actor's own benefit rather than to show it to others as would be indicated by the \"share\" verb.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "save"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} saved {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/schedule.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/schedule.json b/streams-schemas/src/site/resources/verbs/schedule.json
deleted file mode 100644
index a9824a3..0000000
--- a/streams-schemas/src/site/resources/verbs/schedule.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Schedule",
-    "description": "Indicates that the actor has scheduled the object. For instance, scheduling a meeting.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "schedule"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} scheduled {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/search.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/search.json b/streams-schemas/src/site/resources/verbs/search.json
deleted file mode 100644
index 3263bbb..0000000
--- a/streams-schemas/src/site/resources/verbs/search.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Search",
-    "description": "Indicates that the actor is or has searched for the object. If a target is specified, it indicates the context within which the search is or has been conducted.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "satisfy"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} search for {object.displayName} in {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/sell.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/sell.json b/streams-schemas/src/site/resources/verbs/sell.json
deleted file mode 100644
index 16aa351..0000000
--- a/streams-schemas/src/site/resources/verbs/sell.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Sell",
-    "description": "Indicates that the actor has sold the object. If a target is specified, it indicates the entity to which the object was sold.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "sell"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} sold {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/send.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/send.json b/streams-schemas/src/site/resources/verbs/send.json
deleted file mode 100644
index ead4108..0000000
--- a/streams-schemas/src/site/resources/verbs/send.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Share",
-    "description": "Indicates that the actor has called out the object to readers. In most cases, the actor did not create the object being shared, but is instead drawing attention to it.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "share"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} shared {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/share.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/share.json b/streams-schemas/src/site/resources/verbs/share.json
deleted file mode 100644
index 18c0aea..0000000
--- a/streams-schemas/src/site/resources/verbs/share.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Share",
-    "description": "To share an object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "share"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} shared {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/sponsor.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/sponsor.json b/streams-schemas/src/site/resources/verbs/sponsor.json
deleted file mode 100644
index cc6f5cf..0000000
--- a/streams-schemas/src/site/resources/verbs/sponsor.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Sponsor",
-    "description": "Indicates that the actor has sponsored the object. If a target is specified, it indicates the context within which the sponsorship is offered. For instance, a company can sponsor an event; or an individual can sponsor a project; etc.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "sponsor"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} sponsored {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/start.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/start.json b/streams-schemas/src/site/resources/verbs/start.json
deleted file mode 100644
index 61eaf06..0000000
--- a/streams-schemas/src/site/resources/verbs/start.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Start",
-    "description": "Indicates that the actor has started the object. For instance, when a person starts a project.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "start"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} started {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/stop-following.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/stop-following.json b/streams-schemas/src/site/resources/verbs/stop-following.json
deleted file mode 100644
index e09317d..0000000
--- a/streams-schemas/src/site/resources/verbs/stop-following.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "UnFollow",
-    "description": "Indicates that the actor has stopped following the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "follow"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} stopped following {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/submit.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/submit.json b/streams-schemas/src/site/resources/verbs/submit.json
deleted file mode 100644
index c1d25b1..0000000
--- a/streams-schemas/src/site/resources/verbs/submit.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Submit",
-    "description": "Indicates that the actor has submitted the object. If a target is specified, it indicates the entity to which the object was submitted.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "submit"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} submitted {object.displayName} to {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/tag.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/tag.json b/streams-schemas/src/site/resources/verbs/tag.json
deleted file mode 100644
index 6208eae..0000000
--- a/streams-schemas/src/site/resources/verbs/tag.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Tag",
-    "description": "Indicates that the actor has associated the object with the target. For example, if the actor specifies that a particular user appears in a photo. the object is the user and the target is the photo.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "tag"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} tagged {object.displayName} as {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/terminate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/terminate.json b/streams-schemas/src/site/resources/verbs/terminate.json
deleted file mode 100644
index 280eb31..0000000
--- a/streams-schemas/src/site/resources/verbs/terminate.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Terminate",
-    "description": "Indicates that the actor has terminated the object.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "terminate"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} terminated {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/tie.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/tie.json b/streams-schemas/src/site/resources/verbs/tie.json
deleted file mode 100644
index 7530ed2..0000000
--- a/streams-schemas/src/site/resources/verbs/tie.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Tie",
-    "description": "Indicates that the actor has neither won or lost the object. This verb is generally only applicable when the object represents some form of competition, such as a game.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "tie"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} tied at {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/unfavorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/unfavorite.json b/streams-schemas/src/site/resources/verbs/unfavorite.json
deleted file mode 100644
index bfa9c20..0000000
--- a/streams-schemas/src/site/resources/verbs/unfavorite.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "UnFavorite",
-    "description": "Indicates that the actor has removed the object from the collection of favorited items.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "unfavorite"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} removed {object.displayName} as a favorite"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/unlike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/unlike.json b/streams-schemas/src/site/resources/verbs/unlike.json
deleted file mode 100644
index 4dc75f6..0000000
--- a/streams-schemas/src/site/resources/verbs/unlike.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "UnLike",
-    "description": "Indicates that the actor has removed the object from the collection of liked items.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "unlike"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} no longer likes {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/unsatisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/unsatisfy.json b/streams-schemas/src/site/resources/verbs/unsatisfy.json
deleted file mode 100644
index 8ea075b..0000000
--- a/streams-schemas/src/site/resources/verbs/unsatisfy.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "UnSatisfy",
-    "description": "Indicates that the actor has not satisfied the object. If a target is specified, it indicates the context within which the object was not satisfied. For instance, if a person fails to satisfy the requirements of some particular challenge, the person is the actor; the requirement is the object and the challenge is the target.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "unsatisfy"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} has not satisfied {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/unsave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/unsave.json b/streams-schemas/src/site/resources/verbs/unsave.json
deleted file mode 100644
index e45a97f..0000000
--- a/streams-schemas/src/site/resources/verbs/unsave.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "UnSave",
-    "description": "Indicates that the actor has removed the object from the collection of saved items.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "unsave"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} unsaved {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/unshare.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/unshare.json b/streams-schemas/src/site/resources/verbs/unshare.json
deleted file mode 100644
index 4ca924b..0000000
--- a/streams-schemas/src/site/resources/verbs/unshare.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "UnSave",
-    "description": "Indicates that the actor is no longer sharing the object. If a target is specified, it indicates the entity with whom the object is no longer being shared.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "unshare"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} is no longer sharing {object.displayName} with {target.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/update.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/update.json b/streams-schemas/src/site/resources/verbs/update.json
deleted file mode 100644
index 4b143fc..0000000
--- a/streams-schemas/src/site/resources/verbs/update.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Update",
-    "description": "The \"update\" verb indicates that the actor has modified the object. Use of the \"update\" verb is generally reserved to indicate modifications to existing objects or data such as changing an existing user's profile information.",
-    "notes": "The new property value can be a scalar value or an object. See the property object type",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "update"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} updated {target.displayName}'s {object.displayName} to {object.value}"
-        },
-        "object": {
-            "type": "object",
-            "$ref": "../object.json"
-        },
-        "target": {
-            "type": "object",
-            "optional": true,
-            "$ref": "../object.json"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/use.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/use.json b/streams-schemas/src/site/resources/verbs/use.json
deleted file mode 100644
index d5a79fd..0000000
--- a/streams-schemas/src/site/resources/verbs/use.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Use",
-    "description": "Indicates that the actor has used the object in some manner.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "use"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} used {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/watch.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/watch.json b/streams-schemas/src/site/resources/verbs/watch.json
deleted file mode 100644
index 192d56e..0000000
--- a/streams-schemas/src/site/resources/verbs/watch.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Watch",
-    "description": "Indicates that the actor has watched the object. This verb is typically applicable only when the object represents dynamic, visible content such as a movie, a television show or a public performance.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "watch"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} watched {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/site/resources/verbs/win.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/win.json b/streams-schemas/src/site/resources/verbs/win.json
deleted file mode 100644
index a5bef2a..0000000
--- a/streams-schemas/src/site/resources/verbs/win.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "#",
-    "type": "object",
-    "title": "Win",
-    "description": "Indicates that the actor has won the object.  For instance, if a person wins a game.",
-    "extends": {
-        "$ref": "../activity.json"
-    },
-    "properties": {
-        "verb": {
-            "type": "string",
-            "default": "win"
-        },
-        "title": {
-            "type": "string",
-            "default": "{actor.displayName} won {object.displayName}"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaOrderingTests.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaOrderingTests.java b/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaOrderingTests.java
new file mode 100644
index 0000000..9979250
--- /dev/null
+++ b/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaOrderingTests.java
@@ -0,0 +1,146 @@
+package org.apache.streams.schema.test;
+
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterators;
+import com.google.common.collect.Lists;
+import org.apache.streams.schema.Schema;
+import org.apache.streams.schema.SchemaStore;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Created by sblackmon on 5/3/16.
+ */
+public class SchemaOrderingTests {
+
+    @Test
+    public void compareVerbParent() {
+        SchemaStore schemaStore = new SchemaStore();
+        File update = new File("target/classes/verbs/update.json");
+        schemaStore.create(update.toURI());
+        File activity = new File("target/classes/activity.json");
+        schemaStore.create(activity.toURI());
+        assert( schemaStore.compare( schemaStore.getByUri(update.toURI()).get(), schemaStore.getByUri(activity.toURI()).get()) == 1);
+        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
+        assertContainsItemsEndingWithInOrder(
+                schemaIterator,
+                Lists.newArrayList(
+                        "activity.json",
+                        "update.json"
+                )
+        );
+    }
+
+    @Test
+    public void compareObjectTypeParent() {
+        SchemaStore schemaStore = new SchemaStore();
+        File alert = new File("target/classes/objectTypes/alert.json");
+        schemaStore.create(alert.toURI());
+        File object = new File("target/classes/object.json");
+        schemaStore.create(object.toURI());
+        assert( schemaStore.compare( schemaStore.getByUri(object.toURI()).get(), schemaStore.getByUri(alert.toURI()).get()) == -1);
+        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
+        assertContainsItemsEndingWithInOrder(
+                schemaIterator,
+                Lists.newArrayList(
+                        "object.json",
+                        "alert.json"
+                )
+        );
+    }
+
+    @Test
+    public void compareUnrelated() {
+        SchemaStore schemaStore = new SchemaStore();
+        File alert = new File("target/classes/objectTypes/alert.json");
+        schemaStore.create(alert.toURI());
+        File update = new File("target/classes/verbs/update.json");
+        schemaStore.create(update.toURI());
+        assert( schemaStore.compare( schemaStore.getByUri(alert.toURI()).get(), schemaStore.getByUri(update.toURI()).get()) == 0);
+    }
+
+    @Test
+    public void compareVerbFieldRef() {
+        SchemaStore schemaStore = new SchemaStore();
+        File update = new File("target/classes/verbs/update.json");
+        schemaStore.create(update.toURI());
+        File object = new File("target/classes/object.json");
+        schemaStore.create(object.toURI());
+        assert( schemaStore.compare( schemaStore.getByUri(update.toURI()).get(), schemaStore.getByUri(object.toURI()).get()) == 1);
+        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
+        assertContainsItemsEndingWithInOrder(
+                schemaIterator,
+                Lists.newArrayList(
+                        "object.json",
+                        "update.json"
+                )
+        );
+    }
+
+    @Test
+    public void compareObjectTypeFieldRef() {
+        SchemaStore schemaStore = new SchemaStore();
+        File alert = new File("target/classes/objectTypes/alert.json");
+        schemaStore.create(alert.toURI());
+        File media_link = new File("target/classes/media_link.json");
+        schemaStore.create(media_link.toURI());
+        assert( schemaStore.compare( schemaStore.getByUri(media_link.toURI()).get(), schemaStore.getByUri(alert.toURI()).get()) == -1);
+        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
+        assertContainsItemsEndingWithInOrder(
+                schemaIterator,
+                Lists.newArrayList(
+                        "media_link.json",
+                        "object.json",
+                        "alert.json"
+                )
+        );
+    }
+
+    @Test
+    public void compareVerbAncestorIndirect() {
+        SchemaStore schemaStore = new SchemaStore();
+        File update = new File("target/classes/verbs/update.json");
+        schemaStore.create(update.toURI());
+        File media_link = new File("target/classes/media_link.json");
+        assert( schemaStore.compare( schemaStore.getByUri(media_link.toURI()).get(), schemaStore.getByUri(update.toURI()).get()) == -1);
+        Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator();
+        assertContainsItemsEndingWithInOrder(
+                schemaIterator,
+                Lists.newArrayList(
+                        "media_link.json",
+                        "update.json"
+                )
+        );
+    }
+
+
+    public void assertContainsItemsEndingWithInOrder(Iterator<Schema> iterator, List<String> items) {
+        for( String item : items ) {
+            Optional<Schema> tryFind = Iterators.tryFind( iterator, new SchemaUriEndsWithPredicate(item) );
+            assert( tryFind.isPresent() );
+        }
+    }
+
+    public class SchemaUriEndsWithPredicate implements Predicate<Schema> {
+
+        private String endsWith;
+
+        public SchemaUriEndsWithPredicate(String endsWith) {
+            this.endsWith = endsWith;
+        }
+
+        @Override
+        public boolean apply(Schema input) {
+            return input.getURI().getPath().endsWith(endsWith);
+        }
+
+        @Override
+        public boolean equals(Object object) {
+            return false;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaStoreTests.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaStoreTests.java b/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaStoreTests.java
new file mode 100644
index 0000000..9e354fe
--- /dev/null
+++ b/streams-schemas/src/test/java/org/apache/streams/schema/test/SchemaStoreTests.java
@@ -0,0 +1,76 @@
+package org.apache.streams.schema.test;
+
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterators;
+import com.google.common.collect.Lists;
+import org.apache.streams.schema.Schema;
+import org.apache.streams.schema.SchemaStore;
+import org.junit.Test;
+
+import java.io.File;
+import java.net.URI;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Created by sblackmon on 5/2/16.
+ */
+public class SchemaStoreTests {
+
+    @Test
+    public void indexMediaLink() {
+        SchemaStore schemaStore = new SchemaStore();
+        File file = new File("target/classes/media_link.json");
+        schemaStore.create(file.toURI());
+        assert( schemaStore.getFileUriCount() == 1);
+        assert( schemaStore.getByUri(file.toURI()).isPresent());
+        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
+    }
+
+    @Test
+    public void indexApprove() {
+        SchemaStore schemaStore = new SchemaStore();
+        File file = new File("target/classes/verbs/approve.json");
+        schemaStore.create(file.toURI());
+        assert( schemaStore.getFileUriCount() == 4);
+        assert( schemaStore.getByUri(file.toURI()).isPresent());
+        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
+    }
+
+    @Test
+    public void indexCollection() {
+        SchemaStore schemaStore = new SchemaStore();
+        File file = new File("target/classes/collection.json");
+        schemaStore.create(file.toURI());
+        assert( schemaStore.getFileUriCount() == 3);
+        assert( schemaStore.getByUri(file.toURI()).isPresent());
+        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
+        Schema collection = schemaStore.getByUri(file.toURI()).get();
+        assert( collection.getParent() == null );
+        assert( schemaStore.getById(
+                URI.create("http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/object.json#"
+                )).isPresent());
+    }
+
+    @Test
+    public void indexUpdate() {
+        SchemaStore schemaStore = new SchemaStore();
+        File file = new File("target/classes/verbs/update.json");
+        schemaStore.create(file.toURI());
+        assert( schemaStore.getFileUriCount() == 4);
+        assert( schemaStore.getByUri(file.toURI()).isPresent());
+        assert( schemaStore.getById(schemaStore.getByUri(file.toURI()).get().getId()).isPresent());
+        Schema update = schemaStore.getByUri(file.toURI()).get();
+        assert( update.getParent() != null );
+        assert( update.getParent().getId().getScheme().equals("http"));
+        assert( update.getParent().getId().getHost().equals("streams.incubator.apache.org"));
+        assert( update.getParent().getId().getPath().startsWith("/site/0.3-incubating-SNAPSHOT/streams-schemas"));
+        assert( update.getParent().getId().getPath().endsWith("activity.json"));
+    }
+
+    // test create from messed up URI
+
+    // test create from URI with messed up reference
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/accept.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/accept.json b/streams-schemas/src/test/resources/activities/accept.json
new file mode 100644
index 0000000..c1dfd5f
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/accept.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "accept",
+  "object": {
+    "objectType": "job",
+    "displayName": "Director of Marketing"
+  },
+  "title": "Sally accepted the Director of Marketing job."
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/access.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/access.json b/streams-schemas/src/test/resources/activities/access.json
new file mode 100644
index 0000000..93bc6e2
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/access.json
@@ -0,0 +1,17 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "access",
+  "object": {
+    "objectType": "file",
+    "displayName": "4Q2012 Sales Forecast.xls"
+  },
+  "published": "2012-12-12T12:12:12Z",
+  "title": "Joe accessed the file \"4Q2012 Sales Forecast.xls\""
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/acknowledge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/acknowledge.json b/streams-schemas/src/test/resources/activities/acknowledge.json
new file mode 100644
index 0000000..2b69fa7
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/acknowledge.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "acknowledge",
+  "object": {
+    "objectType": "issue",
+    "displayName": "#123: There is a problem with the build"
+  },
+  "content": "Sally acknowledged Issue #123"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/add.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/add.json b/streams-schemas/src/test/resources/activities/add.json
new file mode 100644
index 0000000..b4e8151
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/add.json
@@ -0,0 +1,21 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "add",
+  "object": {
+    "objectType": "image",
+    "displayName": "My cat",
+    "fullImage": {"url": "http://example.org/cat.jpg"}
+  },
+  "target": {
+    "objectType": "collection",
+    "displayName": "Joe's Photo Album",
+    "objectTypes": ["image"]
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/agree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/agree.json b/streams-schemas/src/test/resources/activities/agree.json
new file mode 100644
index 0000000..3034cd8
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/agree.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "agree",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some Random Article Online"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/append.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/append.json b/streams-schemas/src/test/resources/activities/append.json
new file mode 100644
index 0000000..d8fb3be
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/append.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "append",
+  "object": {"content": "This is some text"},
+  "target": {
+    "objectType": "file",
+    "displayName": "log.txt"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/approve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/approve.json b/streams-schemas/src/test/resources/activities/approve.json
new file mode 100644
index 0000000..b6f378e
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/approve.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "approve",
+  "object": {
+    "objectType": "task",
+    "actor": {"displayName": "Joe"},
+    "verb": "join",
+    "object": {
+      "objectType": "group",
+      "displayName": "Administrators"
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/archive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/archive.json b/streams-schemas/src/test/resources/activities/archive.json
new file mode 100644
index 0000000..557dcdf
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/archive.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "archive",
+  "object": {
+    "objectType": "file",
+    "displayName": "4Q2012 Sales Forecast.xls"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/assign.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/assign.json b/streams-schemas/src/test/resources/activities/assign.json
new file mode 100644
index 0000000..51b8a51
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/assign.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "assign",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #123: Some Issue"
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "title": "Sally assigned Issue #123 to Joe"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/at.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/at.json b/streams-schemas/src/test/resources/activities/at.json
new file mode 100644
index 0000000..64a77f9
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/at.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "at",
+  "object": {
+    "objectType": "place",
+    "displayName": "Acme, Co."
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/attach.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/attach.json b/streams-schemas/src/test/resources/activities/attach.json
new file mode 100644
index 0000000..716616b
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/attach.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "attach",
+  "object": {
+    "objectType": "binary",
+    "data": "dGhpcyBpcyB1bmNvbXByZXNzZWQgZGF0YQo="
+  },
+  "target": {
+    "objectType": "issue",
+    "displayName": "Issue #123"
+  },
+  "title": "Sally added an attachment to Issue #123"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/attend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/attend.json b/streams-schemas/src/test/resources/activities/attend.json
new file mode 100644
index 0000000..f8c0838
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/attend.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "attend",
+  "object": {
+    "objectType": "event",
+    "displayName": "Sally's Meeting"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/author.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/author.json b/streams-schemas/src/test/resources/activities/author.json
new file mode 100644
index 0000000..1903700
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/author.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "author",
+  "object": {
+    "objectType": "file",
+    "displayName": "4Q2012 Sales Forecast.xls"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/authorize.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/authorize.json b/streams-schemas/src/test/resources/activities/authorize.json
new file mode 100644
index 0000000..2d9d1b3
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/authorize.json
@@ -0,0 +1,23 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "authorize",
+  "object": {
+    "objectType": "task",
+    "actor": {
+      "objectType": "person",
+      "displayName": "Sally"
+    },
+    "verb": "access",
+    "object": {
+      "objectType": "place",
+      "displayName": "Joe's Home"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/borrow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/borrow.json b/streams-schemas/src/test/resources/activities/borrow.json
new file mode 100644
index 0000000..e21809a
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/borrow.json
@@ -0,0 +1,21 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "borrow",
+  "object": {
+    "objectType": "book",
+    "displayName": "Cloud Atlas"
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "title": "Sally borrowed the book 'Cloud Atlas' from Joe"
+}
+    

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/build.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/build.json b/streams-schemas/src/test/resources/activities/build.json
new file mode 100644
index 0000000..78878e1
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/build.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "build",
+  "object": {
+    "objectType": "application",
+    "displayName": "MyApp Builder 12345"
+  }
+}
+   

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/cancel.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/cancel.json b/streams-schemas/src/test/resources/activities/cancel.json
new file mode 100644
index 0000000..b7aba81
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/cancel.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "cancel",
+  "object": {
+    "objectType": "offer",
+    "displayName": "Free Money!"
+  },
+  "title": "Sally cancelled the offer for free money."
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/checkin.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/checkin.json b/streams-schemas/src/test/resources/activities/checkin.json
new file mode 100644
index 0000000..97216b9
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/checkin.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "checkin",
+  "object": {
+    "objectType": "place",
+    "displayName": "Acme, Co"
+  },
+  "title": "Joe checked in at Acme, Co"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/close.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/close.json b/streams-schemas/src/test/resources/activities/close.json
new file mode 100644
index 0000000..362e3f6
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/close.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "close",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #123"
+  },
+  "title": "Joe closed issue #123"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/complete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/complete.json b/streams-schemas/src/test/resources/activities/complete.json
new file mode 100644
index 0000000..06694a7
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/complete.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "complete",
+  "object": {
+    "objectType": "process",
+    "displayName": "Some long process"
+  }
+}
+    

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/confirm.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/confirm.json b/streams-schemas/src/test/resources/activities/confirm.json
new file mode 100644
index 0000000..9307c38
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/confirm.json
@@ -0,0 +1,17 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "confirm",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #123"
+  },
+  "title": "Joe confirmed issue #123"
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/consume.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/consume.json b/streams-schemas/src/test/resources/activities/consume.json
new file mode 100644
index 0000000..ed907e3
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/consume.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "consume",
+  "object": {
+    "objectType": "product",
+    "displayName": "Some amazing product"
+  }
+}
+    

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/create.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/create.json b/streams-schemas/src/test/resources/activities/create.json
new file mode 100644
index 0000000..5d8afb3
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/create.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "create",
+  "object": {
+    "objectType": "product",
+    "displayName": "Some amazing product"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/delete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/delete.json b/streams-schemas/src/test/resources/activities/delete.json
new file mode 100644
index 0000000..6943046
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/delete.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "delete",
+  "object": {
+    "objectType": "file",
+    "displayName": "4Q2012 Sales Forecast.xls"
+  },
+  "title": "Joe is probably going to get fired."
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/deliver.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/deliver.json b/streams-schemas/src/test/resources/activities/deliver.json
new file mode 100644
index 0000000..620f0b5
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/deliver.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "deliver",
+  "object": {
+    "objectType": "note",
+    "displayName": "Bad News",
+    "content": "Joe deleted the sales forecast"
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Joe's Boss"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/deny.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/deny.json b/streams-schemas/src/test/resources/activities/deny.json
new file mode 100644
index 0000000..b83ca60
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/deny.json
@@ -0,0 +1,23 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "deny",
+  "object": {
+    "objectType": "task",
+    "actor": {
+      "objectType": "person",
+      "displayName": "Joe"
+    },
+    "verb": "delete",
+    "object": {
+      "objectType": "file",
+      "displayName": "4Q2012 Sales Forecast.xls"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/disagree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/disagree.json b/streams-schemas/src/test/resources/activities/disagree.json
new file mode 100644
index 0000000..8614e88
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/disagree.json
@@ -0,0 +1,30 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "disagree",
+  "object": {
+    "actor": {
+      "objectType": "person",
+      "displayName": "Joe"
+    },
+    "verb": "deny",
+    "object": {
+      "objectType": "task",
+      "actor": {
+        "objectType": "person",
+        "displayName": "Joe"
+      },
+      "verb": "delete",
+      "object": {
+        "objectType": "file",
+        "displayName": "4Q2012 Sales Forecast.xls"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/dislike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/dislike.json b/streams-schemas/src/test/resources/activities/dislike.json
new file mode 100644
index 0000000..16c2148
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/dislike.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "dislike",
+  "object": {
+    "objectType": "person",
+    "displayName": "Sally"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/experience.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/experience.json b/streams-schemas/src/test/resources/activities/experience.json
new file mode 100644
index 0000000..d81d024
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/experience.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally"
+  },
+  "verb": "experience",
+  "object": {
+    "objectType": "event",
+    "displayName": "Disciplinary Action for Joe"
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/favorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/favorite.json b/streams-schemas/src/test/resources/activities/favorite.json
new file mode 100644
index 0000000..3df99bf
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/favorite.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe's Boss"
+  },
+  "verb": "favorite",
+  "object": {
+    "objectType": "person",
+    "displayName": "Sally"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/find.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/find.json b/streams-schemas/src/test/resources/activities/find.json
new file mode 100644
index 0000000..9c25c59
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/find.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "find",
+  "object": {
+    "objectType": "application",
+    "displayName": "Unapproved Software Application"
+  },
+  "location": {
+    "objectType": "place",
+    "displayName": "Sally's Computer"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/flag-as-inappropriate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/flag-as-inappropriate.json b/streams-schemas/src/test/resources/activities/flag-as-inappropriate.json
new file mode 100644
index 0000000..6f4d202
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/flag-as-inappropriate.json
@@ -0,0 +1,24 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Sally's Boss"
+  },
+  "verb": "flag-as-inappropriate",
+  "object": {
+    "objectType": "application",
+    "displayName": "Unapproved Software Application",
+    "location": {
+      "displayName": "Sally's Computer"
+    }
+  },
+  "context": {
+    "objectType": "issue",
+    "displayName": "Issue #125",
+    "types": ["http://example.org/violation-of-corporate-policy"]
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/follow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/follow.json b/streams-schemas/src/test/resources/activities/follow.json
new file mode 100644
index 0000000..fc8c992
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/follow.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe"
+  },
+  "verb": "follow",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #125"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/give.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/give.json b/streams-schemas/src/test/resources/activities/give.json
new file mode 100644
index 0000000..f145296
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/give.json
@@ -0,0 +1,28 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Joe's Boss"
+  },
+  "verb": "give",
+  "object": {
+    "objectType": "note",
+    "displayName": "Notice of Employment Termination"
+  },
+  "target": {
+    "objectType": "collection",
+    "items": [
+      {
+        "objectType": "person",
+        "displayName": "Joe"
+      },
+      {
+        "objectType": "person",
+        "displayName": "Sally"
+      }
+    ]
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/host.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/host.json b/streams-schemas/src/test/resources/activities/host.json
new file mode 100644
index 0000000..3331353
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/host.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Bob"
+  },
+  "verb": "host",
+  "object": {
+    "objectType": "event",
+    "displayName": "Job Interview"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/ignore.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/ignore.json b/streams-schemas/src/test/resources/activities/ignore.json
new file mode 100644
index 0000000..012013a
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/ignore.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "ignore",
+  "object": {
+    "objectType": "note",
+    "displayName": "Joe's request for his job back."
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-schemas/src/test/resources/activities/insert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/test/resources/activities/insert.json b/streams-schemas/src/test/resources/activities/insert.json
new file mode 100644
index 0000000..57bda66
--- /dev/null
+++ b/streams-schemas/src/test/resources/activities/insert.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Bob"
+  },
+  "verb": "insert",
+  "object": {
+    "objectType": "note",
+    "displayName": "Notes about Employee Disciplinary Actions"
+  },
+  "target": {
+    "objectType": "file",
+    "displayName": "2013 Corporate Policy Updates.doc"
+  }
+}



[08/32] incubator-streams git commit: STREAMS-398 - streams-schemas

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/approve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/approve.json b/streams-schemas/src/main/jsonschema/verbs/approve.json
new file mode 100644
index 0000000..ec66f9b
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/approve.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Approve",
+    "description": "Indicates that the actor has approved the object. For instance, a manager might approve a travel request.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "approve"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} approved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/archive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/archive.json b/streams-schemas/src/main/jsonschema/verbs/archive.json
new file mode 100644
index 0000000..24aea16
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/archive.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Archive",
+    "description": "Indicates that the actor has archived the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "archive"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} archived {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/assign.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/assign.json b/streams-schemas/src/main/jsonschema/verbs/assign.json
new file mode 100644
index 0000000..8fe5458
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/assign.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Assign",
+    "description": "Indicates that the actor has assigned the object to the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "assign"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} assigned {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/at.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/at.json b/streams-schemas/src/main/jsonschema/verbs/at.json
new file mode 100644
index 0000000..42c1222
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/at.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "At",
+    "description": "Indicates that the actor is currently located at the object. For instance, a person being at a specific physical location.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "assign"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} assigned {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/attach.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/attach.json b/streams-schemas/src/main/jsonschema/verbs/attach.json
new file mode 100644
index 0000000..77ff605
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/attach.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Attach",
+    "description": "Indicates that the actor has attached the object to the target.For instance, a person attaching a file to a wiki page or an email.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "attach"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} attached {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/attend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/attend.json b/streams-schemas/src/main/jsonschema/verbs/attend.json
new file mode 100644
index 0000000..07e60fd
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/attend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Attend",
+    "description": "Indicates that the actor has attended the object. For instance, a person attending a meeting.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "attend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} attended {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/author.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/author.json b/streams-schemas/src/main/jsonschema/verbs/author.json
new file mode 100644
index 0000000..adc8b28
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/author.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Author",
+    "description": "Indicates that the actor has authored the object. Note that this is a more specific form of the verb \"create\".",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "author"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} authored {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/authorize.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/authorize.json b/streams-schemas/src/main/jsonschema/verbs/authorize.json
new file mode 100644
index 0000000..7439b06
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/authorize.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Authorize",
+    "description": "Indicates that the actor has authorized the object. If a target is specified, it means that the authorization is specifically in regards to the target. For instance, a service can authorize a person to access a given application; in which case the actor is the service, the object is the person, and the target is the application. In contrast, a person can authorize a request; in which case the actor is the person and the object is the request and there might be no explicit target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "authorize"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} authorized {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/borrow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/borrow.json b/streams-schemas/src/main/jsonschema/verbs/borrow.json
new file mode 100644
index 0000000..ede59c1
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/borrow.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Borrow",
+    "description": "Indicates that the actor has borrowed the object. If a target is specified, it identifies the entity from which the object was borrowed. For instance, if a person borrows a book from a library, the person is the actor, the book is the object and the library is the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "borrow"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} borrow {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/build.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/build.json b/streams-schemas/src/main/jsonschema/verbs/build.json
new file mode 100644
index 0000000..a90441f
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/build.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Build",
+    "description": "Indicates that the actor has built the object. For example, if a person builds a model or compiles code.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "build"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} built {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/cancel.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/cancel.json b/streams-schemas/src/main/jsonschema/verbs/cancel.json
new file mode 100644
index 0000000..4ab2406
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/cancel.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Cancel",
+    "description": "Indicates that the actor has canceled the object. For instance, canceling a calendar event.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "cancel"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} cancelled {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/checkin.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/checkin.json b/streams-schemas/src/main/jsonschema/verbs/checkin.json
new file mode 100644
index 0000000..d59a8c2
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/checkin.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "checkin",
+    "description": "Indicates that the actor has checked-in to the object. For instance, a person checking-in to a Place.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "checkin"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} checked in at {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/close.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/close.json b/streams-schemas/src/main/jsonschema/verbs/close.json
new file mode 100644
index 0000000..7aa049d
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/close.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Close",
+    "description": "Indicates that the actor has closed the object. For instance, the object could represent a ticket being tracked in an issue management system.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "close"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} closed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/complete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/complete.json b/streams-schemas/src/main/jsonschema/verbs/complete.json
new file mode 100644
index 0000000..4a95d48
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/complete.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Complete",
+    "description": "Indicates that the actor has completed the object",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "complete"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} completed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/confirm.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/confirm.json b/streams-schemas/src/main/jsonschema/verbs/confirm.json
new file mode 100644
index 0000000..aa8d45c
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/confirm.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Confirm",
+    "description": "Indicates that the actor has confirmed or agrees with the object. For instance, a software developer might confirm an issue reported against a product.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "confirm"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} confirmed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/consume.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/consume.json b/streams-schemas/src/main/jsonschema/verbs/consume.json
new file mode 100644
index 0000000..3dc558a
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/consume.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Consume",
+    "description": "Indicates that the actor has consumed the object. The specific meaning is dependent largely on the object's type. For instance, an actor may \"consume\" an audio object, indicating that the actor has listened to it; or an actor may \"consume\" a book, indicating that the book has been read. As such, the \"consume\" verb is a more generic form of other more specific verbs such as \"read\" and \"play\".",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "consume"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} consumed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/create.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/create.json b/streams-schemas/src/main/jsonschema/verbs/create.json
new file mode 100644
index 0000000..dda3012
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/create.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Create",
+    "description": "Indicates that the actor has created the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "create"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} created {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/delete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/delete.json b/streams-schemas/src/main/jsonschema/verbs/delete.json
new file mode 100644
index 0000000..39966c9
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/delete.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Delete",
+    "description": "Indicates that the actor has deleted the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "delete"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} deleted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/deliver.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/deliver.json b/streams-schemas/src/main/jsonschema/verbs/deliver.json
new file mode 100644
index 0000000..a4b5648
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/deliver.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Deliver",
+    "description": "Indicates that the actor has delivered the object. For example, delivering a package.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "deliver"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} delivered {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/deny.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/deny.json b/streams-schemas/src/main/jsonschema/verbs/deny.json
new file mode 100644
index 0000000..5bf473b
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/deny.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Deny",
+    "description": "Indicates that the actor has denied the object. For example, a manager may deny a travel request.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "deny"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} denied {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/disagree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/disagree.json b/streams-schemas/src/main/jsonschema/verbs/disagree.json
new file mode 100644
index 0000000..b2eb0c2
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/disagree.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Disagree",
+    "description": "Indicates that the actor disagrees with the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "disagree"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} disagrees with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/dislike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/dislike.json b/streams-schemas/src/main/jsonschema/verbs/dislike.json
new file mode 100644
index 0000000..e33cb26
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/dislike.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Dislike",
+    "description": "Indicates that the actor dislikes the object. Note that the \"dislike\" verb is distinct from the \"unlike\" verb which assumes that the object had been previously \"liked\".",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "dislike"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} dislikes {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/experience.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/experience.json b/streams-schemas/src/main/jsonschema/verbs/experience.json
new file mode 100644
index 0000000..b760a5d
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/experience.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Experience",
+    "description": "Indicates that the actor has experienced the object in some manner. Note that, depending on the specific object types used for both the actor and object, the meaning of this verb can overlap that of the \"consume\" and \"play\" verbs. For instance, a person might \"experience\" a movie; or \"play\" the movie; or \"consume\" the movie. The \"experience\" verb can be considered a more generic form of other more specific verbs as \"consume\", \"play\", \"watch\", \"listen\", and \"read\"",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "experience"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} experienced {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/favorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/favorite.json b/streams-schemas/src/main/jsonschema/verbs/favorite.json
new file mode 100644
index 0000000..fa7afa3
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/favorite.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Favorite",
+    "description": "Indicates that the actor marked the object as an item of special interest.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "favorite"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} marked {object.displayName} as a favorite"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/find.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/find.json b/streams-schemas/src/main/jsonschema/verbs/find.json
new file mode 100644
index 0000000..b1a7dacc
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/find.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Find",
+    "description": "Indicates that the actor has found the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "find"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} found {object.displayName}."
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json b/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json
new file mode 100644
index 0000000..e6657aa
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/flag-as-inappropriate.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Flag-As-Inappropriate",
+    "description": "Indicates that the actor has flagged the object as being inappropriate for some reason. When using this verb, the context property can be used to provide additional detail about why the object has been flagged.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "flag-as-inappropriate"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} flagged {object.displayName} as inappropriate."
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/follow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/follow.json b/streams-schemas/src/main/jsonschema/verbs/follow.json
new file mode 100644
index 0000000..8f50b89
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/follow.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Follow",
+    "description": "Indicates that the actor began following the activity of the object. In most cases, the objectType will be a \"person\", but it can potentially be of any type that can sensibly generate activity. Processors MAY ignore (silently drop) successive identical \"follow\" activities.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "follow"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} started following {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/give.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/give.json b/streams-schemas/src/main/jsonschema/verbs/give.json
new file mode 100644
index 0000000..a9b6e74
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/give.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Give",
+    "description": "Indicates that the actor is giving an object to the target. Examples include one person giving a badge object to another person. The object identifies the object being given. The target identifies the receiver.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "give"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} gave {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/host.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/host.json b/streams-schemas/src/main/jsonschema/verbs/host.json
new file mode 100644
index 0000000..8c59cd0
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/host.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Host",
+    "description": "Indicates that the actor is hosting the object. As in hosting an event, or hosting a service.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "host"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is hosting {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/ignore.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/ignore.json b/streams-schemas/src/main/jsonschema/verbs/ignore.json
new file mode 100644
index 0000000..442de31
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/ignore.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Ignore",
+    "description": "Indicates that the actor has ignored the object. For instance, this verb may be used when an actor has ignored a friend request, in which case the object may be the request-friend activity.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "ignore"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} ignored {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/insert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/insert.json b/streams-schemas/src/main/jsonschema/verbs/insert.json
new file mode 100644
index 0000000..99db2ec
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/insert.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Insert",
+    "description": "Indicates that the actor has inserted the object into the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "insert"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} inserted {object.displayName} into {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/install.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/install.json b/streams-schemas/src/main/jsonschema/verbs/install.json
new file mode 100644
index 0000000..e3d6e0c
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/install.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Install",
+    "description": "Indicates that the actor has installed the object, as in installing an application.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "install"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} installed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/interact.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/interact.json b/streams-schemas/src/main/jsonschema/verbs/interact.json
new file mode 100644
index 0000000..d589ce4
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/interact.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Interact",
+    "description": "Indicates that the actor has interacted with the object. For instance, when one person interacts with another.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "interact"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} interacted with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/invite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/invite.json b/streams-schemas/src/main/jsonschema/verbs/invite.json
new file mode 100644
index 0000000..34a8691
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/invite.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Invite",
+    "description": "Indicates that the actor has invited the object, typically a person object, to join or participate in the object described by the target. The target could, for instance, be an event, group or a service.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "invite"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} invited {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/join.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/join.json b/streams-schemas/src/main/jsonschema/verbs/join.json
new file mode 100644
index 0000000..78daed8
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/join.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Join",
+    "description": "Indicates that the actor has become a member of the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "join"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} joined {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/leave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/leave.json b/streams-schemas/src/main/jsonschema/verbs/leave.json
new file mode 100644
index 0000000..1ce73bc
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/leave.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Leave",
+    "description": "Indicates that the actor has left the object. For instance, a Person leaving a Group or checking-out of a Place.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "leave"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} left {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/like.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/like.json b/streams-schemas/src/main/jsonschema/verbs/like.json
new file mode 100644
index 0000000..4ac1bf7
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/like.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Like",
+    "description": "Indicates that the actor marked the object as an item of special interest.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "like"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} likes {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/listen.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/listen.json b/streams-schemas/src/main/jsonschema/verbs/listen.json
new file mode 100644
index 0000000..3476144
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/listen.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Listen",
+    "description": "Indicates that the actor has listened to the object. This is typically only applicable for objects representing audio content, such as music, an audio-book, or a radio broadcast.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "listen"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} listened to {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/lose.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/lose.json b/streams-schemas/src/main/jsonschema/verbs/lose.json
new file mode 100644
index 0000000..60899ba
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/lose.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Lose",
+    "description": "Indicates that the actor has lost the object. For instance, if a person loses a game.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "lose"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} lost {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/make-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/make-friend.json b/streams-schemas/src/main/jsonschema/verbs/make-friend.json
new file mode 100644
index 0000000..a6440f1
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/make-friend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Befriend",
+    "description": "Indicates the creation of a friendship that is reciprocated by the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "make-friend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is now friends with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/open.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/open.json b/streams-schemas/src/main/jsonschema/verbs/open.json
new file mode 100644
index 0000000..0145bab
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/open.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Open",
+    "description": "Indicates that the actor has opened the object. For instance, the object could represent a ticket being tracked in an issue management system.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "open"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} opened {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/play.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/play.json b/streams-schemas/src/main/jsonschema/verbs/play.json
new file mode 100644
index 0000000..3f25748
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/play.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Play",
+    "description": "Indicates that the actor spent some time enjoying the object. For example, if the object is a video this indicates that the subject watched all or part of the video.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "play"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} played {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/post.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/post.json b/streams-schemas/src/main/jsonschema/verbs/post.json
new file mode 100644
index 0000000..ea1ad39
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/post.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Post",
+    "description": "To publish an object",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "post"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} posted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/present.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/present.json b/streams-schemas/src/main/jsonschema/verbs/present.json
new file mode 100644
index 0000000..bcfb1dc
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/present.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Present",
+    "description": "Indicates that the actor has presented the object. For instance, when a person gives a presentation at a conference.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "present"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} presented {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/purchase.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/purchase.json b/streams-schemas/src/main/jsonschema/verbs/purchase.json
new file mode 100644
index 0000000..303386a
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/purchase.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Purchase",
+    "description": "Indicates that the actor has purchased the object. If a target is specified, in indicates the entity from which the object was purchased.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "purchase"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} purchased {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/qualify.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/qualify.json b/streams-schemas/src/main/jsonschema/verbs/qualify.json
new file mode 100644
index 0000000..974448f
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/qualify.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Qualify",
+    "description": "Indicates that the actor has qualified for the object. If a target is specified, it indicates the context within which the qualification applies.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "qualify"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} qualified {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/read.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/read.json b/streams-schemas/src/main/jsonschema/verbs/read.json
new file mode 100644
index 0000000..e797f41
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/read.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Read",
+    "description": "Indicates that the actor read the object. This is typically only applicable for objects representing printed or written content, such as a book, a message or a comment.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "read"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} read {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/receive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/receive.json b/streams-schemas/src/main/jsonschema/verbs/receive.json
new file mode 100644
index 0000000..0d44aef
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/receive.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Receive",
+    "description": "Indicates that the actor is receiving an object. Examples include a person receiving a badge object. The object identifies the object being received.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "receive"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} received {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/reject.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/reject.json b/streams-schemas/src/main/jsonschema/verbs/reject.json
new file mode 100644
index 0000000..b82fac7
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/reject.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Reject",
+    "description": "Indicates that the actor has rejected the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "reject"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} rejected {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/remove-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/remove-friend.json b/streams-schemas/src/main/jsonschema/verbs/remove-friend.json
new file mode 100644
index 0000000..073441d
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/remove-friend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnFriend",
+    "description": "Indicates that the actor has removed the object from the collection of friends.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "remove-friend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} removed friend {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/remove.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/remove.json b/streams-schemas/src/main/jsonschema/verbs/remove.json
new file mode 100644
index 0000000..5b694db
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/remove.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Remove",
+    "description": "Indicates that the actor has removed the object from the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "remove"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} removed {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/replace.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/replace.json b/streams-schemas/src/main/jsonschema/verbs/replace.json
new file mode 100644
index 0000000..198c8c5
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/replace.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Replace",
+    "description": "Indicates that the actor has replaced the target with the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "replace"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} replaced {target.displayName} with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/request-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/request-friend.json b/streams-schemas/src/main/jsonschema/verbs/request-friend.json
new file mode 100644
index 0000000..9e246ca
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/request-friend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "RequestFriend",
+    "description": "Indicates the creation of a friendship that has not yet been reciprocated by the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "request-friend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} sent a friend request to {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/request.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/request.json b/streams-schemas/src/main/jsonschema/verbs/request.json
new file mode 100644
index 0000000..35807f5
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/request.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Request",
+    "description": "Indicates that the actor has requested the object. If a target is specified, it indicates the entity from which the object is being requested.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "request"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} requested {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/resolve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/resolve.json b/streams-schemas/src/main/jsonschema/verbs/resolve.json
new file mode 100644
index 0000000..0b71ce3
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/resolve.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Resolve",
+    "description": "Indicates that the actor has resolved the object. For instance, the object could represent a ticket being tracked in an issue management system.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "resolve"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} resolved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/retract.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/retract.json b/streams-schemas/src/main/jsonschema/verbs/retract.json
new file mode 100644
index 0000000..ff7cbe7
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/retract.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Retract",
+    "description": "Indicates that the actor has retracted the object. For instance, if an actor wishes to retract a previously published activity, the object would be the previously published activity that is being retracted.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "retract"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} retracted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/return.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/return.json b/streams-schemas/src/main/jsonschema/verbs/return.json
new file mode 100644
index 0000000..14a8cfb
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/return.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Return",
+    "description": "Indicates that the actor has returned the object. If a target is specified, it indicates the entity to which the object was returned.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "return"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} returned {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json b/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json
new file mode 100644
index 0000000..4838406
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/rsvp-maybe.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Rsvp Maybe",
+    "description": "To indicate that the actor may attend an event",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "rsvp-maybe"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} might attend {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json b/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json
new file mode 100644
index 0000000..dc36ee3
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/rsvp-no.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Rsvp No",
+    "description": "To indicate that the actor will not attend an event",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "rsvp-no"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} will not attend {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json b/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json
new file mode 100644
index 0000000..f62141e
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/rsvp-yes.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Rsvp Yes",
+    "description": "To indicate that the actor will attend an event",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "rsvp-yes"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is attending {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/satisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/satisfy.json b/streams-schemas/src/main/jsonschema/verbs/satisfy.json
new file mode 100644
index 0000000..a719680
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/satisfy.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Satisfy",
+    "description": "Indicates that the actor has satisfied the object. If a target is specified, it indicate the context within which the object was satisfied. For instance, if a person satisfies the requirements for a particular challenge, the person is the actor; the requirement is the object; and the challenge is the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "satisfy"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} has satisfied {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/save.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/save.json b/streams-schemas/src/main/jsonschema/verbs/save.json
new file mode 100644
index 0000000..1bdbc4b
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/save.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Save",
+    "description": "Indicates that the actor has called out the object as being of interest primarily to him- or herself. Though this action MAY be shared publicly, the implication is that the object has been saved primarily for the actor's own benefit rather than to show it to others as would be indicated by the \"share\" verb.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "save"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} saved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/schedule.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/schedule.json b/streams-schemas/src/main/jsonschema/verbs/schedule.json
new file mode 100644
index 0000000..a9824a3
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/schedule.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Schedule",
+    "description": "Indicates that the actor has scheduled the object. For instance, scheduling a meeting.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "schedule"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} scheduled {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/search.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/search.json b/streams-schemas/src/main/jsonschema/verbs/search.json
new file mode 100644
index 0000000..3263bbb
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/search.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Search",
+    "description": "Indicates that the actor is or has searched for the object. If a target is specified, it indicates the context within which the search is or has been conducted.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "satisfy"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} search for {object.displayName} in {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/sell.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/sell.json b/streams-schemas/src/main/jsonschema/verbs/sell.json
new file mode 100644
index 0000000..16aa351
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/sell.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Sell",
+    "description": "Indicates that the actor has sold the object. If a target is specified, it indicates the entity to which the object was sold.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "sell"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} sold {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/send.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/send.json b/streams-schemas/src/main/jsonschema/verbs/send.json
new file mode 100644
index 0000000..ead4108
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/send.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Share",
+    "description": "Indicates that the actor has called out the object to readers. In most cases, the actor did not create the object being shared, but is instead drawing attention to it.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "share"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} shared {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/share.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/share.json b/streams-schemas/src/main/jsonschema/verbs/share.json
new file mode 100644
index 0000000..18c0aea
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/share.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Share",
+    "description": "To share an object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "share"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} shared {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/sponsor.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/sponsor.json b/streams-schemas/src/main/jsonschema/verbs/sponsor.json
new file mode 100644
index 0000000..cc6f5cf
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/sponsor.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Sponsor",
+    "description": "Indicates that the actor has sponsored the object. If a target is specified, it indicates the context within which the sponsorship is offered. For instance, a company can sponsor an event; or an individual can sponsor a project; etc.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "sponsor"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} sponsored {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/start.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/start.json b/streams-schemas/src/main/jsonschema/verbs/start.json
new file mode 100644
index 0000000..61eaf06
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/start.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Start",
+    "description": "Indicates that the actor has started the object. For instance, when a person starts a project.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "start"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} started {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/stop-following.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/stop-following.json b/streams-schemas/src/main/jsonschema/verbs/stop-following.json
new file mode 100644
index 0000000..e09317d
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/stop-following.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnFollow",
+    "description": "Indicates that the actor has stopped following the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "follow"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} stopped following {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/submit.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/submit.json b/streams-schemas/src/main/jsonschema/verbs/submit.json
new file mode 100644
index 0000000..c1d25b1
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/submit.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Submit",
+    "description": "Indicates that the actor has submitted the object. If a target is specified, it indicates the entity to which the object was submitted.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "submit"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} submitted {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/main/jsonschema/verbs/tag.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/verbs/tag.json b/streams-schemas/src/main/jsonschema/verbs/tag.json
new file mode 100644
index 0000000..6208eae
--- /dev/null
+++ b/streams-schemas/src/main/jsonschema/verbs/tag.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Tag",
+    "description": "Indicates that the actor has associated the object with the target. For example, if the actor specifies that a particular user appears in a photo. the object is the user and the target is the photo.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "tag"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} tagged {object.displayName} as {target.displayName}"
+        }
+    }
+}



[29/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java
deleted file mode 100644
index 53f0a98..0000000
--- a/streams-schemas/src/main/java/org/apache/streams/schema/FileUtil.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.apache.streams.schema;
-
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.nio.file.StandardOpenOption;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created by steve on 5/1/16.
- */
-public class FileUtil {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(FileUtil.class);
-
-    public static String dropSourcePathPrefix(String inputFile, String sourceDirectory) {
-        if(Strings.isNullOrEmpty(sourceDirectory))
-            return inputFile;
-        else {
-            try {
-                if( inputFile.contains(sourceDirectory) && inputFile.indexOf(sourceDirectory) > 0) {
-                    return inputFile.substring(inputFile.indexOf(sourceDirectory)+sourceDirectory.length()+1);
-                }
-            } catch( Throwable e ) {
-                return inputFile;
-            }
-        }
-        return inputFile;
-    }
-
-    public static String swapExtension(String inputFile, String originalExtension, String newExtension) {
-        if(inputFile.endsWith("."+originalExtension))
-            return inputFile.replace("."+originalExtension, "."+newExtension);
-        else return inputFile;
-    }
-
-    public static String dropExtension(String inputFile) {
-        if(inputFile.contains("."))
-            return inputFile.substring(0, inputFile.lastIndexOf("."));
-        else return inputFile;
-    }
-
-    public static void writeFile(String resourceFile, String resourceContent) {
-        try {
-            File path = new File(resourceFile);
-            File dir = path.getParentFile();
-            if( !dir.exists() )
-                dir.mkdirs();
-            Files.write(Paths.get(resourceFile), resourceContent.getBytes(), StandardOpenOption.CREATE_NEW);
-        } catch (Exception e) {
-            LOGGER.error("Write Exception: {}", e);
-        }
-    }
-
-    public static void resolveRecursive(GenerationConfig config, List<File> schemaFiles) {
-
-        Preconditions.checkArgument(schemaFiles.size() > 0);
-        int i = 0;
-        while( schemaFiles.size() > i) {
-            File child = schemaFiles.get(i);
-            if (child.isDirectory()) {
-                schemaFiles.addAll(Arrays.asList(child.listFiles(config.getFileFilter())));
-                schemaFiles.remove(child);
-            } else {
-                i += 1;
-            }
-        }
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java b/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java
deleted file mode 100644
index ec77367..0000000
--- a/streams-schemas/src/main/java/org/apache/streams/schema/GenerationConfig.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package org.apache.streams.schema;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.net.URL;
-import java.util.Iterator;
-
-/**
- * Created by sblackmon on 5/3/16.
- */
-public interface GenerationConfig {
-
-    /**
-     * Gets the 'source' configuration option.
-     *
-     * @return The source file(s) or directory(ies) from which JSON Schema will
-     *         be read.
-     */
-    Iterator<URL> getSource();
-
-    /**
-     * Gets the 'targetDirectory' configuration option.
-     *
-     * @return The target directory into which generated types will be written
-     *         (may or may not exist before types are written)
-     */
-    File getTargetDirectory();
-
-    /**
-     * Gets the 'outputEncoding' configuration option.
-     *
-     * @return The character encoding that should be used when writing output files.
-     */
-    String getOutputEncoding();
-
-    /**
-     * Gets the file filter used to isolate the schema mapping files in the
-     * source directories.
-     *
-     * @return the file filter use when scanning for schema files.
-     */
-    FileFilter getFileFilter();
-
-    /**
-     * Gets the 'includeAdditionalProperties' configuration option.
-     *
-     * @return Whether to allow 'additional properties' support in objects.
-     *         Setting this to false will disable additional properties support,
-     *         regardless of the input schema(s).
-     */
-//    boolean isIncludeAdditionalProperties();
-
-    /**
-     * Gets the 'targetVersion' configuration option.
-     *
-     *  @return The target version for generated source files.
-     */
-//    String getTargetVersion();
-
-//    /**
-//     * Gets the `includeDynamicAccessors` configuraiton option.
-//     *
-//     * @return Whether to include dynamic getters, setters, and builders
-//     *         or to omit these methods.
-//     */
-//    boolean isIncludeDynamicAccessors();
-
-//    /**
-//     * Gets the `dateTimeType` configuration option.
-//     *         <p>
-//     *         Example values:
-//     *         <ul>
-//     *         <li><code>org.joda.time.LocalDateTime</code> (Joda)</li>
-//     *         <li><code>java.time.LocalDateTime</code> (JSR310)</li>
-//     *         <li><code>null</code> (default behavior)</li>
-//     *         </ul>
-//     *
-//     * @return The java type to use instead of {@link java.util.Date}
-//     *         when adding date type fields to generate Java types.
-//     */
-//    String getDateTimeType();
-//
-//    /**
-//     * Gets the `dateType` configuration option.
-//     *         <p>
-//     *         Example values:
-//     *         <ul>
-//     *         <li><code>org.joda.time.LocalDate</code> (Joda)</li>
-//     *         <li><code>java.time.LocalDate</code> (JSR310)</li>
-//     *         <li><code>null</code> (default behavior)</li>
-//     *         </ul>
-//     *
-//     * @return The java type to use instead of string
-//     *         when adding string type fields with a format of date (not
-//     *         date-time) to generated Java types.
-//     */
-//    String getDateType();
-//
-//    /**
-//     * Gets the `timeType` configuration option.
-//     *         <p>
-//     *         Example values:
-//     *         <ul>
-//     *         <li><code>org.joda.time.LocalTime</code> (Joda)</li>
-//     *         <li><code>java.time.LocalTime</code> (JSR310)</li>
-//     *         <li><code>null</code> (default behavior)</li>
-//     *         </ul>
-//     *
-//     * @return The java type to use instead of string
-//     *         when adding string type fields with a format of time (not
-//     *         date-time) to generated Java types.
-//     */
-//    String getTimeType();
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/java/org/apache/streams/schema/Schema.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/Schema.java b/streams-schemas/src/main/java/org/apache/streams/schema/Schema.java
deleted file mode 100644
index ea75ffd..0000000
--- a/streams-schemas/src/main/java/org/apache/streams/schema/Schema.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package org.apache.streams.schema;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-import java.net.URI;
-
-/**
- * A JSON Schema document.
- */
-public class Schema {
-
-    private final URI id;
-    private final URI uri;
-    private final JsonNode content;
-    private final Schema parent;
-    private final boolean generate;
-
-    public Schema(URI uri, JsonNode content, Schema parent, boolean generate) {
-        this.uri = uri;
-        this.content = content;
-        this.parent = parent;
-        this.generate = generate;
-        this.id = content.has("id") ? URI.create(content.get("id").asText()) : null;
-    }
-
-    public URI getId() {
-        return id;
-    }
-
-    public URI getURI() {
-        return uri;
-    }
-
-    public JsonNode getContent() {
-        return content;
-    }
-
-    public JsonNode getParentContent() {
-        if( parent != null )
-            return parent.getContent();
-        else return null;
-    }
-
-    public URI getParentURI() {
-        if( parent != null ) return parent.getURI();
-        else return null;
-    }
-
-    public boolean isGenerated() {
-        return generate;
-    }
-
-    public Schema getParent() {
-        return parent;
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/java/org/apache/streams/schema/SchemaStore.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/SchemaStore.java b/streams-schemas/src/main/java/org/apache/streams/schema/SchemaStore.java
deleted file mode 100644
index e612aff..0000000
--- a/streams-schemas/src/main/java/org/apache/streams/schema/SchemaStore.java
+++ /dev/null
@@ -1,283 +0,0 @@
-package org.apache.streams.schema;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.common.base.Optional;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Ordering;
-import org.apache.commons.lang3.StringUtils;
-import org.jsonschema2pojo.ContentResolver;
-import org.jsonschema2pojo.FragmentResolver;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.net.URI;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import static org.apache.streams.schema.URIUtil.safeResolve;
-
-/**
- * Created by steve on 4/30/16.
- */
-public class SchemaStore extends Ordering<Schema> {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(SchemaStore.class);
-    private final static JsonNodeFactory NODE_FACTORY = JsonNodeFactory.instance;
-
-    protected Map<URI, Schema> schemas = new HashMap();
-    protected FragmentResolver fragmentResolver = new FragmentResolver();
-    protected ContentResolver contentResolver = new ContentResolver();
-
-    public SchemaStore() {
-    }
-
-    public synchronized Schema create(URI uri) {
-        if(!getByUri(uri).isPresent()) {
-            URI baseURI = URIUtil.removeFragment(uri);
-            JsonNode baseNode = this.contentResolver.resolve(baseURI);
-            if(uri.toString().contains("#") && !uri.toString().endsWith("#")) {
-                Schema newSchema = new Schema(baseURI, baseNode, null, true);
-                this.schemas.put(baseURI, newSchema);
-                JsonNode childContent = this.fragmentResolver.resolve(baseNode, '#' + StringUtils.substringAfter(uri.toString(), "#"));
-                this.schemas.put(uri, new Schema(uri, childContent, newSchema, false));
-            } else {
-                if( baseNode.has("extends") && baseNode.get("extends").isObject()) {
-                    URI ref = URI.create(((ObjectNode)baseNode.get("extends")).get("$ref").asText());
-                    URI absoluteURI;
-                    if( ref.isAbsolute())
-                        absoluteURI = ref;
-                    else
-                        absoluteURI = baseURI.resolve(ref);
-                    JsonNode parentNode = this.contentResolver.resolve(absoluteURI);
-                    Schema parentSchema = null;
-                    if( this.schemas.get(absoluteURI) != null ) {
-                        parentSchema = this.schemas.get(absoluteURI);
-                    } else {
-                        parentSchema = create(absoluteURI);
-                    }
-                    this.schemas.put(uri, new Schema(uri, baseNode, parentSchema, true));
-                } else {
-                    this.schemas.put(uri, new Schema(uri, baseNode, null, true));
-                }
-            }
-            List<JsonNode> refs = baseNode.findValues("$ref");
-            for( JsonNode ref : refs ) {
-                if( ref.isValueNode() ) {
-                    String refVal = ref.asText();
-                    URI refURI = null;
-                    try {
-                        refURI = URI.create(refVal);
-                    } catch( Exception e ) {
-                        LOGGER.info("Exception: {}", e.getMessage());
-                    }
-                    if (refURI != null && !getByUri(refURI).isPresent()) {
-                        if (refURI.isAbsolute())
-                            create(refURI);
-                        else
-                            create(baseURI.resolve(refURI));
-                    }
-                }
-            }
-        }
-
-        return this.schemas.get(uri);
-    }
-
-    public Schema create(Schema parent, String path) {
-        if(path.equals("#")) {
-            return parent;
-        } else {
-            path = StringUtils.stripEnd(path, "#?&/");
-            URI id = parent != null && parent.getId() != null?parent.getId().resolve(path):URI.create(path);
-            if(this.selfReferenceWithoutParentFile(parent, path)) {
-                this.schemas.put(id, new Schema(id, this.fragmentResolver.resolve(parent.getParentContent(), path), parent, false));
-                return this.schemas.get(id);
-            } else {
-                return this.create(id);
-            }
-        }
-    }
-
-    protected boolean selfReferenceWithoutParentFile(Schema parent, String path) {
-        return parent != null && (parent.getId() == null || parent.getId().toString().startsWith("#/")) && path.startsWith("#/");
-    }
-
-    public synchronized void clearCache() {
-        this.schemas.clear();
-    }
-
-    public Integer getSize() {
-        return schemas.size();
-    }
-
-    public Optional<Schema> getById(URI id) {
-        for( Schema schema : schemas.values() ) {
-            if( schema.getId() != null && schema.getId().equals(id) )
-                return Optional.of(schema);
-        }
-        return Optional.absent();
-    }
-
-    public Optional<Schema> getByUri(URI uri) {
-        for( Schema schema : schemas.values() ) {
-            if( schema.getURI().equals(uri) )
-                return Optional.of(schema);
-        }
-        return Optional.absent();
-    }
-
-    public Integer getFileUriCount() {
-        int count = 0;
-        for( Schema schema : schemas.values() ) {
-            if( schema.getURI().getScheme().equals("file") )
-                count++;
-        }
-        return count;
-    }
-
-    public Integer getHttpUriCount() {
-        int count = 0;
-        for( Schema schema : schemas.values() ) {
-            if( schema.getURI().getScheme().equals("http") )
-                count++;
-        }
-        return count;
-    }
-
-    public Iterator<Schema> getSchemaIterator() {
-        List<Schema> schemaList = Lists.newArrayList(schemas.values());
-        Collections.sort(schemaList, this);
-        return schemaList.iterator();
-    }
-
-    public ObjectNode resolveProperties(Schema schema, ObjectNode fieldNode, String resourceId) {
-        // this should return something more suitable like:
-        //   Map<String, Pair<Schema, ObjectNode>>
-        ObjectNode schemaProperties = NODE_FACTORY.objectNode();
-        ObjectNode parentProperties = NODE_FACTORY.objectNode();
-        if (fieldNode == null) {
-            ObjectNode schemaContent = (ObjectNode) schema.getContent();
-            if( schemaContent.has("properties") ) {
-                schemaProperties = (ObjectNode) schemaContent.get("properties");
-                if (schema.getParentContent() != null) {
-                    ObjectNode parentContent = (ObjectNode) schema.getParentContent();
-                    if (parentContent.has("properties")) {
-                        parentProperties = (ObjectNode) parentContent.get("properties");
-                    }
-                }
-            }
-        } else if (fieldNode != null && fieldNode.size() > 0) {
-            if( fieldNode.has("properties") && fieldNode.get("properties").isObject() && fieldNode.get("properties").size() > 0 )
-                schemaProperties = (ObjectNode) fieldNode.get("properties");
-            URI parentURI = null;
-            if( fieldNode.has("$ref") || fieldNode.has("extends") ) {
-                JsonNode refNode = fieldNode.get("$ref");
-                JsonNode extendsNode = fieldNode.get("extends");
-                if (refNode != null && refNode.isValueNode())
-                    parentURI = URI.create(refNode.asText());
-                else if (extendsNode != null && extendsNode.isObject())
-                    parentURI = URI.create(extendsNode.get("$ref").asText());
-                ObjectNode parentContent = null;
-                URI absoluteURI;
-                if (parentURI.isAbsolute())
-                    absoluteURI = parentURI;
-                else {
-                    absoluteURI = schema.getURI().resolve(parentURI);
-                    if (!absoluteURI.isAbsolute() || (absoluteURI.isAbsolute() && !getByUri(absoluteURI).isPresent() ))
-                        absoluteURI = schema.getParentURI().resolve(parentURI);
-                }
-                if (absoluteURI != null && absoluteURI.isAbsolute()) {
-                    if (getByUri(absoluteURI).isPresent())
-                        parentContent = (ObjectNode) getByUri(absoluteURI).get().getContent();
-                    if (parentContent != null && parentContent.isObject() && parentContent.has("properties")) {
-                        parentProperties = (ObjectNode) parentContent.get("properties");
-                    } else if (absoluteURI.getPath().endsWith("#properties")) {
-                        absoluteURI = URI.create(absoluteURI.toString().replace("#properties", ""));
-                        parentProperties = (ObjectNode) getByUri(absoluteURI).get().getContent().get("properties");
-                    }
-                }
-            }
-
-
-        }
-
-        ObjectNode resolvedProperties = NODE_FACTORY.objectNode();
-        if (parentProperties != null && parentProperties.size() > 0)
-            resolvedProperties = SchemaUtil.mergeProperties(schemaProperties, parentProperties);
-        else resolvedProperties = schemaProperties.deepCopy();
-
-        return resolvedProperties;
-    }
-
-    @Override
-    public int compare(Schema left, Schema right) {
-        // are they the same?
-        if( left.equals(right)) return 0;
-        // is one an ancestor of the other
-        Schema candidateAncestor = left;
-        while( candidateAncestor.getParent() != null ) {
-            candidateAncestor = candidateAncestor.getParent();
-            if( candidateAncestor.equals(right))
-                return 1;
-        }
-        candidateAncestor = right;
-        while( candidateAncestor.getParent() != null ) {
-            candidateAncestor = candidateAncestor.getParent();
-            if( candidateAncestor.equals(left))
-                return -1;
-        }
-        // does one have a field that reference the other?
-        for( JsonNode refNode : left.getContent().findValues("$ref") ) {
-            String refText = refNode.asText();
-            Optional<URI> resolvedURI = safeResolve(left.getURI(), refText);
-            if( resolvedURI.isPresent() && resolvedURI.get().equals(right.getURI()))
-                return 1;
-        }
-        for( JsonNode refNode : right.getContent().findValues("$ref") ) {
-            String refText = refNode.asText();
-            Optional<URI> resolvedURI = safeResolve(right.getURI(), refText);
-            if( resolvedURI.isPresent() && resolvedURI.get().equals(left.getURI()))
-                return -1;
-        }
-        // does one have a field that reference a third schema that references the other?
-        for( JsonNode refNode : left.getContent().findValues("$ref") ) {
-            String refText = refNode.asText();
-            Optional<URI> possibleConnectorURI = safeResolve(left.getURI(), refText);
-            if( possibleConnectorURI.isPresent()) {
-                Optional<Schema> possibleConnector = getByUri(possibleConnectorURI.get());
-                if (possibleConnector.isPresent()) {
-                    for (JsonNode connectorRefNode : possibleConnector.get().getContent().findValues("$ref")) {
-                        String connectorRefText = connectorRefNode.asText();
-                        Optional<URI> resolvedURI = safeResolve(possibleConnector.get().getURI(), connectorRefText);
-                        if (resolvedURI.isPresent() && resolvedURI.get().equals(right.getURI()))
-                            return 1;
-                    }
-                }
-            }
-        }
-        for( JsonNode refNode : right.getContent().findValues("$ref") ) {
-            String refText = refNode.asText();
-            Optional<URI> possibleConnectorURI = safeResolve(right.getURI(), refText);
-            if( possibleConnectorURI.isPresent()) {
-                Optional<Schema> possibleConnector = getByUri(possibleConnectorURI.get());
-                if (possibleConnector.isPresent()) {
-                    for (JsonNode connectorRefNode : possibleConnector.get().getContent().findValues("$ref")) {
-                        String connectorRefText = connectorRefNode.asText();
-                        Optional<URI> resolvedURI = safeResolve(possibleConnector.get().getURI(), connectorRefText);
-                        if (resolvedURI.isPresent() && resolvedURI.get().equals(left.getURI()))
-                            return -1;
-                    }
-                }
-            }
-        }
-        return 0;
-    }
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java
deleted file mode 100644
index cefc5e8..0000000
--- a/streams-schemas/src/main/java/org/apache/streams/schema/SchemaUtil.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.apache.streams.schema;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.net.URI;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.Map;
-
-import static org.apache.commons.lang3.StringUtils.isEmpty;
-
-/**
- * Created by steve on 4/30/16.
- */
-public class SchemaUtil {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(SchemaUtil.class);
-    private static final JsonNodeFactory NODE_FACTORY = JsonNodeFactory.instance;
-    public static final String ILLEGAL_CHARACTER_REGEX = "[^0-9a-zA-Z_$]";
-
-    public static String childQualifiedName(String parentQualifiedName, String childSimpleName) {
-        String safeChildName = childSimpleName.replaceAll(ILLEGAL_CHARACTER_REGEX, "_");
-        return isEmpty(parentQualifiedName) ? safeChildName : parentQualifiedName + "." + safeChildName;
-    }
-
-    public static ObjectNode readSchema(URL schemaUrl) {
-
-        ObjectNode schemaNode = NODE_FACTORY.objectNode();
-        schemaNode.put("$ref", schemaUrl.toString());
-        return schemaNode;
-
-    }
-
-    public static ObjectNode mergeProperties(ObjectNode content, ObjectNode parent) {
-
-        ObjectNode merged = parent.deepCopy();
-        Iterator<Map.Entry<String, JsonNode>> fields = content.fields();
-        for( ; fields.hasNext(); ) {
-            Map.Entry<String, JsonNode> field = fields.next();
-            String fieldId = field.getKey();
-            merged.put(fieldId, field.getValue().deepCopy());
-        }
-        return merged;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/java/org/apache/streams/schema/URIUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/URIUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/URIUtil.java
deleted file mode 100644
index 04e8904..0000000
--- a/streams-schemas/src/main/java/org/apache/streams/schema/URIUtil.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.apache.streams.schema;
-
-import com.google.common.base.Optional;
-import org.apache.commons.lang3.StringUtils;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-
-/**
- * Created by sblackmon on 5/1/16.
- */
-public class URIUtil {
-
-    public static URI removeFragment(URI id) {
-        return URI.create(StringUtils.substringBefore(id.toString(), "#"));
-    }
-
-    public static URI removeFile(URI id) {
-        return URI.create(StringUtils.substringBeforeLast(id.toString(), "/"));
-    }
-
-    public static Optional<URI> safeResolve(URI absolute, String relativePart) {
-        if( !absolute.isAbsolute()) return Optional.absent();
-        try {
-            return Optional.of(absolute.resolve(relativePart));
-        } catch( IllegalArgumentException e ) {
-            return Optional.absent();
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/activity.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/activity.json b/streams-schemas/src/main/jsonschema/activity.json
deleted file mode 100644
index 2edd759..0000000
--- a/streams-schemas/src/main/jsonschema/activity.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/activity.json#",
-    "type": "object",
-    "title": "activity",
-    "javaInterfaces": ["java.io.Serializable"],
-    "description": "An activity construct recounts what an actor did to an object in the past. If there is no actor it simply describes the change.",
-    "additionalProperties": true,
-    "properties": {
-        "id": {
-            "type": "string",
-            "description": "Uniquely identifies each activity within the service",
-            "required": true
-        },
-        "actor": {
-            "type": "object",
-            "required": true,
-            "description": "Describes the entity that performed the activity. An activity MUST contain one actor property whose value is a single Object.",
-            "javaInterfaces": ["java.io.Serializable"],
-            "$ref": "./object.json"
-        },
-        "verb": {
-            "title": "verb",
-            "type": "string",
-            "default": "post",
-            "required": true,
-            "description": "Identifies the action that the activity describes. An activity MUST contain a verb property whose value is a JSON String that is non-empty and matches either the \"isegment-nz-nc\" or the \"IRI\" production in [RFC3987]. Note that the use of a relative reference other than a simple name is not allowed."
-        },
-        "object": {
-            "type": "object",
-            "required": true,
-            "description": "Describes the primary object of the activity. For instance, in the activity, \"John saved a movie to his wishlist\", the object of the activity is \"movie\". An activity SHOULD contain an object property whose value is a single Object. If the object property is not contained, the primary object of the activity MAY be implied by context.",
-            "$ref": "./object.json"
-        },
-        "target": {
-            "type": "object",
-            "description": "Describes the target of the activity. The precise meaning of the activity's target is dependent on the activities verb, but will often be the object the English preposition \"to\". For instance, in the activity, \"John saved a movie to his wishlist\", the target of the activity is \"wishlist\". The activity target MUST NOT be used to identity an indirect object that is not a target of the activity. An activity MAY contain a target property whose value is a single Object.",
-            "$ref": "./object.json"
-        },
-        "published": {
-            "type": "string",
-            "description": "The date and time at which the activity occurred. It is important to note that this is not necessarily the same as the time at which the activity was published. An activity MUST contain a postedTime property.",
-            "format": "date-time"
-        },
-        "updated": {
-            "type": "string",
-            "description": "The date and time at which a previously published activity has been modified. An Activity MAY contain an updatedTime property",
-            "format": "date-time"
-        },
-        "generator": {
-            "type": "object",
-            "description": "Describes the application that generated the activity. An activity MAY contain a generator property whose value is a single Object.",
-            "javaInterfaces": ["java.io.Serializable"],
-            "extends": {
-                "$ref": "./object.json"
-            }
-        },
-        "icon": {
-            "type": "object",
-            "description": "An IRI[RFC3987] identifying an image resource provides a visual representation of the activity, intended for human consumption. The image SHOULD have an aspect ratio of one (horizontal) to one (vertical) and SHOULD be suitable for presentation at a small size. An activity MAY have an icon property",
-            "javaInterfaces": ["java.io.Serializable"],
-            "extends": {
-                "$ref": "./media_link.json"
-            }
-        },
-        "provider": {
-            "type": "object",
-            "description": "Describes the application that published the activity. Note that this is not necessarily the same entity that generated the activity. An activity MAY contain a provider property whose value is a single Object",
-            "javaInterfaces": ["java.io.Serializable"],
-            "extends": {
-                "$ref": "./object.json"
-            }
-        },
-        "title": {
-            "type": "string",
-            "description": "Natural-language title or headline for the activity encoded as a single JSON String containing HTML markup. An activity MAY contain a title property",
-            "format": "html"
-        },
-        "content": {
-            "type": "string",
-            "description": "Natural-language description of the activity encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a content property",
-            "format": "html"
-        },
-        "url": {
-            "type": "string",
-            "description": "An IRI [RFC3987] identifying a resource providing an HTML representation of the activity. An activity MAY contain a url property",
-            "format": "url"
-        },
-        "links": {
-            "type": "array",
-            "description": "Links between this object and other resources as defined in Web Linking",
-            "note": "Tell JSON schema team to not put links inside http://json-schema.org/hyper-schema#properties",
-            "items": {
-                "type": "string"
-            }
-        }
-    },
-    "links": [
-        {
-            "rel": "describedby",
-            "href": "./verbs/{verb}.json"
-        }
-    ]
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/collection.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/collection.json b/streams-schemas/src/main/jsonschema/collection.json
deleted file mode 100644
index 38f83e7..0000000
--- a/streams-schemas/src/main/jsonschema/collection.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/collection.json#",
-    "type": "object",
-    "title": "collection",
-    "javaInterfaces": ["java.io.Serializable"],
-    "description": "A collection is a generic list of Objects of any object type. The objectType of each item in the collection MAY be omitted if the type of object can be established through context. The collection is used primarily as the root of an Activity Streams document, but can be used as the value of extension properties in a variety of situations. ",
-    "properties": {
-        "url": {
-            "type": "string",
-            "description": "An IRI [RFC3987] referencing a JSON document containing the full listing of objects in the collection."
-        },
-        "totalItems": {
-            "type": "integer",
-            "description": "Non-negative integer specifying the total number of activities within the stream. The Stream serialization MAY contain a count property."
-        },
-        "items": {
-            "type": "array",
-            "required": true,
-            "description": "An array containing a listing of Objects of any object type. If used in combination with the url property, the items array can be used to provide a subset of the objects that may be found in the resource identified by the url.",
-            "items": {
-                "type": "object",
-                "extends": {
-                    "$ref": "./object.json"
-                }
-            }
-        },
-        "links": {
-            "type": "array",
-            "optional": true,
-            "description": "Links between an this object and other resources as defined in Web Linking",
-            "extends": {
-                "$ref": "http://json-schema.org/links#properties"
-            }
-        }
-    },
-    "links": [
-        {
-            "rel": "describedby",
-            "href": "http://json-schema.org/schema"
-        }
-    ]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/media_link.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/media_link.json b/streams-schemas/src/main/jsonschema/media_link.json
deleted file mode 100644
index e7eece0..0000000
--- a/streams-schemas/src/main/jsonschema/media_link.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/media_link.json#",
-    "type": "object",
-    "title": "media_link",
-    "javaInterfaces": ["java.io.Serializable"],
-    "description": "Visual representation of an object in the form of an image, video or embedded HTML fragments",
-    "properties": {
-        "duration": {
-            "title": "duration",
-            "type": "number",
-            "description": "A hint to the consumer about the length, in seconds, of the media resource identified by the url property. A media link MAY contain a \"duration\" property when the target resource is a time-based media item such as an audio or video."
-        },
-        "height": {
-            "title": "height",
-            "type": "integer",
-            "description": "A hint to the consumer about the height, in pixels, of the media resource identified by the url property. A media link MAY contain a height property when the target resource is a visual media item such as an image, video or embeddable HTML page."
-        },
-        "width": {
-            "title": "width",
-            "type": "integer",
-            "description": "A hint to the consumer about the width, in pixels, of the media resource identified by the url property. A media link MAY contain a width property when the target resource is a visual media item such as an image, video or embeddable HTML page."
-        },
-        "url": {
-            "type": "string",
-            "required": true,
-            "description": "The IRI of the media resource being linked. A media link MUST have a url property."
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/object.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/object.json b/streams-schemas/src/main/jsonschema/object.json
deleted file mode 100644
index 94f6719..0000000
--- a/streams-schemas/src/main/jsonschema/object.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/object.json#",
-    "type": "object",
-    "title": "object",
-    "javaInterfaces": ["java.io.Serializable"],
-    "description": "Basic object on the web. The only required property is the id",
-    "properties": {
-        "id": {
-            "type": "string",
-            "description": "Provides a permanent, universally unique identifier for the object in the form of an absolute IRI [RFC3987]. An object SHOULD contain a single id property. If an object does not contain an id property, consumers MAY use the value of the url property as a less-reliable, non-unique identifier.",
-            "required": true
-        },
-        "image": {
-            "format": "image",
-            "type": "object",
-            "description": "Description of a resource providing a visual representation of the object, intended for human consumption. An object MAY contain an image property whose value is a Media Link.",
-            "extends": {
-                "$ref": "./media_link.json"
-            }
-        },
-        "displayName": {
-            "type": "string",
-            "description": "A natural-language, human-readable and plain-text name for the object. HTML markup MUST NOT be included. An object MAY contain a displayName property. If the object does not specify an objectType property, the object SHOULD specify a displayName"
-        },
-        "summary": {
-            "type": "string",
-            "description": "Natural-language summary of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a summary property"
-        },
-        "content": {
-            "type": "string",
-            "description": "Natural-language description of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An object MAY contain a content property"
-        },
-        "url": {
-            "type": "string",
-            "format": "url",
-            "description": "An IRI [RFC3987] identifying a resource providing an HTML representation of the object. An object MAY contain a url property"
-        },
-        "objectType": {
-            "type": "string",
-            "description": "Identifies the type of object. An object MAY contain an objectType property whose value is a JSON String that is non-empty and matches either the \"isegment-nz-nc\" or the \"IRI\" production in [RFC3987]. Note that the use of a relative reference other than a simple name is not allowed. If no objectType property is contained, the object has no specific type."
-        },
-        "author": {
-            "type": "object",
-            "description": "Describes the entity that created or authored the object. An object MAY contain a single author property whose value is an Object of any type. Note that the author field identifies the entity that created the object and does not necessarily identify the entity that published the object. For instance, it may be the case that an object created by one person is posted and published to a system by an entirely different entity",
-            "javaInterfaces": ["java.io.Serializable"],
-            "extends": {
-                "$ref": "./object.json"
-            }
-        },
-        "published": {
-            "type": "string",
-            "description": "[RFC3339] date-time. The date and time at which the object was published. An object MAY contain a published property",
-            "format": "date-time"
-        },
-        "updated": {
-            "type": "string",
-            "description": "[RFC3339] date-time. The date and time at which a previously published object has been modified. An Object MAY contain an updated property.",
-            "format": "date-time"
-        },
-        "attachments": {
-            "title": "Related objects",
-            "description": "A collection of one or more additional, associated objects, similar to the concept of attached files in an email message. An object MAY have an attachedObjects property whose value is a JSON Array of Objects.",
-            "type": "array",
-            "items": {
-                "type": "object",
-                "javaType": "org.apache.streams.pojo.json.Attachment",
-                "javaInterfaces": ["java.io.Serializable"],
-                "$ref": "./object.json"
-            }
-        },
-        "upstreamDuplicates": {
-            "type": "array",
-            "description": "A JSON Array of one or more absolute IRI's [RFC3987] identifying objects that duplicate this object's content. An object SHOULD contain an upstreamDuplicates property when a publisher is knowingly duplicating with a new ID the content from another object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources",
-            "items": {
-                "type": "string"
-            }
-        },
-        "downstreamDuplicates": {
-            "type": "array",
-            "description": "A JSON Array of one or more absolute IRI's [RFC3987] identifying objects that duplicate this object's content. An object SHOULD contain a downstreamDuplicates property when there are known objects, possibly in a different system, that duplicate the content in this object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources.",
-            "items": {
-                "type": "string"
-            }
-        }
-    },
-    "additionalProperties": true,
-    "links": [
-        {
-            "rel": "describedby",
-            "href": "./objectType/{objectType}.json"
-        }
-    ]
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/alert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/alert.json b/streams-schemas/src/main/jsonschema/objectTypes/alert.json
deleted file mode 100644
index 0fa4d60..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/alert.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/alert.json#",
-    "type": "object",
-    "title": "alert",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "alert"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/application.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/application.json b/streams-schemas/src/main/jsonschema/objectTypes/application.json
deleted file mode 100644
index ea3219d..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/application.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/application.json#",
-    "type": "object",
-    "title": "application",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "application"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/article.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/article.json b/streams-schemas/src/main/jsonschema/objectTypes/article.json
deleted file mode 100644
index 2260532..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/article.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/article.json#",
-    "type": "object",
-    "title": "article",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "article"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/audio.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/audio.json b/streams-schemas/src/main/jsonschema/objectTypes/audio.json
deleted file mode 100644
index 1e94405..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/audio.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/audio.json#",
-    "type": "object",
-    "title": "audio",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "audio"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/badge.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/badge.json b/streams-schemas/src/main/jsonschema/objectTypes/badge.json
deleted file mode 100644
index 08af422..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/badge.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/badge.json#",
-    "type": "object",
-    "title": "badge",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "badge"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/binary.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/binary.json b/streams-schemas/src/main/jsonschema/objectTypes/binary.json
deleted file mode 100644
index 8723f51..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/binary.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/binary.json#",
-    "type": "object",
-    "title": "binary",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "binary"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json b/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json
deleted file mode 100644
index 808555f..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/bookmark.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/badge.json#",
-    "type": "object",
-    "title": "bookmark",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "bookmark"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/comment.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/comment.json b/streams-schemas/src/main/jsonschema/objectTypes/comment.json
deleted file mode 100644
index 1ec2dc2..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/comment.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/comment.json#",
-    "type": "object",
-    "title": "comment",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "comment"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/device.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/device.json b/streams-schemas/src/main/jsonschema/objectTypes/device.json
deleted file mode 100644
index 74dfb39..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/device.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/device.json#",
-    "type": "object",
-    "title": "device",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "device"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/event.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/event.json b/streams-schemas/src/main/jsonschema/objectTypes/event.json
deleted file mode 100644
index f6e5fb6..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/event.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/event.json#",
-    "type": "object",
-    "title": "event",
-    "description": "xCal fromat for vevent",
-    "extends": [
-        {
-            "$ref": "../object.json"
-        },
-        {
-            "$ref": "http://www.json-schema.org/calendar"
-        }
-    ],
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "event"
-        },
-        "attendedBy": {
-            "type": "../collection.json"
-        },
-        "attending": {
-          "type": "../collection.json"
-        },
-        "endTime": {
-          "type": "string",
-          "format": "date-time"
-        },
-        "invited": {
-          "type": "../collection.json"
-        },
-        "maybeAttending": {
-          "type": "../collection.json"
-        },
-        "notAttendedBy": {
-          "type": "../collection.json"
-        },
-        "notAttending": {
-          "type": "../collection.json"
-        },
-        "startTime": {
-          "type": "string",
-          "format": "date-time"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/file.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/file.json b/streams-schemas/src/main/jsonschema/objectTypes/file.json
deleted file mode 100644
index 50ec239..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/file.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/file.json#",
-    "type": "object",
-    "title": "file",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "file"
-        },
-        "fileUrl": {
-          "type": "string"
-        },
-        "mimeType": {
-          "type": "string"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/folder.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/folder.json b/streams-schemas/src/main/jsonschema/objectTypes/folder.json
deleted file mode 100644
index 35592c1..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/folder.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/folder.json#",
-    "type": "object",
-    "title": "folder",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "folder"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/game.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/game.json b/streams-schemas/src/main/jsonschema/objectTypes/game.json
deleted file mode 100644
index ca761ed..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/game.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/game.json#",
-    "type": "object",
-    "title": "game",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "game"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/group.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/group.json b/streams-schemas/src/main/jsonschema/objectTypes/group.json
deleted file mode 100644
index 8623922..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/group.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/group.json#",
-    "type": "object",
-    "title": "group",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "group"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/image.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/image.json b/streams-schemas/src/main/jsonschema/objectTypes/image.json
deleted file mode 100644
index 7eca770..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/image.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/image.json#",
-    "type": "object",
-    "title": "image",
-    "extends": {
-        "$ref": "../media_link.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "image"
-        },
-        "fullImage": {
-          "type": "string"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/issue.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/issue.json b/streams-schemas/src/main/jsonschema/objectTypes/issue.json
deleted file mode 100644
index 29f2fad..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/issue.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/issue.json#",
-    "type": "object",
-    "title": "issue",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "issue"
-        },
-        "types": {
-          "type": "array",
-          "items": {
-            "type": "string"
-          }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/job.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/job.json b/streams-schemas/src/main/jsonschema/objectTypes/job.json
deleted file mode 100644
index b832f16..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/job.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/job.json#",
-    "type": "object",
-    "title": "job",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "job"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/list.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/list.json b/streams-schemas/src/main/jsonschema/objectTypes/list.json
deleted file mode 100644
index c93a5e8..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/list.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/list.json#",
-    "type": "object",
-    "title": "list",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "list"
-        },
-        "items": {
-            "type": "array",
-            "items": {
-                "type": "object",
-                "properties": {
-                    "$ref": "../object.json"
-                }
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/note.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/note.json b/streams-schemas/src/main/jsonschema/objectTypes/note.json
deleted file mode 100644
index 63445d5..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/note.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/note.json#",
-    "type": "object",
-    "title": "note",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "note"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/offer.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/offer.json b/streams-schemas/src/main/jsonschema/objectTypes/offer.json
deleted file mode 100644
index 6d4b5f2..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/offer.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/offer.json#",
-    "type": "object",
-    "title": "offer",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "offer"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/organization.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/organization.json b/streams-schemas/src/main/jsonschema/objectTypes/organization.json
deleted file mode 100644
index 7ee7513..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/organization.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/organization.json#",
-    "type": "object",
-    "title": "organization",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "organization"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/page.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/page.json b/streams-schemas/src/main/jsonschema/objectTypes/page.json
deleted file mode 100644
index 4f18fcf..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/page.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/page.json#",
-    "type": "object",
-    "title": "page",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "page"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/permission.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/permission.json b/streams-schemas/src/main/jsonschema/objectTypes/permission.json
deleted file mode 100644
index 2a156dc..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/permission.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/permission.json#",
-    "type": "object",
-    "title": "permission",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "permission"
-        },
-        "scope": {
-            "type": "object",
-            "extends": {
-              "$ref": "../object.json"
-            }
-        },
-        "actions": {
-            "type": "array",
-            "items": {
-               "type": "string",
-               "enumeration": [
-                  "create",
-                  "delete",
-                  "modify"
-               ]
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/person.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/person.json b/streams-schemas/src/main/jsonschema/objectTypes/person.json
deleted file mode 100644
index 6855634..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/person.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/person.json#",
-    "type": "object",
-    "title": "person",
-    "description": "vCard Format. Does not match PoCO",
-    "extends": [
-        {
-            "$ref": "../object.json"
-        },
-        {
-            "$ref": "http://www.json-schema.org/card"
-        }
-    ],
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "person"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json b/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json
deleted file mode 100644
index 1ad4b18..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/photo-album.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/photo-album.json#",
-    "type": "object",
-    "title": "article",
-    "extends": {
-        "$ref": "../objectTypes/list.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "photo-album"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/photo.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/photo.json b/streams-schemas/src/main/jsonschema/objectTypes/photo.json
deleted file mode 100644
index ab44aad..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/photo.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/photo.json#",
-    "type": "object",
-    "title": "photo",
-    "extends": {
-        "$ref": "../objectTypes/file.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "photo"
-        },
-        "displayName": {
-            "type": "string",
-            "default": "a photo"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/place.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/place.json b/streams-schemas/src/main/jsonschema/objectTypes/place.json
deleted file mode 100644
index 02d5fe4..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/place.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/place.json#",
-    "type": "object",
-    "title": "place",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "place"
-        },
-        "address": {
-          "type": "object",
-          "extends": {
-            "$ref": "http://www.json-schema.org/address"
-          }
-        },
-        "position": {
-          "type": "object",
-          "properties": {
-            "altitude": {
-              "type": "number"
-            },
-            "latitude": {
-              "type": "number"
-            },
-            "longitude": {
-              "type": "number"
-            }
-          }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/playlist.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/playlist.json b/streams-schemas/src/main/jsonschema/objectTypes/playlist.json
deleted file mode 100644
index d40b109..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/playlist.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/playlist.json#",
-    "type": "object",
-    "title": "playlist",
-    "extends": {
-        "$ref": "../objectTypes/list.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "playlist"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/process.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/process.json b/streams-schemas/src/main/jsonschema/objectTypes/process.json
deleted file mode 100644
index 343ff38..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/process.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/process.json#",
-    "type": "object",
-    "title": "process",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "process"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/product.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/product.json b/streams-schemas/src/main/jsonschema/objectTypes/product.json
deleted file mode 100644
index 7614cb9..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/product.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/product.json#",
-    "type": "object",
-    "title": "product",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "product"
-        },
-        "fullImage": {
-            "type": "object",
-            "extends": {
-              "$ref": "../media_link.json"
-            }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/property.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/property.json b/streams-schemas/src/main/jsonschema/objectTypes/property.json
deleted file mode 100644
index ff2e73b..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/property.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/property.json#",
-    "type": "object",
-    "title": "property",
-    "description": "A property describes name, path and value. Can be used with delete, update or post verbs",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "property"
-        },
-        "displayName": {
-            "type": "string",
-            "description": "The human readable name of the property in the appropriate language",
-            "optional": true
-        },
-        "path": {
-            "type": "string",
-            "description": "dot delimited path to the property in the target. Ex: streetAddress"
-        }
-    },
-    "example": {
-        "actor": {
-            "id": 1212,
-            "displayName": "Peter"
-        },
-        "verb": "update",
-        "time": "2010-08-02T15:29:00Z",
-        "object": {
-            "objectType": "property",
-            "displayName": "street address",
-            "path": "streetAddress",
-            "content": "234 Amazing St"
-        },
-        "target": {
-            "id": 12121,
-            "time": "2010-08-02T15:29:00Z",
-            "displayName": "Peter's House"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/question.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/question.json b/streams-schemas/src/main/jsonschema/objectTypes/question.json
deleted file mode 100644
index 9383caf..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/question.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/question.json#",
-    "type": "object",
-    "title": "question",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "question"
-        },
-        "options": {
-            "type": "array",
-            "items": {
-               "type": "object",
-                "extends": {
-                  "$ref": "../object.json"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/review.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/review.json b/streams-schemas/src/main/jsonschema/objectTypes/review.json
deleted file mode 100644
index 5b5ab58..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/review.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/review.json#",
-    "type": "object",
-    "title": "review",
-    "extends": {
-        "$ref": "../objectTypes/article.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "review"
-        },
-        "rating": {
-           "type": "number"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/role.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/role.json b/streams-schemas/src/main/jsonschema/objectTypes/role.json
deleted file mode 100644
index 0521f93..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/role.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/role.json#",
-    "type": "object",
-    "title": "role",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "role"
-        },
-        "members": {
-            "type": "object",
-            "extends": {
-              "$ref": "../collection.json"
-            }
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/service.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/service.json b/streams-schemas/src/main/jsonschema/objectTypes/service.json
deleted file mode 100644
index ff89fae..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/service.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/service.json#",
-    "type": "object",
-    "title": "service",
-    "extends": {
-        "$ref": "../object.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "service"
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/song.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/song.json b/streams-schemas/src/main/jsonschema/objectTypes/song.json
deleted file mode 100644
index 2b89d4b..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/song.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/song.json#",
-    "type": "object",
-    "title": "song",
-    "extends": {
-        "$ref": "../objectTypes/audio.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "song"
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/jsonschema/objectTypes/status.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/jsonschema/objectTypes/status.json b/streams-schemas/src/main/jsonschema/objectTypes/status.json
deleted file mode 100644
index ac7a844..0000000
--- a/streams-schemas/src/main/jsonschema/objectTypes/status.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-03/schema",
-    "$license": [
-        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
-        "http://www.apache.org/licenses/LICENSE-2.0"
-    ],
-    "id": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/objectTypes/status.json#",
-    "type": "object",
-    "title": "status",
-    "extends": {
-        "$ref": "../objectTypes/note.json"
-    },
-    "properties": {
-        "objectType": {
-            "type": "string",
-            "default": "song"
-        }
-    }
-}
\ No newline at end of file



[32/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
refactoring, testing, documentation, CLI modes

break up streams-schemas into streams-util and streams-schema-activitystreams
add index.md to each plugin
specify basepath of jsonschema project-wide
harmonize plugin behavior, code style, docs
ensure all tests pass
add CLI modes


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/6187265f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/6187265f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/6187265f

Branch: refs/feature/STREAMS-389,398
Commit: 6187265fc0395a8051483ba3b905d976299217a3
Parents: 57f17d7
Author: Steve Blackmon @steveblackmon <sb...@apache.org>
Authored: Wed Jun 1 12:32:14 2016 -0500
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Wed Jun 1 12:32:32 2016 -0500

----------------------------------------------------------------------
 streams-components/streams-converters/pom.xml   |   2 +-
 streams-components/streams-http/pom.xml         |   2 +-
 .../streams-persist-kinesis/pom.xml             |   2 +-
 .../streams-persist-s3/pom.xml                  |   6 +-
 .../spring/streams-cassandra-context.xml        |  25 --
 .../streams-persist-elasticsearch/pom.xml       |   6 +-
 .../streams-persist-filebuffer/pom.xml          |   2 +-
 streams-contrib/streams-persist-graph/pom.xml   |   2 +-
 streams-contrib/streams-persist-hbase/pom.xml   |   2 +-
 streams-contrib/streams-persist-hdfs/pom.xml    |   2 +-
 streams-contrib/streams-persist-kafka/pom.xml   |   2 +-
 streams-contrib/streams-persist-mongo/pom.xml   |   2 +-
 .../streams-processor-lucene/pom.xml            |   2 +-
 .../streams-processor-peoplepattern/pom.xml     |   2 +-
 streams-contrib/streams-processor-tika/pom.xml  |   2 +-
 streams-contrib/streams-processor-urls/pom.xml  |   2 +-
 .../streams-provider-datasift/pom.xml           |   2 +-
 .../streams-provider-facebook/pom.xml           |  10 +-
 .../gnip-edc-instagram/pom.xml                  |   2 +-
 .../gnip-powertrack/pom.xml                     |   2 +-
 .../google-gmail/pom.xml                        |   2 +-
 .../google-gplus/pom.xml                        |   2 +-
 .../streams-provider-instagram/pom.xml          |   4 +-
 .../streams-provider-moreover/pom.xml           |   4 +-
 streams-contrib/streams-provider-rss/pom.xml    |   2 +-
 .../streams-provider-sysomos/pom.xml            |   4 +-
 .../streams-provider-twitter/pom.xml            |   2 +-
 .../streams-provider-youtube/pom.xml            |   2 +-
 streams-monitoring/pom.xml                      |   2 +-
 .../streams-plugin-cassandra/pom.xml            |  13 +-
 .../StreamsCassandraGenerationConfig.java       |   2 +-
 .../StreamsCassandraResourceGenerator.java      |  42 +--
 .../StreamsCassandraResourceGeneratorMojo.java  |  37 +-
 .../src/site/markdown/index.md                  |  22 +-
 ...treamsCassandraResourceGeneratorCLITest.java |  10 +-
 ...reamsCassandraResourceGeneratorMojoTest.java |   9 +-
 .../StreamsCassandraResourceGeneratorTest.java  |  58 +--
 .../resources/streams-plugin-cassandra/pom.xml  |  21 +-
 .../streams-plugin-elasticsearch/pom.xml        |  13 +-
 .../StreamsElasticsearchGenerationConfig.java   |   2 +-
 .../StreamsElasticsearchResourceGenerator.java  |  75 ++--
 ...reamsElasticsearchResourceGeneratorMojo.java |  29 +-
 .../src/site/markdown/index.md                  |  24 +-
 ...msElasticsearchResourceGeneratorCLITest.java |  39 ++
 ...reamsElasticsearchResourceGeneratorTest.java |  59 +--
 .../streams-plugin-elasticsearch/pom.xml        |  23 +-
 streams-plugins/streams-plugin-hbase/pom.xml    |  13 +-
 .../hbase/StreamsHbaseGenerationConfig.java     |   2 +-
 .../hbase/StreamsHbaseResourceGenerator.java    |  41 +-
 .../StreamsHbaseResourceGeneratorMojo.java      |  28 +-
 .../src/site/markdown/index.md                  |  26 +-
 .../StreamsHbaseResourceGeneratorCLITest.java   |   2 +-
 .../StreamsHbaseResourceGeneratorMojoTest.java  |   2 +-
 .../test/StreamsHbaseResourceGeneratorTest.java |  31 +-
 .../test/resources/streams-plugin-hbase/pom.xml |  23 +-
 streams-plugins/streams-plugin-hive/pom.xml     |  13 +-
 .../hive/StreamsHiveGenerationConfig.java       |   3 +-
 .../hive/StreamsHiveResourceGenerator.java      |  35 +-
 .../hive/StreamsHiveResourceGeneratorMojo.java  |  38 +-
 .../src/site/markdown/index.md                  |  28 +-
 .../StreamsHiveResourceGeneratorCLITest.java    |   2 +-
 .../StreamsHiveResourceGeneratorMojoTest.java   |   2 +-
 .../test/StreamsHiveResourceGeneratorTest.java  |  32 +-
 .../test/resources/streams-plugin-hive/pom.xml  |  23 +-
 streams-plugins/streams-plugin-pig/pom.xml      |  13 +-
 .../plugins/pig/StreamsPigGenerationConfig.java |   3 +-
 .../pig/StreamsPigResourceGenerator.java        |  46 +--
 .../pig/StreamsPigResourceGeneratorMojo.java    |  38 +-
 .../src/site/markdown/index.md                  |  24 +-
 .../StreamsPigResourceGeneratorCLITest.java     |   4 +-
 .../StreamsPigResourceGeneratorMojoTest.java    |   4 +-
 .../test/StreamsPigResourceGeneratorTest.java   |  32 +-
 .../test/resources/streams-plugin-pig/pom.xml   |  23 +-
 streams-plugins/streams-plugin-pojo/pom.xml     |  13 +-
 .../plugins/StreamsPojoSourceGenerator.java     |  15 +-
 .../plugins/StreamsPojoSourceGeneratorMojo.java | 154 +-------
 .../src/site/markdown/index.md                  |  24 +-
 .../test/StreamsPojoSourceGeneratorCLITest.java |   2 +-
 .../StreamsPojoSourceGeneratorMojoTest.java     |   2 +-
 .../test/StreamsPojoSourceGeneratorTest.java    |  51 +--
 .../test/resources/streams-plugin-pojo/pom.xml  |  30 +-
 streams-plugins/streams-plugin-scala/pom.xml    |  12 +
 .../streams/plugins/StreamsPojoScala.java       | 371 -------------------
 .../streams/plugins/StreamsPojoScalaMojo.java   |  71 ----
 .../plugins/StreamsScalaSourceGenerator.java    | 351 ++++++++++++++++++
 .../StreamsScalaSourceGeneratorMojo.java        |  59 +++
 .../src/site/markdown/index.md                  |  36 ++
 .../plugins/test/StreamsPojoScalaTest.java      |  55 ---
 .../test/StreamsScalaSourceGeneratorTest.java   |  55 +++
 .../streams-runtime-dropwizard/pom.xml          |   2 +-
 streams-runtimes/streams-runtime-local/pom.xml  |   2 +-
 streams-schemas/pom.xml                         |  77 +---
 .../org/apache/streams/schema/FieldType.java    |  13 -
 .../org/apache/streams/schema/FieldUtil.java    |  59 ---
 .../org/apache/streams/schema/FileUtil.java     |  76 ----
 .../apache/streams/schema/GenerationConfig.java | 115 ------
 .../java/org/apache/streams/schema/Schema.java  |  57 ---
 .../org/apache/streams/schema/SchemaStore.java  | 283 --------------
 .../org/apache/streams/schema/SchemaUtil.java   |  50 ---
 .../java/org/apache/streams/schema/URIUtil.java |  31 --
 .../src/main/jsonschema/activity.json           | 108 ------
 .../src/main/jsonschema/collection.json         |  47 ---
 .../src/main/jsonschema/media_link.json         |  34 --
 streams-schemas/src/main/jsonschema/object.json |  98 -----
 .../src/main/jsonschema/objectTypes/alert.json  |  19 -
 .../jsonschema/objectTypes/application.json     |  19 -
 .../main/jsonschema/objectTypes/article.json    |  19 -
 .../src/main/jsonschema/objectTypes/audio.json  |  19 -
 .../src/main/jsonschema/objectTypes/badge.json  |  19 -
 .../src/main/jsonschema/objectTypes/binary.json |  19 -
 .../main/jsonschema/objectTypes/bookmark.json   |  19 -
 .../main/jsonschema/objectTypes/comment.json    |  19 -
 .../src/main/jsonschema/objectTypes/device.json |  19 -
 .../src/main/jsonschema/objectTypes/event.json  |  51 ---
 .../src/main/jsonschema/objectTypes/file.json   |  25 --
 .../src/main/jsonschema/objectTypes/folder.json |  19 -
 .../src/main/jsonschema/objectTypes/game.json   |  19 -
 .../src/main/jsonschema/objectTypes/group.json  |  19 -
 .../src/main/jsonschema/objectTypes/image.json  |  22 --
 .../src/main/jsonschema/objectTypes/issue.json  |  25 --
 .../src/main/jsonschema/objectTypes/job.json    |  19 -
 .../src/main/jsonschema/objectTypes/list.json   |  28 --
 .../src/main/jsonschema/objectTypes/note.json   |  19 -
 .../src/main/jsonschema/objectTypes/offer.json  |  19 -
 .../jsonschema/objectTypes/organization.json    |  19 -
 .../src/main/jsonschema/objectTypes/page.json   |  19 -
 .../main/jsonschema/objectTypes/permission.json |  36 --
 .../src/main/jsonschema/objectTypes/person.json |  25 --
 .../jsonschema/objectTypes/photo-album.json     |  19 -
 .../src/main/jsonschema/objectTypes/photo.json  |  23 --
 .../src/main/jsonschema/objectTypes/place.json  |  39 --
 .../main/jsonschema/objectTypes/playlist.json   |  19 -
 .../main/jsonschema/objectTypes/process.json    |  19 -
 .../main/jsonschema/objectTypes/product.json    |  25 --
 .../main/jsonschema/objectTypes/property.json   |  48 ---
 .../main/jsonschema/objectTypes/question.json   |  28 --
 .../src/main/jsonschema/objectTypes/review.json |  22 --
 .../src/main/jsonschema/objectTypes/role.json   |  25 --
 .../main/jsonschema/objectTypes/service.json    |  19 -
 .../src/main/jsonschema/objectTypes/song.json   |  19 -
 .../src/main/jsonschema/objectTypes/status.json |  19 -
 .../src/main/jsonschema/objectTypes/task.json   |  40 --
 .../src/main/jsonschema/objectTypes/team.json   |  19 -
 .../src/main/jsonschema/objectTypes/video.json  |  19 -
 .../src/main/jsonschema/verbs/accept.json       |  24 --
 .../src/main/jsonschema/verbs/access.json       |  24 --
 .../src/main/jsonschema/verbs/acknowledge.json  |  24 --
 .../src/main/jsonschema/verbs/add.json          |  24 --
 .../src/main/jsonschema/verbs/agree.json        |  24 --
 .../src/main/jsonschema/verbs/append.json       |  24 --
 .../src/main/jsonschema/verbs/approve.json      |  24 --
 .../src/main/jsonschema/verbs/archive.json      |  24 --
 .../src/main/jsonschema/verbs/assign.json       |  24 --
 .../src/main/jsonschema/verbs/at.json           |  24 --
 .../src/main/jsonschema/verbs/attach.json       |  24 --
 .../src/main/jsonschema/verbs/attend.json       |  24 --
 .../src/main/jsonschema/verbs/author.json       |  24 --
 .../src/main/jsonschema/verbs/authorize.json    |  24 --
 .../src/main/jsonschema/verbs/borrow.json       |  24 --
 .../src/main/jsonschema/verbs/build.json        |  24 --
 .../src/main/jsonschema/verbs/cancel.json       |  24 --
 .../src/main/jsonschema/verbs/checkin.json      |  24 --
 .../src/main/jsonschema/verbs/close.json        |  24 --
 .../src/main/jsonschema/verbs/complete.json     |  24 --
 .../src/main/jsonschema/verbs/confirm.json      |  24 --
 .../src/main/jsonschema/verbs/consume.json      |  24 --
 .../src/main/jsonschema/verbs/create.json       |  24 --
 .../src/main/jsonschema/verbs/delete.json       |  24 --
 .../src/main/jsonschema/verbs/deliver.json      |  24 --
 .../src/main/jsonschema/verbs/deny.json         |  24 --
 .../src/main/jsonschema/verbs/disagree.json     |  24 --
 .../src/main/jsonschema/verbs/dislike.json      |  24 --
 .../src/main/jsonschema/verbs/experience.json   |  24 --
 .../src/main/jsonschema/verbs/favorite.json     |  24 --
 .../src/main/jsonschema/verbs/find.json         |  24 --
 .../jsonschema/verbs/flag-as-inappropriate.json |  24 --
 .../src/main/jsonschema/verbs/follow.json       |  24 --
 .../src/main/jsonschema/verbs/give.json         |  24 --
 .../src/main/jsonschema/verbs/host.json         |  24 --
 .../src/main/jsonschema/verbs/ignore.json       |  24 --
 .../src/main/jsonschema/verbs/insert.json       |  24 --
 .../src/main/jsonschema/verbs/install.json      |  24 --
 .../src/main/jsonschema/verbs/interact.json     |  24 --
 .../src/main/jsonschema/verbs/invite.json       |  24 --
 .../src/main/jsonschema/verbs/join.json         |  24 --
 .../src/main/jsonschema/verbs/leave.json        |  24 --
 .../src/main/jsonschema/verbs/like.json         |  24 --
 .../src/main/jsonschema/verbs/listen.json       |  24 --
 .../src/main/jsonschema/verbs/lose.json         |  24 --
 .../src/main/jsonschema/verbs/make-friend.json  |  24 --
 .../src/main/jsonschema/verbs/open.json         |  24 --
 .../src/main/jsonschema/verbs/play.json         |  24 --
 .../src/main/jsonschema/verbs/post.json         |  24 --
 .../src/main/jsonschema/verbs/present.json      |  24 --
 .../src/main/jsonschema/verbs/purchase.json     |  24 --
 .../src/main/jsonschema/verbs/qualify.json      |  24 --
 .../src/main/jsonschema/verbs/read.json         |  24 --
 .../src/main/jsonschema/verbs/receive.json      |  24 --
 .../src/main/jsonschema/verbs/reject.json       |  24 --
 .../main/jsonschema/verbs/remove-friend.json    |  24 --
 .../src/main/jsonschema/verbs/remove.json       |  24 --
 .../src/main/jsonschema/verbs/replace.json      |  24 --
 .../main/jsonschema/verbs/request-friend.json   |  24 --
 .../src/main/jsonschema/verbs/request.json      |  24 --
 .../src/main/jsonschema/verbs/resolve.json      |  24 --
 .../src/main/jsonschema/verbs/retract.json      |  24 --
 .../src/main/jsonschema/verbs/return.json       |  24 --
 .../src/main/jsonschema/verbs/rsvp-maybe.json   |  24 --
 .../src/main/jsonschema/verbs/rsvp-no.json      |  24 --
 .../src/main/jsonschema/verbs/rsvp-yes.json     |  24 --
 .../src/main/jsonschema/verbs/satisfy.json      |  24 --
 .../src/main/jsonschema/verbs/save.json         |  24 --
 .../src/main/jsonschema/verbs/schedule.json     |  24 --
 .../src/main/jsonschema/verbs/search.json       |  24 --
 .../src/main/jsonschema/verbs/sell.json         |  24 --
 .../src/main/jsonschema/verbs/send.json         |  24 --
 .../src/main/jsonschema/verbs/share.json        |  24 --
 .../src/main/jsonschema/verbs/sponsor.json      |  24 --
 .../src/main/jsonschema/verbs/start.json        |  24 --
 .../main/jsonschema/verbs/stop-following.json   |  24 --
 .../src/main/jsonschema/verbs/submit.json       |  24 --
 .../src/main/jsonschema/verbs/tag.json          |  24 --
 .../src/main/jsonschema/verbs/terminate.json    |  24 --
 .../src/main/jsonschema/verbs/tie.json          |  24 --
 .../src/main/jsonschema/verbs/unfavorite.json   |  24 --
 .../src/main/jsonschema/verbs/unlike.json       |  24 --
 .../src/main/jsonschema/verbs/unsatisfy.json    |  24 --
 .../src/main/jsonschema/verbs/unsave.json       |  24 --
 .../src/main/jsonschema/verbs/unshare.json      |  24 --
 .../src/main/jsonschema/verbs/update.json       |  34 --
 .../src/main/jsonschema/verbs/use.json          |  24 --
 .../src/main/jsonschema/verbs/watch.json        |  24 --
 .../src/main/jsonschema/verbs/win.json          |  24 --
 streams-schemas/src/main/xmlschema/activity.xsd |  94 -----
 .../schema/test/SchemaOrderingTests.java        | 146 --------
 .../streams/schema/test/SchemaStoreTests.java   |  76 ----
 .../src/test/resources/activities/accept.json   |  16 -
 .../src/test/resources/activities/access.json   |  17 -
 .../test/resources/activities/acknowledge.json  |  16 -
 .../src/test/resources/activities/add.json      |  21 --
 .../src/test/resources/activities/agree.json    |  15 -
 .../src/test/resources/activities/append.json   |  16 -
 .../src/test/resources/activities/approve.json  |  20 -
 .../src/test/resources/activities/archive.json  |  15 -
 .../src/test/resources/activities/assign.json   |  20 -
 .../src/test/resources/activities/at.json       |  15 -
 .../src/test/resources/activities/attach.json   |  20 -
 .../src/test/resources/activities/attend.json   |  15 -
 .../src/test/resources/activities/author.json   |  15 -
 .../test/resources/activities/authorize.json    |  23 --
 .../src/test/resources/activities/borrow.json   |  21 --
 .../src/test/resources/activities/build.json    |  16 -
 .../src/test/resources/activities/cancel.json   |  16 -
 .../src/test/resources/activities/checkin.json  |  16 -
 .../src/test/resources/activities/close.json    |  16 -
 .../src/test/resources/activities/complete.json |  16 -
 .../src/test/resources/activities/confirm.json  |  17 -
 .../src/test/resources/activities/consume.json  |  16 -
 .../src/test/resources/activities/create.json   |  15 -
 .../src/test/resources/activities/delete.json   |  16 -
 .../src/test/resources/activities/deliver.json  |  20 -
 .../src/test/resources/activities/deny.json     |  23 --
 .../src/test/resources/activities/disagree.json |  30 --
 .../src/test/resources/activities/dislike.json  |  15 -
 .../test/resources/activities/experience.json   |  16 -
 .../src/test/resources/activities/favorite.json |  15 -
 .../src/test/resources/activities/find.json     |  19 -
 .../activities/flag-as-inappropriate.json       |  24 --
 .../src/test/resources/activities/follow.json   |  15 -
 .../src/test/resources/activities/give.json     |  28 --
 .../src/test/resources/activities/host.json     |  15 -
 .../src/test/resources/activities/ignore.json   |  15 -
 .../src/test/resources/activities/insert.json   |  19 -
 .../src/test/resources/activities/install.json  |  18 -
 .../src/test/resources/activities/interact.json |  16 -
 .../src/test/resources/activities/invite.json   |  19 -
 .../src/test/resources/activities/join.json     |  15 -
 .../src/test/resources/activities/leave.json    |  15 -
 .../src/test/resources/activities/like.json     |  22 --
 .../src/test/resources/activities/listen.json   |  15 -
 .../src/test/resources/activities/lose.json     |  15 -
 .../test/resources/activities/make-friend.json  |  15 -
 .../src/test/resources/activities/open.json     |  15 -
 .../src/test/resources/activities/play.json     |  15 -
 .../src/test/resources/activities/post.json     |  25 --
 .../src/test/resources/activities/present.json  |  15 -
 .../src/test/resources/activities/purchase.json |  16 -
 .../src/test/resources/activities/qualify.json  |  15 -
 .../src/test/resources/activities/read.json     |  16 -
 .../src/test/resources/activities/receive.json  |  16 -
 .../src/test/resources/activities/reject.json   |  15 -
 .../resources/activities/remove-friend.json     |  15 -
 .../src/test/resources/activities/remove.json   |  23 --
 .../src/test/resources/activities/replace.json  |  19 -
 .../resources/activities/request-friend.json    |  16 -
 .../src/test/resources/activities/request.json  |  23 --
 .../src/test/resources/activities/resolve.json  |  15 -
 .../src/test/resources/activities/retract.json  |  26 --
 .../src/test/resources/activities/return.json   |  19 -
 .../test/resources/activities/rsvp-maybe.json   |  16 -
 .../src/test/resources/activities/rsvp-no.json  |  16 -
 .../src/test/resources/activities/rsvp-yes.json |  16 -
 .../src/test/resources/activities/satisfy.json  |  21 --
 .../src/test/resources/activities/save.json     |  20 -
 .../src/test/resources/activities/schedule.json |  15 -
 .../src/test/resources/activities/search.json   |  21 --
 .../src/test/resources/activities/sell.json     |  19 -
 .../src/test/resources/activities/send.json     |  19 -
 .../src/test/resources/activities/share.json    |  16 -
 .../src/test/resources/activities/sponsor.json  |  17 -
 .../src/test/resources/activities/start.json    |  15 -
 .../resources/activities/stop-following.json    |  15 -
 .../src/test/resources/activities/submit.json   |  15 -
 .../src/test/resources/activities/tag.json      |  19 -
 .../test/resources/activities/terminate.json    |  15 -
 .../src/test/resources/activities/tie.json      |  24 --
 .../test/resources/activities/unfavorite.json   |  15 -
 .../src/test/resources/activities/unlike.json   |  15 -
 .../test/resources/activities/unsatisfy.json    |  20 -
 .../src/test/resources/activities/unsave.json   |  15 -
 .../src/test/resources/activities/unshare.json  |  15 -
 .../src/test/resources/activities/update.json   |  15 -
 .../src/test/resources/activities/use.json      |  15 -
 .../src/test/resources/activities/watch.json    |  16 -
 .../src/test/resources/activities/win.json      |  15 -
 .../src/test/resources/media_link.json          |   7 -
 .../src/test/resources/objects/event.json       |  18 -
 .../src/test/resources/objects/group.json       |  16 -
 .../src/test/resources/objects/issue.json       |   9 -
 .../src/test/resources/objects/note.json        |  12 -
 .../src/test/resources/objects/permission.json  |   9 -
 .../src/test/resources/objects/place.json       |   9 -
 .../src/test/resources/objects/task.json        |  16 -
 .../src/test/resources/objects/video.json       |   8 -
 .../streams-schema-activitystreams/pom.xml      |  82 ++++
 .../src/main/jsonschema/activity.json           | 108 ++++++
 .../src/main/jsonschema/collection.json         |  47 +++
 .../src/main/jsonschema/media_link.json         |  34 ++
 .../src/main/jsonschema/object.json             |  98 +++++
 .../src/main/jsonschema/objectTypes/alert.json  |  19 +
 .../jsonschema/objectTypes/application.json     |  19 +
 .../main/jsonschema/objectTypes/article.json    |  19 +
 .../src/main/jsonschema/objectTypes/audio.json  |  19 +
 .../src/main/jsonschema/objectTypes/badge.json  |  19 +
 .../src/main/jsonschema/objectTypes/binary.json |  19 +
 .../main/jsonschema/objectTypes/bookmark.json   |  19 +
 .../main/jsonschema/objectTypes/comment.json    |  19 +
 .../src/main/jsonschema/objectTypes/device.json |  19 +
 .../src/main/jsonschema/objectTypes/event.json  |  51 +++
 .../src/main/jsonschema/objectTypes/file.json   |  25 ++
 .../src/main/jsonschema/objectTypes/folder.json |  19 +
 .../src/main/jsonschema/objectTypes/game.json   |  19 +
 .../src/main/jsonschema/objectTypes/group.json  |  19 +
 .../src/main/jsonschema/objectTypes/image.json  |  22 ++
 .../src/main/jsonschema/objectTypes/issue.json  |  25 ++
 .../src/main/jsonschema/objectTypes/job.json    |  19 +
 .../src/main/jsonschema/objectTypes/list.json   |  28 ++
 .../src/main/jsonschema/objectTypes/note.json   |  19 +
 .../src/main/jsonschema/objectTypes/offer.json  |  19 +
 .../jsonschema/objectTypes/organization.json    |  19 +
 .../src/main/jsonschema/objectTypes/page.json   |  19 +
 .../main/jsonschema/objectTypes/permission.json |  36 ++
 .../src/main/jsonschema/objectTypes/person.json |  25 ++
 .../jsonschema/objectTypes/photo-album.json     |  19 +
 .../src/main/jsonschema/objectTypes/photo.json  |  23 ++
 .../src/main/jsonschema/objectTypes/place.json  |  39 ++
 .../main/jsonschema/objectTypes/playlist.json   |  19 +
 .../main/jsonschema/objectTypes/process.json    |  19 +
 .../main/jsonschema/objectTypes/product.json    |  25 ++
 .../main/jsonschema/objectTypes/property.json   |  48 +++
 .../main/jsonschema/objectTypes/question.json   |  28 ++
 .../src/main/jsonschema/objectTypes/review.json |  22 ++
 .../src/main/jsonschema/objectTypes/role.json   |  25 ++
 .../main/jsonschema/objectTypes/service.json    |  19 +
 .../src/main/jsonschema/objectTypes/song.json   |  19 +
 .../src/main/jsonschema/objectTypes/status.json |  19 +
 .../src/main/jsonschema/objectTypes/task.json   |  40 ++
 .../src/main/jsonschema/objectTypes/team.json   |  19 +
 .../src/main/jsonschema/objectTypes/video.json  |  19 +
 .../src/main/jsonschema/verbs/accept.json       |  24 ++
 .../src/main/jsonschema/verbs/access.json       |  24 ++
 .../src/main/jsonschema/verbs/acknowledge.json  |  24 ++
 .../src/main/jsonschema/verbs/add.json          |  24 ++
 .../src/main/jsonschema/verbs/agree.json        |  24 ++
 .../src/main/jsonschema/verbs/append.json       |  24 ++
 .../src/main/jsonschema/verbs/approve.json      |  24 ++
 .../src/main/jsonschema/verbs/archive.json      |  24 ++
 .../src/main/jsonschema/verbs/assign.json       |  24 ++
 .../src/main/jsonschema/verbs/at.json           |  24 ++
 .../src/main/jsonschema/verbs/attach.json       |  24 ++
 .../src/main/jsonschema/verbs/attend.json       |  24 ++
 .../src/main/jsonschema/verbs/author.json       |  24 ++
 .../src/main/jsonschema/verbs/authorize.json    |  24 ++
 .../src/main/jsonschema/verbs/borrow.json       |  24 ++
 .../src/main/jsonschema/verbs/build.json        |  24 ++
 .../src/main/jsonschema/verbs/cancel.json       |  24 ++
 .../src/main/jsonschema/verbs/checkin.json      |  24 ++
 .../src/main/jsonschema/verbs/close.json        |  24 ++
 .../src/main/jsonschema/verbs/complete.json     |  24 ++
 .../src/main/jsonschema/verbs/confirm.json      |  24 ++
 .../src/main/jsonschema/verbs/consume.json      |  24 ++
 .../src/main/jsonschema/verbs/create.json       |  24 ++
 .../src/main/jsonschema/verbs/delete.json       |  24 ++
 .../src/main/jsonschema/verbs/deliver.json      |  24 ++
 .../src/main/jsonschema/verbs/deny.json         |  24 ++
 .../src/main/jsonschema/verbs/disagree.json     |  24 ++
 .../src/main/jsonschema/verbs/dislike.json      |  24 ++
 .../src/main/jsonschema/verbs/experience.json   |  24 ++
 .../src/main/jsonschema/verbs/favorite.json     |  24 ++
 .../src/main/jsonschema/verbs/find.json         |  24 ++
 .../jsonschema/verbs/flag-as-inappropriate.json |  24 ++
 .../src/main/jsonschema/verbs/follow.json       |  24 ++
 .../src/main/jsonschema/verbs/give.json         |  24 ++
 .../src/main/jsonschema/verbs/host.json         |  24 ++
 .../src/main/jsonschema/verbs/ignore.json       |  24 ++
 .../src/main/jsonschema/verbs/insert.json       |  24 ++
 .../src/main/jsonschema/verbs/install.json      |  24 ++
 .../src/main/jsonschema/verbs/interact.json     |  24 ++
 .../src/main/jsonschema/verbs/invite.json       |  24 ++
 .../src/main/jsonschema/verbs/join.json         |  24 ++
 .../src/main/jsonschema/verbs/leave.json        |  24 ++
 .../src/main/jsonschema/verbs/like.json         |  24 ++
 .../src/main/jsonschema/verbs/listen.json       |  24 ++
 .../src/main/jsonschema/verbs/lose.json         |  24 ++
 .../src/main/jsonschema/verbs/make-friend.json  |  24 ++
 .../src/main/jsonschema/verbs/open.json         |  24 ++
 .../src/main/jsonschema/verbs/play.json         |  24 ++
 .../src/main/jsonschema/verbs/post.json         |  24 ++
 .../src/main/jsonschema/verbs/present.json      |  24 ++
 .../src/main/jsonschema/verbs/purchase.json     |  24 ++
 .../src/main/jsonschema/verbs/qualify.json      |  24 ++
 .../src/main/jsonschema/verbs/read.json         |  24 ++
 .../src/main/jsonschema/verbs/receive.json      |  24 ++
 .../src/main/jsonschema/verbs/reject.json       |  24 ++
 .../main/jsonschema/verbs/remove-friend.json    |  24 ++
 .../src/main/jsonschema/verbs/remove.json       |  24 ++
 .../src/main/jsonschema/verbs/replace.json      |  24 ++
 .../main/jsonschema/verbs/request-friend.json   |  24 ++
 .../src/main/jsonschema/verbs/request.json      |  24 ++
 .../src/main/jsonschema/verbs/resolve.json      |  24 ++
 .../src/main/jsonschema/verbs/retract.json      |  24 ++
 .../src/main/jsonschema/verbs/return.json       |  24 ++
 .../src/main/jsonschema/verbs/rsvp-maybe.json   |  24 ++
 .../src/main/jsonschema/verbs/rsvp-no.json      |  24 ++
 .../src/main/jsonschema/verbs/rsvp-yes.json     |  24 ++
 .../src/main/jsonschema/verbs/satisfy.json      |  24 ++
 .../src/main/jsonschema/verbs/save.json         |  24 ++
 .../src/main/jsonschema/verbs/schedule.json     |  24 ++
 .../src/main/jsonschema/verbs/search.json       |  24 ++
 .../src/main/jsonschema/verbs/sell.json         |  24 ++
 .../src/main/jsonschema/verbs/send.json         |  24 ++
 .../src/main/jsonschema/verbs/share.json        |  24 ++
 .../src/main/jsonschema/verbs/sponsor.json      |  24 ++
 .../src/main/jsonschema/verbs/start.json        |  24 ++
 .../main/jsonschema/verbs/stop-following.json   |  24 ++
 .../src/main/jsonschema/verbs/submit.json       |  24 ++
 .../src/main/jsonschema/verbs/tag.json          |  24 ++
 .../src/main/jsonschema/verbs/terminate.json    |  24 ++
 .../src/main/jsonschema/verbs/tie.json          |  24 ++
 .../src/main/jsonschema/verbs/unfavorite.json   |  24 ++
 .../src/main/jsonschema/verbs/unlike.json       |  24 ++
 .../src/main/jsonschema/verbs/unsatisfy.json    |  24 ++
 .../src/main/jsonschema/verbs/unsave.json       |  24 ++
 .../src/main/jsonschema/verbs/unshare.json      |  24 ++
 .../src/main/jsonschema/verbs/update.json       |  34 ++
 .../src/main/jsonschema/verbs/use.json          |  24 ++
 .../src/main/jsonschema/verbs/watch.json        |  24 ++
 .../src/main/jsonschema/verbs/win.json          |  24 ++
 .../src/main/xmlschema/activity.xsd             |  94 +++++
 streams-util/pom.xml                            |  89 ++++-
 .../java/org/apache/streams/util/GuidUtils.java |   2 +-
 .../org/apache/streams/util/RegexUtils.java     |   3 +
 .../apache/streams/util/SerializationUtil.java  |   3 +-
 .../apache/streams/util/schema/FieldType.java   |  14 +
 .../apache/streams/util/schema/FieldUtil.java   |  34 ++
 .../apache/streams/util/schema/FileUtil.java    |  77 ++++
 .../streams/util/schema/GenerationConfig.java   | 116 ++++++
 .../org/apache/streams/util/schema/Schema.java  |  57 +++
 .../apache/streams/util/schema/SchemaStore.java |  42 +++
 .../streams/util/schema/SchemaStoreImpl.java    | 347 +++++++++++++++++
 .../apache/streams/util/schema/SchemaUtil.java  |  49 +++
 .../org/apache/streams/util/schema/URIUtil.java |  30 ++
 .../util/schema/test/SchemaOrderingTest.java    | 150 ++++++++
 .../util/schema/test/SchemaStoreTest.java       |  71 ++++
 .../src/test/resources/activities/accept.json   |  16 +
 .../src/test/resources/activities/access.json   |  17 +
 .../test/resources/activities/acknowledge.json  |  16 +
 .../src/test/resources/activities/add.json      |  21 ++
 .../src/test/resources/activities/agree.json    |  15 +
 .../src/test/resources/activities/append.json   |  16 +
 .../src/test/resources/activities/approve.json  |  20 +
 .../src/test/resources/activities/archive.json  |  15 +
 .../src/test/resources/activities/assign.json   |  20 +
 .../src/test/resources/activities/at.json       |  15 +
 .../src/test/resources/activities/attach.json   |  20 +
 .../src/test/resources/activities/attend.json   |  15 +
 .../src/test/resources/activities/author.json   |  15 +
 .../test/resources/activities/authorize.json    |  23 ++
 .../src/test/resources/activities/borrow.json   |  21 ++
 .../src/test/resources/activities/build.json    |  16 +
 .../src/test/resources/activities/cancel.json   |  16 +
 .../src/test/resources/activities/checkin.json  |  16 +
 .../src/test/resources/activities/close.json    |  16 +
 .../src/test/resources/activities/complete.json |  16 +
 .../src/test/resources/activities/confirm.json  |  17 +
 .../src/test/resources/activities/consume.json  |  16 +
 .../src/test/resources/activities/create.json   |  15 +
 .../src/test/resources/activities/delete.json   |  16 +
 .../src/test/resources/activities/deliver.json  |  20 +
 .../src/test/resources/activities/deny.json     |  23 ++
 .../src/test/resources/activities/disagree.json |  30 ++
 .../src/test/resources/activities/dislike.json  |  15 +
 .../test/resources/activities/experience.json   |  16 +
 .../src/test/resources/activities/favorite.json |  15 +
 .../src/test/resources/activities/find.json     |  19 +
 .../activities/flag-as-inappropriate.json       |  24 ++
 .../src/test/resources/activities/follow.json   |  15 +
 .../src/test/resources/activities/give.json     |  28 ++
 .../src/test/resources/activities/host.json     |  15 +
 .../src/test/resources/activities/ignore.json   |  15 +
 .../src/test/resources/activities/insert.json   |  19 +
 .../src/test/resources/activities/install.json  |  18 +
 .../src/test/resources/activities/interact.json |  16 +
 .../src/test/resources/activities/invite.json   |  19 +
 .../src/test/resources/activities/join.json     |  15 +
 .../src/test/resources/activities/leave.json    |  15 +
 .../src/test/resources/activities/like.json     |  22 ++
 .../src/test/resources/activities/listen.json   |  15 +
 .../src/test/resources/activities/lose.json     |  15 +
 .../test/resources/activities/make-friend.json  |  15 +
 .../src/test/resources/activities/open.json     |  15 +
 .../src/test/resources/activities/play.json     |  15 +
 .../src/test/resources/activities/post.json     |  25 ++
 .../src/test/resources/activities/present.json  |  15 +
 .../src/test/resources/activities/purchase.json |  16 +
 .../src/test/resources/activities/qualify.json  |  15 +
 .../src/test/resources/activities/read.json     |  16 +
 .../src/test/resources/activities/receive.json  |  16 +
 .../src/test/resources/activities/reject.json   |  15 +
 .../resources/activities/remove-friend.json     |  15 +
 .../src/test/resources/activities/remove.json   |  23 ++
 .../src/test/resources/activities/replace.json  |  19 +
 .../resources/activities/request-friend.json    |  16 +
 .../src/test/resources/activities/request.json  |  23 ++
 .../src/test/resources/activities/resolve.json  |  15 +
 .../src/test/resources/activities/retract.json  |  26 ++
 .../src/test/resources/activities/return.json   |  19 +
 .../test/resources/activities/rsvp-maybe.json   |  16 +
 .../src/test/resources/activities/rsvp-no.json  |  16 +
 .../src/test/resources/activities/rsvp-yes.json |  16 +
 .../src/test/resources/activities/satisfy.json  |  21 ++
 .../src/test/resources/activities/save.json     |  20 +
 .../src/test/resources/activities/schedule.json |  15 +
 .../src/test/resources/activities/search.json   |  21 ++
 .../src/test/resources/activities/sell.json     |  19 +
 .../src/test/resources/activities/send.json     |  19 +
 .../src/test/resources/activities/share.json    |  16 +
 .../src/test/resources/activities/sponsor.json  |  17 +
 .../src/test/resources/activities/start.json    |  15 +
 .../resources/activities/stop-following.json    |  15 +
 .../src/test/resources/activities/submit.json   |  15 +
 .../src/test/resources/activities/tag.json      |  19 +
 .../test/resources/activities/terminate.json    |  15 +
 .../src/test/resources/activities/tie.json      |  24 ++
 .../test/resources/activities/unfavorite.json   |  15 +
 .../src/test/resources/activities/unlike.json   |  15 +
 .../test/resources/activities/unsatisfy.json    |  20 +
 .../src/test/resources/activities/unsave.json   |  15 +
 .../src/test/resources/activities/unshare.json  |  15 +
 .../src/test/resources/activities/update.json   |  15 +
 .../src/test/resources/activities/use.json      |  15 +
 .../src/test/resources/activities/watch.json    |  16 +
 .../src/test/resources/activities/win.json      |  15 +
 streams-util/src/test/resources/media_link.json |   7 +
 .../src/test/resources/objects/event.json       |  18 +
 .../src/test/resources/objects/group.json       |  16 +
 .../src/test/resources/objects/issue.json       |   9 +
 .../src/test/resources/objects/note.json        |  12 +
 .../src/test/resources/objects/permission.json  |   9 +
 .../src/test/resources/objects/place.json       |   9 +
 .../src/test/resources/objects/task.json        |  16 +
 .../src/test/resources/objects/video.json       |   8 +
 streams-verbs/pom.xml                           |   2 +-
 583 files changed, 7345 insertions(+), 7473 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-components/streams-converters/pom.xml
----------------------------------------------------------------------
diff --git a/streams-components/streams-converters/pom.xml b/streams-components/streams-converters/pom.xml
index 5615027..c0d6551 100644
--- a/streams-components/streams-converters/pom.xml
+++ b/streams-components/streams-converters/pom.xml
@@ -128,7 +128,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.converter</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-components/streams-http/pom.xml
----------------------------------------------------------------------
diff --git a/streams-components/streams-http/pom.xml b/streams-components/streams-http/pom.xml
index 486698e..88cc88e 100644
--- a/streams-components/streams-http/pom.xml
+++ b/streams-components/streams-http/pom.xml
@@ -163,7 +163,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.http</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-amazon-aws/streams-persist-kinesis/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-amazon-aws/streams-persist-kinesis/pom.xml b/streams-contrib/streams-amazon-aws/streams-persist-kinesis/pom.xml
index 9d26cb5..4561514 100644
--- a/streams-contrib/streams-amazon-aws/streams-persist-kinesis/pom.xml
+++ b/streams-contrib/streams-amazon-aws/streams-persist-kinesis/pom.xml
@@ -104,7 +104,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.amazon.kinesis.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-amazon-aws/streams-persist-s3/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-amazon-aws/streams-persist-s3/pom.xml b/streams-contrib/streams-amazon-aws/streams-persist-s3/pom.xml
index 7d44a1e..9ad983d 100644
--- a/streams-contrib/streams-amazon-aws/streams-persist-s3/pom.xml
+++ b/streams-contrib/streams-amazon-aws/streams-persist-s3/pom.xml
@@ -114,9 +114,9 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/s3/S3Configuration.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/s3/S3WriterConfiguration.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/s3/S3ReaderConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/s3/S3Configuration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/s3/S3WriterConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/s3/S3ReaderConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.s3.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-persist-cassandra/src/site/resources/META_INF/spring/streams-cassandra-context.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-persist-cassandra/src/site/resources/META_INF/spring/streams-cassandra-context.xml b/streams-contrib/streams-persist-cassandra/src/site/resources/META_INF/spring/streams-cassandra-context.xml
deleted file mode 100644
index 842c918..0000000
--- a/streams-contrib/streams-persist-cassandra/src/site/resources/META_INF/spring/streams-cassandra-context.xml
+++ /dev/null
@@ -1,25 +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
-  ~
-  ~   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.
-  -->
-<beans
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xmlns="http://www.springframework.org/schema/beans"
-        xmlns:context="http://www.springframework.org/schema/context"
-        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
-
-</beans>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-persist-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-persist-elasticsearch/pom.xml b/streams-contrib/streams-persist-elasticsearch/pom.xml
index d65b5f6..2f146a9 100644
--- a/streams-contrib/streams-persist-elasticsearch/pom.xml
+++ b/streams-contrib/streams-persist-elasticsearch/pom.xml
@@ -202,9 +202,9 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/elasticsearch/ElasticsearchConfiguration.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/elasticsearch/ElasticsearchReaderConfiguration.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/elasticsearch/ElasticsearchWriterConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/elasticsearch/ElasticsearchConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/elasticsearch/ElasticsearchReaderConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/elasticsearch/ElasticsearchWriterConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.elasticsearch.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-persist-filebuffer/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-persist-filebuffer/pom.xml b/streams-contrib/streams-persist-filebuffer/pom.xml
index fb9532c..5c26f2c 100644
--- a/streams-contrib/streams-persist-filebuffer/pom.xml
+++ b/streams-contrib/streams-persist-filebuffer/pom.xml
@@ -127,7 +127,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.file.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-persist-graph/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-persist-graph/pom.xml b/streams-contrib/streams-persist-graph/pom.xml
index d28dfad..79cef1b 100644
--- a/streams-contrib/streams-persist-graph/pom.xml
+++ b/streams-contrib/streams-persist-graph/pom.xml
@@ -134,7 +134,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.graph.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-persist-hbase/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-persist-hbase/pom.xml b/streams-contrib/streams-persist-hbase/pom.xml
index 6d68bc7..46912e1 100644
--- a/streams-contrib/streams-persist-hbase/pom.xml
+++ b/streams-contrib/streams-persist-hbase/pom.xml
@@ -131,7 +131,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/hbase/HbaseConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/hbase/HbaseConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.hbase.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-persist-hdfs/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-persist-hdfs/pom.xml b/streams-contrib/streams-persist-hdfs/pom.xml
index 73f6730..303a728 100644
--- a/streams-contrib/streams-persist-hdfs/pom.xml
+++ b/streams-contrib/streams-persist-hdfs/pom.xml
@@ -186,7 +186,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.hdfs.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-persist-kafka/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-persist-kafka/pom.xml b/streams-contrib/streams-persist-kafka/pom.xml
index a9d25a7..e33ea2a 100644
--- a/streams-contrib/streams-persist-kafka/pom.xml
+++ b/streams-contrib/streams-persist-kafka/pom.xml
@@ -147,7 +147,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/kafka/KafkaConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/kafka/KafkaConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.kafka.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-persist-mongo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-persist-mongo/pom.xml b/streams-contrib/streams-persist-mongo/pom.xml
index c20aa96..e4f6614 100644
--- a/streams-contrib/streams-persist-mongo/pom.xml
+++ b/streams-contrib/streams-persist-mongo/pom.xml
@@ -133,7 +133,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/mongo/MongoConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/mongo/MongoConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.mongo.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-processor-lucene/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-processor-lucene/pom.xml b/streams-contrib/streams-processor-lucene/pom.xml
index d342394..d8dba13 100644
--- a/streams-contrib/streams-processor-lucene/pom.xml
+++ b/streams-contrib/streams-processor-lucene/pom.xml
@@ -143,7 +143,7 @@
                 <addCompileSourceRoot>true</addCompileSourceRoot>
                 <generateBuilders>true</generateBuilders>
                 <sourcePaths>
-                    <sourcePath>src/main/jsonschema/org/apache/streams/lucene/LuceneTaggerConfiguration.json</sourcePath>
+                    <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/lucene/LuceneTaggerConfiguration.json</sourcePath>
                 </sourcePaths>
                 <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                 <targetPackage>org.apache.streams.lucene</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-processor-peoplepattern/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-processor-peoplepattern/pom.xml b/streams-contrib/streams-processor-peoplepattern/pom.xml
index 4e592de..1b75504 100644
--- a/streams-contrib/streams-processor-peoplepattern/pom.xml
+++ b/streams-contrib/streams-processor-peoplepattern/pom.xml
@@ -125,7 +125,7 @@
                         <addCompileSourceRoot>true</addCompileSourceRoot>
                         <generateBuilders>true</generateBuilders>
                         <sourcePaths>
-                            <sourcePath>src/main/jsonschema/org/apache/streams/peoplepattern</sourcePath>
+                            <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/peoplepattern</sourcePath>
                         </sourcePaths>
                         <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                         <targetPackage>org.apache.streams.peoplepattern</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-processor-tika/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-processor-tika/pom.xml b/streams-contrib/streams-processor-tika/pom.xml
index dfe7879..9969e29 100644
--- a/streams-contrib/streams-processor-tika/pom.xml
+++ b/streams-contrib/streams-processor-tika/pom.xml
@@ -142,7 +142,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/tika/LinkDetails.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/tika/LinkDetails.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.tika</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-processor-urls/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-processor-urls/pom.xml b/streams-contrib/streams-processor-urls/pom.xml
index 79a0b51..3256af6 100644
--- a/streams-contrib/streams-processor-urls/pom.xml
+++ b/streams-contrib/streams-processor-urls/pom.xml
@@ -142,7 +142,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/urls/LinkDetails.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/urls/LinkDetails.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.urls</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-datasift/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-datasift/pom.xml b/streams-contrib/streams-provider-datasift/pom.xml
index ee76b08..b08828c 100644
--- a/streams-contrib/streams-provider-datasift/pom.xml
+++ b/streams-contrib/streams-provider-datasift/pom.xml
@@ -190,7 +190,7 @@
                 <configuration>
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
-                    <sourceDirectory>src/main/jsonschema</sourceDirectory>
+                    <sourceDirectory>${project.basedir}/src/main/jsonschema</sourceDirectory>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.datasift</targetPackage>
                     <useLongIntegers>true</useLongIntegers>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-facebook/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-facebook/pom.xml b/streams-contrib/streams-provider-facebook/pom.xml
index 96c6d30..7b23e29 100644
--- a/streams-contrib/streams-provider-facebook/pom.xml
+++ b/streams-contrib/streams-provider-facebook/pom.xml
@@ -147,11 +147,11 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/facebook/FacebookConfiguration.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/facebook/FacebookUserInformationConfiguration.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/facebook/FacebookUserstreamConfiguration.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/facebook/graph/Post.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/org/apache/streams/facebook/Page.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/facebook/FacebookConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/facebook/FacebookUserInformationConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/facebook/FacebookUserstreamConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/facebook/graph/Post.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/org/apache/streams/facebook/Page.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>com.facebook</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-gnip/gnip-edc-instagram/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-gnip/gnip-edc-instagram/pom.xml b/streams-contrib/streams-provider-gnip/gnip-edc-instagram/pom.xml
index 8d643c3..2b1c586 100644
--- a/streams-contrib/streams-provider-gnip/gnip-edc-instagram/pom.xml
+++ b/streams-contrib/streams-provider-gnip/gnip-edc-instagram/pom.xml
@@ -95,7 +95,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/com/instagram/Instagram.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/instagram/Instagram.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>com.instagram</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-gnip/gnip-powertrack/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-gnip/gnip-powertrack/pom.xml b/streams-contrib/streams-provider-gnip/gnip-powertrack/pom.xml
index d318f0f..e7ffa80 100644
--- a/streams-contrib/streams-provider-gnip/gnip-powertrack/pom.xml
+++ b/streams-contrib/streams-provider-gnip/gnip-powertrack/pom.xml
@@ -123,7 +123,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/com/gnip/Gnip.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/gnip/Gnip.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>com.gnip</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-google/google-gmail/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gmail/pom.xml b/streams-contrib/streams-provider-google/google-gmail/pom.xml
index 5faebc6..0140c7f 100644
--- a/streams-contrib/streams-provider-google/google-gmail/pom.xml
+++ b/streams-contrib/streams-provider-google/google-gmail/pom.xml
@@ -152,7 +152,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/com/google/gmail</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/google/gmail</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.google.gmail.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-google/google-gplus/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/pom.xml b/streams-contrib/streams-provider-google/google-gplus/pom.xml
index 737d0ff..0659b35 100644
--- a/streams-contrib/streams-provider-google/google-gplus/pom.xml
+++ b/streams-contrib/streams-provider-google/google-gplus/pom.xml
@@ -196,7 +196,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/com/google/gplus/GPlusConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/google/gplus/GPlusConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.google.gplus.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-instagram/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-instagram/pom.xml b/streams-contrib/streams-provider-instagram/pom.xml
index a4b1e32..14874bf 100644
--- a/streams-contrib/streams-provider-instagram/pom.xml
+++ b/streams-contrib/streams-provider-instagram/pom.xml
@@ -157,8 +157,8 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/com/instagram/InstagramConfiguration.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/com/instagram/InstagramUserInformationConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/instagram/InstagramConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/instagram/InstagramUserInformationConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.instagram.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-moreover/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-moreover/pom.xml b/streams-contrib/streams-provider-moreover/pom.xml
index fe16f7c..6203e2f 100644
--- a/streams-contrib/streams-provider-moreover/pom.xml
+++ b/streams-contrib/streams-provider-moreover/pom.xml
@@ -143,8 +143,8 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/com/moreover/Moreover.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/com/moreover/MoreoverConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/moreover/Moreover.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/moreover/MoreoverConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>com.moreover</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-rss/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-rss/pom.xml b/streams-contrib/streams-provider-rss/pom.xml
index 97cf456..a9bfa45 100644
--- a/streams-contrib/streams-provider-rss/pom.xml
+++ b/streams-contrib/streams-provider-rss/pom.xml
@@ -163,7 +163,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/RssStreamConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/RssStreamConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.rss.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-sysomos/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-sysomos/pom.xml b/streams-contrib/streams-provider-sysomos/pom.xml
index c27af30..1637ba2 100644
--- a/streams-contrib/streams-provider-sysomos/pom.xml
+++ b/streams-contrib/streams-provider-sysomos/pom.xml
@@ -139,8 +139,8 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/com/sysomos/Sysomos.json</sourcePath>
-                        <sourcePath>src/main/jsonschema/com/sysomos/SysomosConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/sysomos/Sysomos.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/sysomos/SysomosConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>com.sysomos</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-twitter/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-twitter/pom.xml b/streams-contrib/streams-provider-twitter/pom.xml
index c8d35ab..f8c02b0 100644
--- a/streams-contrib/streams-provider-twitter/pom.xml
+++ b/streams-contrib/streams-provider-twitter/pom.xml
@@ -163,7 +163,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.twitter.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-contrib/streams-provider-youtube/pom.xml
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-youtube/pom.xml b/streams-contrib/streams-provider-youtube/pom.xml
index 141e0aa..b51fdb9 100644
--- a/streams-contrib/streams-provider-youtube/pom.xml
+++ b/streams-contrib/streams-provider-youtube/pom.xml
@@ -151,7 +151,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/com/youtube/YoutubeConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema/com/youtube/YoutubeConfiguration.json</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.youtube.pojo</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-monitoring/pom.xml
----------------------------------------------------------------------
diff --git a/streams-monitoring/pom.xml b/streams-monitoring/pom.xml
index 5fb6a5a..768cd15 100644
--- a/streams-monitoring/pom.xml
+++ b/streams-monitoring/pom.xml
@@ -99,7 +99,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.pojo.json</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/pom.xml b/streams-plugins/streams-plugin-cassandra/pom.xml
index b2dbf36..d9d3f91 100644
--- a/streams-plugins/streams-plugin-cassandra/pom.xml
+++ b/streams-plugins/streams-plugin-cassandra/pom.xml
@@ -54,10 +54,17 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-util</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schema-activitystreams</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
@@ -230,9 +237,9 @@
                         </goals>
                         <configuration>
                             <includeGroupIds>org.apache.streams</includeGroupIds>
-                            <includeArtifactIds>streams-schemas</includeArtifactIds>
+                            <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                             <includes>**/*.json</includes>
-                            <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                            <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                         </configuration>
                     </execution>
                 </executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraGenerationConfig.java b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraGenerationConfig.java
index 28e20e4..1950796 100644
--- a/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraGenerationConfig.java
+++ b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraGenerationConfig.java
@@ -1,6 +1,6 @@
 package org.apache.streams.plugins.cassandra;
 
-import org.apache.streams.schema.GenerationConfig;
+import org.apache.streams.util.schema.GenerationConfig;
 import org.jsonschema2pojo.DefaultGenerationConfig;
 import org.jsonschema2pojo.util.URLUtil;
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGenerator.java b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGenerator.java
index 787ae02..7889bdc 100644
--- a/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGenerator.java
+++ b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGenerator.java
@@ -7,12 +7,12 @@ import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
-import org.apache.streams.schema.FieldType;
-import org.apache.streams.schema.FieldUtil;
-import org.apache.streams.schema.GenerationConfig;
-import org.apache.streams.schema.Schema;
-import org.apache.streams.schema.SchemaStore;
-import org.apache.streams.schema.URIUtil;
+import org.apache.streams.util.schema.FieldType;
+import org.apache.streams.util.schema.FieldUtil;
+import org.apache.streams.util.schema.GenerationConfig;
+import org.apache.streams.util.schema.Schema;
+import org.apache.streams.util.schema.SchemaStore;
+import org.apache.streams.util.schema.SchemaStoreImpl;
 import org.jsonschema2pojo.util.URLUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,11 +27,10 @@ import java.util.Map;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.apache.commons.lang3.StringUtils.defaultString;
-import static org.apache.streams.schema.FileUtil.dropExtension;
-import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
-import static org.apache.streams.schema.FileUtil.resolveRecursive;
-import static org.apache.streams.schema.FileUtil.swapExtension;
-import static org.apache.streams.schema.FileUtil.writeFile;
+import static org.apache.streams.util.schema.FileUtil.dropExtension;
+import static org.apache.streams.util.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.util.schema.FileUtil.resolveRecursive;
+import static org.apache.streams.util.schema.FileUtil.writeFile;
 
 /**
  * Created by sblackmon on 5/3/16.
@@ -44,14 +43,14 @@ public class StreamsCassandraResourceGenerator implements Runnable {
 
     private StreamsCassandraGenerationConfig config;
 
-    private SchemaStore schemaStore = new SchemaStore();
+    private SchemaStore schemaStore = new SchemaStoreImpl();
 
     private int currentDepth = 0;
 
     public static void main(String[] args) {
         StreamsCassandraGenerationConfig config = new StreamsCassandraGenerationConfig();
 
-        String sourceDirectory = "./target/test-classes/activities";
+        String sourceDirectory = "./src/main/jsonschema";
         String targetDirectory = "./target/generated-resources/cassandra";
 
         if( args.length > 0 )
@@ -63,16 +62,7 @@ public class StreamsCassandraResourceGenerator implements Runnable {
         config.setTargetDirectory(targetDirectory);
 
         StreamsCassandraResourceGenerator streamsCassandraResourceGenerator = new StreamsCassandraResourceGenerator(config);
-        Thread thread = new Thread(streamsCassandraResourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
+        streamsCassandraResourceGenerator.run();
     }
 
     public StreamsCassandraResourceGenerator(StreamsCassandraGenerationConfig config) {
@@ -122,15 +112,15 @@ public class StreamsCassandraResourceGenerator implements Runnable {
                     resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
                 }
 
-                LOGGER.info("Processing {}:", resourcePath);
-
                 String resourceId = schemaSymbol(schema);
 
+                LOGGER.info("Processing {}", resourcePath);
+
                 String resourceContent = generateResource(schema, resourceId);
 
                 typesContent.append(resourceContent);
 
-                LOGGER.info("Added {}:", resourceId);
+                LOGGER.info("Added {}", resourceId);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGeneratorMojo.java b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGeneratorMojo.java
index 2e9a37f..5cf814d 100644
--- a/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGeneratorMojo.java
+++ b/streams-plugins/streams-plugin-cassandra/src/main/java/org/apache/streams/plugins/cassandra/StreamsCassandraResourceGeneratorMojo.java
@@ -15,10 +15,10 @@ import org.slf4j.LoggerFactory;
 import java.io.File;
 import java.util.List;
 
-@Mojo(  name = "cassandra",
+@Mojo(  name = "generate-resources",
         defaultPhase = LifecyclePhase.GENERATE_RESOURCES
 )
-@Execute(   goal = "cassandra",
+@Execute(   goal = "generate-resources",
             phase = LifecyclePhase.GENERATE_RESOURCES
 )
 public class StreamsCassandraResourceGeneratorMojo extends AbstractMojo {
@@ -30,15 +30,6 @@ public class StreamsCassandraResourceGeneratorMojo extends AbstractMojo {
     @Component
     private MavenProject project;
 
-//    @Component
-//    private Settings settings;
-//
-//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
-//    protected ArtifactRepository localRepository;
-//
-//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
-//    private PluginDescriptor plugin;
-//
     @Parameter( defaultValue = "${project.basedir}", readonly = true )
     private File basedir;
 
@@ -65,29 +56,7 @@ public class StreamsCassandraResourceGeneratorMojo extends AbstractMojo {
 
         StreamsCassandraResourceGenerator streamsCassandraResourceGenerator = new StreamsCassandraResourceGenerator(config);
 
-        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
-            public void uncaughtException(Thread th, Throwable ex) {
-                LOGGER.error("Exception", ex);
-                mojoFailureException = new MojoFailureException("Exception", ex);
-            }
-        };
-        Thread.setDefaultUncaughtExceptionHandler(h);
-        Thread thread = new Thread(streamsCassandraResourceGenerator);
-        thread.setUncaughtExceptionHandler(h);
-        try {
-            thread.start();
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-            mojoFailureException = new MojoFailureException("Exception", e);
-        }
-
-        if( mojoFailureException != null )
-            throw mojoFailureException;
-
-        return;
+        streamsCassandraResourceGenerator.run();
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-cassandra/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/site/markdown/index.md b/streams-plugins/streams-plugin-cassandra/src/site/markdown/index.md
index d0c2129..0e8ecf3 100644
--- a/streams-plugins/streams-plugin-cassandra/src/site/markdown/index.md
+++ b/streams-plugins/streams-plugin-cassandra/src/site/markdown/index.md
@@ -3,17 +3,31 @@ org.apache.streams.plugins:streams-plugin-cassandra
 
 streams-plugin-cassandra generates resources from json schemas to assist with indexing of json data using Apache Cassandra.
 
-#### Usage
+### Usage
+
+##### Maven
 
 Run within a module containing a src/main/jsonschema directory
 
     mvn org.apache.streams.plugins:streams-plugin-cassandra:0.3-incubating-SNAPSHOT:cassandra
 
-Output will be placed in target/generated-resources/cassandra by default
+[streams-plugin-cassandra/pom.xml](streams-plugin-cassandra/pom.xml "streams-plugin-cassandra/pom.xml")
 
-#### Example
+##### SDK
 
-[streams-plugin-cassandra/pom.xml](streams-plugin-cassandra/pom.xml "streams-plugin-cassandra/pom.xml")
+Embed within your own java code
+
+    StreamsCassandraGenerationConfig config = new StreamsCassandraGenerationConfig();
+    config.setSourceDirectory("src/main/jsonschema");
+    config.setTargetDirectory("target/generated-resources");
+    StreamsCassandraResourceGenerator generator = new StreamsCassandraResourceGenerator(config);
+    generator.run();
+    
+##### CLI
+    
+Run from CLI without Maven
+
+    java -jar streams-plugin-cassandra-jar-with-dependencies.jar StreamsCassandraResourceGenerator src/main/jsonschema target/generated-resources
 
 #### Documentation
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorCLITest.java b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorCLITest.java
index 465a326..74c1152 100644
--- a/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorCLITest.java
+++ b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorCLITest.java
@@ -20,10 +20,10 @@ import static org.apache.streams.plugins.cassandra.test.StreamsCassandraResource
 public class StreamsCassandraResourceGeneratorCLITest {
 
     @Test
-    public void testStreamsHiveResourceGeneratorCLI() throws Exception {
+    public void testStreamsCassandraResourceGeneratorCLI() throws Exception {
 
-        String sourceDirectory = "target/test-classes/streams-schemas";
-        String targetDirectory = "target/generated-resources/cassandra-cli";
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
+        String targetDirectory = "target/generated-resources/test-cli";
 
         List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);
         StreamsCassandraResourceGenerator.main(argsList.toArray(new String[0]));
@@ -39,7 +39,9 @@ public class StreamsCassandraResourceGeneratorCLITest {
         Collection<File> outputCollection = Lists.newArrayList(outputIterator);
         assert( outputCollection.size() == 1 );
 
-        Path path = Paths.get("types.cql");
+        Path path = Paths.get(testOutput.getAbsolutePath()).resolve("types.cql");
+
+        assert( path.toFile().exists() );
 
         String typesCqlBytes = new String(
                 java.nio.file.Files.readAllBytes(path));

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorMojoTest.java
index aad069f..ee0ce99 100644
--- a/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorMojoTest.java
+++ b/streams-plugins/streams-plugin-cassandra/src/test/java/org/apache/streams/plugins/cassandra/test/StreamsCassandraResourceGeneratorMojoTest.java
@@ -52,7 +52,9 @@ public class StreamsCassandraResourceGeneratorMojoTest extends TestCase {
 
         verifier.resetStreams();
 
-        File testOutput = new File( "./target/generated-resources/test-mojo");
+        Path testOutputPath = Paths.get(testDir.getAbsolutePath()).resolve("target/generated-resources/test-mojo");
+
+        File testOutput = testOutputPath.toFile();
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );
@@ -63,13 +65,14 @@ public class StreamsCassandraResourceGeneratorMojoTest extends TestCase {
         Collection<File> outputCollection = Lists.newArrayList(outputIterator);
         assert( outputCollection.size() == 1 );
 
-        Path path = Paths.get("./target/generated-sources/test/types.cql");
+        Path path = testOutputPath.resolve("types.cql");
+
+        assert( path.toFile().exists() );
 
         String typesCqlBytes = new String(
                 java.nio.file.Files.readAllBytes(path));
 
         assert( StringUtils.countMatches(typesCqlBytes, "CREATE TYPE") == 133 );
 
-        assert( !typesCqlBytes.contains("IDK"));
     }
 }
\ No newline at end of file


[18/32] incubator-streams git commit: WIP for apachecon

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hbase/src/test/resources/streams-plugin-hbase/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hbase/src/test/resources/streams-plugin-hbase/pom.xml b/streams-plugins/streams-plugin-hbase/src/test/resources/streams-plugin-hbase/pom.xml
new file mode 100644
index 0000000..9aa7d8d
--- /dev/null
+++ b/streams-plugins/streams-plugin-hbase/src/test/resources/streams-plugin-hbase/pom.xml
@@ -0,0 +1,76 @@
+<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>
+
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-hbase-test</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>jar</packaging>
+    <name>Test StreamsHbaseResourceGeneratorMojo</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.streams.plugins</groupId>
+                <artifactId>streams-plugin-hbase</artifactId>
+                <version>0.3-incubating-SNAPSHOT</version>
+                <configuration>
+                    <sourcePaths>
+                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                    </sourcePaths>
+                    <targetDirectory>target/generated-resources/test-mojo</targetDirectory>
+                    <columnFamily>cf</columnFamily>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>hbase</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.10</version>
+                <configuration>
+                    <includes>**/*.json</includes>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <includeGroupIds>org.apache.streams</includeGroupIds>
+                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeTypes>jar,test-jar</includeTypes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>unpack-schemas</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hive/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/pom.xml b/streams-plugins/streams-plugin-hive/pom.xml
index b173a8d..515314a 100644
--- a/streams-plugins/streams-plugin-hive/pom.xml
+++ b/streams-plugins/streams-plugin-hive/pom.xml
@@ -148,6 +148,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.apache.maven.shared</groupId>
+            <artifactId>maven-verifier</artifactId>
+            <version>1.6</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
index 06c1499..c09f7dd 100644
--- a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGenerator.java
@@ -46,12 +46,11 @@ public class StreamsHiveResourceGenerator implements Runnable {
 
     private int currentDepth = 0;
 
-    public void main(String[] args) {
+    public static void main(String[] args) {
         StreamsHiveGenerationConfig config = new StreamsHiveGenerationConfig();
 
-        String sourceDirectory = "./target/test-classes/activities";
-        String targetDirectory = "./target/generated-sources/streams-plugin-hive";
-        String targetPackage = "";
+        String sourceDirectory = "src/main/jsonschema";
+        String targetDirectory = "target/generated-resources/hive";
 
         if( args.length > 0 )
             sourceDirectory = args[0];

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
index 9cf71a9..16466cf 100644
--- a/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
+++ b/streams-plugins/streams-plugin-hive/src/main/java/org/apache/streams/plugins/hive/StreamsHiveResourceGeneratorMojo.java
@@ -2,6 +2,7 @@ package org.apache.streams.plugins.hive;
 
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -15,15 +16,17 @@ import java.io.File;
 import java.util.List;
 
 @Mojo(  name = "hive",
-        defaultPhase = LifecyclePhase.GENERATE_SOURCES
+        defaultPhase = LifecyclePhase.GENERATE_RESOURCES
 )
 @Execute(   goal = "hive",
-            phase = LifecyclePhase.GENERATE_SOURCES
+            phase = LifecyclePhase.GENERATE_RESOURCES
 )
 public class StreamsHiveResourceGeneratorMojo extends AbstractMojo {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHiveResourceGeneratorMojo.class);
 
+    private volatile MojoFailureException mojoFailureException;
+
     @Component
     private MavenProject project;
 
@@ -39,16 +42,16 @@ public class StreamsHiveResourceGeneratorMojo extends AbstractMojo {
     @Parameter( defaultValue = "${project.basedir}", readonly = true )
     private File basedir;
 
-    @Parameter( defaultValue = "./src/main/jsonschema", readonly = true ) // Maven 3 only
+    @Parameter( defaultValue = "src/main/jsonschema", readonly = true ) // Maven 3 only
     public String sourceDirectory;
 
     @Parameter( readonly = true ) // Maven 3 only
     public List<String> sourcePaths;
 
-    @Parameter(defaultValue = "./target/generated-sources/streams-plugin-hive", readonly = true)
+    @Parameter(defaultValue = "./target/generated-resources/hive", readonly = true)
     public String targetDirectory;
 
-    public void execute() throws MojoExecutionException {
+    public void execute() throws MojoExecutionException, MojoFailureException {
 
         //addProjectDependenciesToClasspath();
 
@@ -60,16 +63,30 @@ public class StreamsHiveResourceGeneratorMojo extends AbstractMojo {
             config.setSourceDirectory(sourceDirectory);
         config.setTargetDirectory(targetDirectory);
 
-        StreamsHiveResourceGenerator streamsPojoScala = new StreamsHiveResourceGenerator(config);
-        Thread thread = new Thread(streamsPojoScala);
-        thread.start();
+        StreamsHiveResourceGenerator streamsHiveResourceGenerator = new StreamsHiveResourceGenerator(config);
+
+        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
+            public void uncaughtException(Thread th, Throwable ex) {
+                LOGGER.error("Exception", ex);
+                mojoFailureException = new MojoFailureException("Exception", ex);
+            }
+        };
+        Thread.setDefaultUncaughtExceptionHandler(h);
+        Thread thread = new Thread(streamsHiveResourceGenerator);
+        thread.setUncaughtExceptionHandler(h);
         try {
+            thread.start();
             thread.join();
         } catch (InterruptedException e) {
             LOGGER.error("InterruptedException", e);
         } catch (Exception e) {
             LOGGER.error("Exception", e);
+            mojoFailureException = new MojoFailureException("Exception", e);
         }
+
+        if( mojoFailureException != null )
+            throw mojoFailureException;
+
         return;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hive/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/site/markdown/index.md b/streams-plugins/streams-plugin-hive/src/site/markdown/index.md
new file mode 100644
index 0000000..4df9103
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/site/markdown/index.md
@@ -0,0 +1,22 @@
+org.apache.streams.plugins:streams-plugin-hive
+==============================================
+
+streams-plugin-hive generates resources from json schemas to assist with analysis of json data using Apache Hive.
+
+#### Usage
+
+Run within a module containing a src/main/jsonschema directory
+
+    mvn org.apache.streams.plugins:streams-plugin-hive:0.3-incubating-SNAPSHOT:hive
+
+Output will be placed in target/generated-resources/hive by default
+
+#### Example
+
+[streams-plugin-hive/pom.xml](streams-plugin-hive/pom.xml "streams-plugin-hive/pom.xml")
+
+#### Documentation
+
+[JavaDocs](apidocs/index.html "JavaDocs")
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorCLITest.java b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorCLITest.java
new file mode 100644
index 0000000..21c82f9
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorCLITest.java
@@ -0,0 +1,41 @@
+package org.apache.streams.plugins.test;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import org.apache.streams.plugins.hive.StreamsHiveResourceGenerator;
+import org.junit.Test;
+
+import javax.annotation.Nullable;
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+
+import static org.apache.streams.plugins.test.StreamsHiveResourceGeneratorTest.hqlFilter;
+
+/**
+ * Created by sblackmon on 5/5/16.
+ */
+public class StreamsHiveResourceGeneratorCLITest {
+
+    @Test
+    public void testStreamsHiveResourceGeneratorCLI() throws Exception {
+
+        String sourceDirectory = "target/test-classes/streams-schemas";
+        String targetDirectory = "target/generated-resources/hive-cli";
+
+        List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);
+        StreamsHiveResourceGenerator.main(argsList.toArray(new String[0]));
+
+        File testOutput = new File(targetDirectory);
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(hqlFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorMojoTest.java
new file mode 100644
index 0000000..b2f3e14
--- /dev/null
+++ b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorMojoTest.java
@@ -0,0 +1,64 @@
+package org.apache.streams.plugins.test;
+
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import junit.framework.TestCase;
+import org.apache.maven.it.Verifier;
+import org.apache.maven.it.util.ResourceExtractor;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import static org.apache.streams.plugins.test.StreamsHiveResourceGeneratorTest.hqlFilter;
+
+/**
+ * Tests that streams-plugin-hive running via maven generates hql resources
+ */
+public class StreamsHiveResourceGeneratorMojoTest extends TestCase {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHiveResourceGeneratorMojoTest.class);
+
+    protected void setUp() throws Exception
+    {
+        // required for mojo lookups to work
+        super.setUp();
+    }
+
+
+    @Test
+    public void testStreamsHiveResourceGeneratorMojo() throws Exception {
+
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/streams-plugin-hive" );
+
+        Verifier verifier;
+
+        verifier = new Verifier( testDir.getAbsolutePath() );
+
+        List cliOptions = new ArrayList();
+        cliOptions.add( "-N" );
+        verifier.executeGoals( Lists.<String>newArrayList(
+                "clean",
+                "dependency:unpack-dependencies",
+                "generate-resources"));
+
+        verifier.verifyErrorFreeLog();
+
+        verifier.resetStreams();
+
+        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-resources/test-mojo");
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(hqlFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
index 9be908d..3944ddf 100644
--- a/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
+++ b/streams-plugins/streams-plugin-hive/src/test/java/org/apache/streams/plugins/test/StreamsHiveResourceGeneratorTest.java
@@ -8,6 +8,7 @@ import org.apache.commons.io.FileUtils;
 import org.apache.streams.plugins.hive.StreamsHiveGenerationConfig;
 import org.apache.streams.plugins.hive.StreamsHiveResourceGenerator;
 import org.junit.Assert;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -22,10 +23,20 @@ import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
 /**
  * Test that Activity beans are compatible with the example activities in the spec.
  */
+@Ignore
 public class StreamsHiveResourceGeneratorTest {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(StreamsHiveResourceGeneratorTest.class);
 
+    public static final Predicate<File> hqlFilter = new Predicate<File>() {
+        @Override
+        public boolean apply(@Nullable File file) {
+            if( file.getName().endsWith(".hql") )
+                return true;
+            else return false;
+        }
+    };
+
     /**
      * Tests that all example activities can be loaded into Activity beans
      *
@@ -57,15 +68,7 @@ public class StreamsHiveResourceGeneratorTest {
             LOGGER.error("Exception", e);
         }
 
-        File testOutput = new File( "./target/generated-sources/test");
-        Predicate<File> hqlFilter = new Predicate<File>() {
-            @Override
-            public boolean apply(@Nullable File file) {
-                if( file.getName().endsWith(".hql") )
-                    return true;
-                else return false;
-            }
-        };
+        File testOutput = config.getTargetDirectory();
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml b/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
index b1de7b8..ae4bb66 100644
--- a/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
+++ b/streams-plugins/streams-plugin-hive/src/test/resources/streams-plugin-hive/pom.xml
@@ -13,6 +13,13 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
@@ -24,10 +31,15 @@
                 <artifactId>streams-plugin-hive</artifactId>
                 <version>0.3-incubating-SNAPSHOT</version>
                 <configuration>
-                    <packages>
-                        <package>org.apache.streams.pojo.json</package>
-                    </packages>
-                    <target>target/test-classes/streams-hive-plugin/</target>
+                    <sourcePaths>
+                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                    </sourcePaths>
+                    <targetDirectory>target/generated-resources/test-mojo</targetDirectory>
                 </configuration>
                 <executions>
                     <execution>
@@ -37,6 +49,27 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.10</version>
+                <configuration>
+                    <includes>**/*.json</includes>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <includeGroupIds>org.apache.streams</includeGroupIds>
+                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeTypes>jar,test-jar</includeTypes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>unpack-schemas</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/pom.xml b/streams-plugins/streams-plugin-pig/pom.xml
new file mode 100644
index 0000000..ef59587
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/pom.xml
@@ -0,0 +1,244 @@
+<?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
+  ~
+  ~   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>
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-pig</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>maven-plugin</packaging>
+
+    <parent>
+        <groupId>org.apache.streams</groupId>
+        <artifactId>streams-plugins</artifactId>
+        <version>0.3-incubating-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <properties>
+        <pig.version>1.0</pig.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-config</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.reflections</groupId>
+            <artifactId>reflections</artifactId>
+            <version>0.9.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-aether-provider</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>3.3.3</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-compat</artifactId>
+            <version>3.3.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+            <version>3.3.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.sonatype.aether</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.shared</groupId>
+            <artifactId>maven-verifier</artifactId>
+            <version>1.6</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <version>2.7</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.maven</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>3.0.15</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-plugin-plugin</artifactId>
+            <version>3.4</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-api</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-generators</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-testing</groupId>
+            <artifactId>maven-plugin-testing-harness</artifactId>
+            <version>3.3.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+            <version>2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.joda</groupId>
+            <artifactId>joda-convert</artifactId>
+            <version>1.8.1</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <sourceDirectory>src/main/java</sourceDirectory>
+        <testSourceDirectory>src/test/java</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <version>3.4</version>
+                <configuration>
+                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>mojo-descriptor</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>descriptor</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.reflections</groupId>
+                <artifactId>reflections-maven</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>reflections</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.4</version>
+                <executions>
+                    <execution>
+                        <id>resource-dependencies</id>
+                        <phase>process-test-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <includeGroupIds>org.apache.streams</includeGroupIds>
+                            <includeArtifactIds>streams-schemas</includeArtifactIds>
+                            <includes>**/*.json</includes>
+                            <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigGenerationConfig.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigGenerationConfig.java b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigGenerationConfig.java
new file mode 100644
index 0000000..5aa55ed
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigGenerationConfig.java
@@ -0,0 +1,84 @@
+package org.apache.streams.plugins.pig;
+
+import org.apache.streams.schema.GenerationConfig;
+import org.jsonschema2pojo.DefaultGenerationConfig;
+import org.jsonschema2pojo.util.URLUtil;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Configures StreamsHiveResourceGenerator
+ *
+ *
+ */
+public class StreamsPigGenerationConfig extends DefaultGenerationConfig implements GenerationConfig {
+
+    public String getSourceDirectory() {
+        return sourceDirectory;
+    }
+
+    public List<String> getSourcePaths() {
+        return sourcePaths;
+    }
+
+    private String sourceDirectory;
+    private List<String> sourcePaths = new ArrayList<String>();
+    private String targetDirectory;
+    private int maxDepth = 1;
+
+    public Set<String> getExclusions() {
+        return exclusions;
+    }
+
+    public void setExclusions(Set<String> exclusions) {
+        this.exclusions = exclusions;
+    }
+
+    private Set<String> exclusions = new HashSet<String>();
+
+    public int getMaxDepth() {
+        return maxDepth;
+    }
+
+    public void setSourceDirectory(String sourceDirectory) {
+        this.sourceDirectory = sourceDirectory;
+    }
+
+    public void setSourcePaths(List<String> sourcePaths) {
+        this.sourcePaths = sourcePaths;
+    }
+
+    public void setTargetDirectory(String targetDirectory) {
+        this.targetDirectory = targetDirectory;
+    }
+
+    @Override
+    public File getTargetDirectory() {
+        return new File(targetDirectory);
+    }
+
+    @Override
+    public Iterator<URL> getSource() {
+        if (null != sourceDirectory) {
+            return Collections.singleton(URLUtil.parseURL(sourceDirectory)).iterator();
+        }
+        List<URL> sourceURLs = new ArrayList<URL>();
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            for (String source : sourcePaths) {
+                sourceURLs.add(URLUtil.parseURL(source));
+            }
+        return sourceURLs.iterator();
+    }
+
+    public void setMaxDepth(int maxDepth) {
+        this.maxDepth = maxDepth;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGenerator.java b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGenerator.java
new file mode 100644
index 0000000..072e1b6
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGenerator.java
@@ -0,0 +1,317 @@
+package org.apache.streams.plugins.pig;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.google.common.base.Joiner;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+import org.apache.streams.plugins.pig.StreamsPigGenerationConfig;
+import org.apache.streams.schema.FieldType;
+import org.apache.streams.schema.FieldUtil;
+import org.apache.streams.schema.FileUtil;
+import org.apache.streams.schema.GenerationConfig;
+import org.apache.streams.schema.Schema;
+import org.apache.streams.schema.SchemaStore;
+import org.jsonschema2pojo.util.URLUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.streams.schema.FileUtil.dropExtension;
+import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.schema.FileUtil.swapExtension;
+import static org.apache.streams.schema.FileUtil.writeFile;
+
+public class StreamsPigResourceGenerator implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPigResourceGenerator.class);
+
+    private final static String LS = System.getProperty("line.separator");
+
+    private StreamsPigGenerationConfig config;
+
+    private SchemaStore schemaStore = new SchemaStore();
+
+    private int currentDepth = 0;
+
+    public static void main(String[] args) {
+        StreamsPigGenerationConfig config = new StreamsPigGenerationConfig();
+
+        String sourceDirectory = "src/main/jsonschema";
+        String targetDirectory = "target/generated-resources/pig-cli";
+
+        if (args.length > 0)
+            sourceDirectory = args[0];
+        if (args.length > 1)
+            targetDirectory = args[1];
+
+        config.setSourceDirectory(sourceDirectory);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsPigResourceGenerator streamsPigResourceGenerator = new StreamsPigResourceGenerator(config);
+        Thread thread = new Thread(streamsPigResourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public StreamsPigResourceGenerator(StreamsPigGenerationConfig config) {
+        this.config = config;
+    }
+
+    public void run() {
+
+        checkNotNull(config);
+
+        generate(config);
+
+    }
+
+    public void generate(StreamsPigGenerationConfig config) {
+
+        LinkedList<File> sourceFiles = new LinkedList<File>();
+
+        for (Iterator<URL> sources = config.getSource(); sources.hasNext(); ) {
+            URL source = sources.next();
+            sourceFiles.add(URLUtil.getFileFromURL(source));
+        }
+
+        LOGGER.info("Seeded with {} source paths:", sourceFiles.size());
+
+        FileUtil.resolveRecursive((GenerationConfig) config, sourceFiles);
+
+        LOGGER.info("Resolved {} schema files:", sourceFiles.size());
+
+        for (Iterator<File> iterator = sourceFiles.iterator(); iterator.hasNext(); ) {
+            File item = iterator.next();
+            schemaStore.create(item.toURI());
+        }
+
+        LOGGER.info("Identified {} objects:", schemaStore.getSize());
+
+        for (Iterator<Schema> schemaIterator = schemaStore.getSchemaIterator(); schemaIterator.hasNext(); ) {
+            Schema schema = schemaIterator.next();
+            currentDepth = 0;
+            if (schema.getURI().getScheme().equals("file")) {
+                String inputFile = schema.getURI().getPath();
+                String resourcePath = dropSourcePathPrefix(inputFile, config.getSourceDirectory());
+                for (String sourcePath : config.getSourcePaths()) {
+                    resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
+                }
+                String outputFile = config.getTargetDirectory() + "/" + swapExtension(resourcePath, "json", "pig");
+
+                LOGGER.info("Processing {}:", resourcePath);
+
+                String resourceId = schemaSymbol(schema);
+
+                String resourceContent = generateResource(schema, resourceId);
+
+                writeFile(outputFile, resourceContent);
+
+                LOGGER.info("Wrote {}:", outputFile);
+            }
+        }
+    }
+
+    public String generateResource(Schema schema, String resourceId) {
+        StringBuilder resourceBuilder = new StringBuilder();
+        resourceBuilder.append(pigEscape(resourceId));
+        resourceBuilder.append(" = ");
+        resourceBuilder.append("LOAD '' USING JsonLoader('");
+        resourceBuilder = appendRootObject(resourceBuilder, schema, resourceId, ':');
+        resourceBuilder.append("');");
+        return resourceBuilder.toString();
+    }
+
+    public StringBuilder appendRootObject(StringBuilder builder, Schema schema, String resourceId, Character seperator) {
+        ObjectNode propertiesNode = schemaStore.resolveProperties(schema, null, resourceId);
+        if (propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0) {
+            builder = appendPropertiesNode(builder, schema, propertiesNode, seperator);
+        }
+        return builder;
+    }
+
+    private StringBuilder appendPropertiesNode(StringBuilder builder, Schema schema, ObjectNode propertiesNode, Character seperator) {
+        checkNotNull(builder);
+        checkNotNull(propertiesNode);
+        Iterator<Map.Entry<String, JsonNode>> fields = propertiesNode.fields();
+        Joiner joiner = Joiner.on(", ").skipNulls();
+        List<String> fieldStrings = Lists.newArrayList();
+        for( ; fields.hasNext(); ) {
+            Map.Entry<String, JsonNode> field = fields.next();
+            String fieldId = field.getKey();
+            if( !config.getExclusions().contains(fieldId) && field.getValue().isObject()) {
+                ObjectNode fieldNode = (ObjectNode) field.getValue();
+                FieldType fieldType = FieldUtil.determineFieldType(fieldNode);
+                if (fieldType != null ) {
+                    switch (fieldType) {
+                        case ARRAY:
+                            ObjectNode itemsNode = FieldUtil.resolveItemsNode(fieldNode);
+                            if( itemsNode == null ) {
+                                ObjectNode resolvedItems = schemaStore.resolveProperties(schema, fieldNode, fieldId);
+                                itemsNode = FieldUtil.resolveItemsNode();
+                            }
+                            if( itemsNode != null && currentDepth <= config.getMaxDepth()) {
+                                StringBuilder arrayItemsBuilder = appendArrayItems(new StringBuilder(), schema, fieldId, itemsNode, seperator);
+                                if( !Strings.isNullOrEmpty(arrayItemsBuilder.toString())) {
+                                    fieldStrings.add(arrayItemsBuilder.toString());
+                                }
+                            }
+                            break;
+                        case OBJECT:
+                            ObjectNode childProperties = schemaStore.resolveProperties(schema, fieldNode, fieldId);
+                            if( currentDepth < config.getMaxDepth()) {
+                                StringBuilder structFieldBuilder = appendStructField(new StringBuilder(), schema, fieldId, childProperties, seperator);
+                                if( !Strings.isNullOrEmpty(structFieldBuilder.toString())) {
+                                    fieldStrings.add(structFieldBuilder.toString());
+                                }
+                            }
+                            break;
+                        default:
+                            StringBuilder valueFieldBuilder = appendValueField(new StringBuilder(), schema, fieldId, fieldType, seperator);
+                            if( !Strings.isNullOrEmpty(valueFieldBuilder.toString())) {
+                                fieldStrings.add(valueFieldBuilder.toString());
+                            }
+                    }
+                }
+            }
+        }
+        joiner.appendTo(builder, fieldStrings);
+        Preconditions.checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendValueField(StringBuilder builder, Schema schema, String fieldId, FieldType fieldType, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        builder.append(pigEscape(fieldId));
+        builder.append(seperator);
+        builder.append(pigType(fieldType));
+        return builder;
+    }
+
+    public StringBuilder appendArrayItems(StringBuilder builder, Schema schema, String fieldId, ObjectNode itemsNode, Character seperator) {
+        // not safe to append nothing
+        checkNotNull(builder);
+        if( itemsNode == null ) return builder;
+        FieldType itemType = FieldUtil.determineFieldType(itemsNode);
+        try {
+            switch( itemType ) {
+                case OBJECT:
+                    builder = appendArrayObject(builder, schema, fieldId, itemsNode, seperator);
+                    break;
+                case ARRAY:
+                    ObjectNode subArrayItems = (ObjectNode) itemsNode.get("items");
+                    builder = appendArrayItems(builder, schema, fieldId, subArrayItems, seperator);
+                    break;
+                default:
+                    builder = appendArrayField(builder, schema, fieldId, itemType, seperator);
+            }
+        } catch (Exception e) {
+            LOGGER.warn("No item type resolvable for {}", fieldId);
+        }
+
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendArrayField(StringBuilder builder, Schema schema, String fieldId, FieldType fieldType, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        checkNotNull(fieldId);
+        builder.append("{t: (");
+        builder.append(pigEscape(fieldId));
+        builder.append(seperator);
+        builder.append(pigType(fieldType));
+        builder.append(")}");
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendArrayObject(StringBuilder builder, Schema schema, String fieldId, ObjectNode fieldNode, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        checkNotNull(fieldId);
+        checkNotNull(fieldNode);
+        ObjectNode propertiesNode = schemaStore.resolveProperties(schema, fieldNode, fieldId);
+        if( propertiesNode.size() > 0 ) {
+            builder.append("{t: (");
+            builder = appendStructField(builder, schema, "", propertiesNode, ':');
+            builder.append(")}");
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private StringBuilder appendStructField(StringBuilder builder, Schema schema, String fieldId, ObjectNode propertiesNode, Character seperator) {
+        // safe to append nothing
+        checkNotNull(builder);
+        checkNotNull(propertiesNode);
+
+        if( propertiesNode != null && propertiesNode.isObject() && propertiesNode.size() > 0 ) {
+
+            currentDepth += 1;
+
+            if( !Strings.isNullOrEmpty(fieldId)) {
+                builder.append(pigEscape(fieldId));
+                builder.append(seperator);
+                builder.append("(");
+                builder = appendPropertiesNode(builder, schema, propertiesNode, ':');
+                builder.append(")");
+            }
+
+            currentDepth -= 1;
+
+        }
+        checkNotNull(builder);
+        return builder;
+    }
+
+    private static String pigEscape( String fieldId ) {
+        return fieldId;
+    }
+
+    private static String pigType( FieldType fieldType ) {
+        switch( fieldType ) {
+            case STRING:
+                return "chararray";
+            case INTEGER:
+                return "int";
+            case NUMBER:
+                return "double";
+            case OBJECT:
+                return "tuple";
+            default:
+                return fieldType.name().toLowerCase();
+        }
+    }
+
+    private String schemaSymbol( Schema schema ) {
+        if (schema == null) return null;
+        // this needs to return whatever
+        if (schema.getURI().getScheme().equals("file")) {
+            String inputFile = schema.getURI().getPath();
+            String resourcePath = dropSourcePathPrefix(inputFile, config.getSourceDirectory());
+            for (String sourcePath : config.getSourcePaths()) {
+                resourcePath = dropSourcePathPrefix(resourcePath, sourcePath);
+            }
+            return dropExtension(resourcePath).replace("/", "_").replace("-", "");
+        } else {
+            return "IDK";
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGeneratorMojo.java b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGeneratorMojo.java
new file mode 100644
index 0000000..4763b60
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/main/java/org/apache/streams/plugins/pig/StreamsPigResourceGeneratorMojo.java
@@ -0,0 +1,93 @@
+package org.apache.streams.plugins.pig;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.List;
+
+@Mojo(  name = "pig",
+        defaultPhase = LifecyclePhase.GENERATE_RESOURCES
+)
+@Execute(   goal = "pig",
+            phase = LifecyclePhase.GENERATE_RESOURCES
+)
+public class StreamsPigResourceGeneratorMojo extends AbstractMojo {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPigResourceGeneratorMojo.class);
+
+    private volatile MojoFailureException mojoFailureException;
+
+    @Component
+    private MavenProject project;
+
+//    @Component
+//    private Settings settings;
+//
+//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+//    protected ArtifactRepository localRepository;
+//
+//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
+//    private PluginDescriptor plugin;
+//
+    @Parameter( defaultValue = "${project.basedir}", readonly = true )
+    private File basedir;
+
+    @Parameter( defaultValue = "src/main/jsonschema", readonly = true ) // Maven 3 only
+    public String sourceDirectory;
+
+    @Parameter( readonly = true ) // Maven 3 only
+    public List<String> sourcePaths;
+
+    @Parameter(defaultValue = "target/generated-resources/pig", readonly = true)
+    public String targetDirectory;
+
+    public void execute() throws MojoExecutionException, MojoFailureException {
+
+        //addProjectDependenciesToClasspath();
+
+        StreamsPigGenerationConfig config = new StreamsPigGenerationConfig();
+
+        if( sourcePaths != null && sourcePaths.size() > 0)
+            config.setSourcePaths(sourcePaths);
+        else
+            config.setSourceDirectory(sourceDirectory);
+        config.setTargetDirectory(targetDirectory);
+
+        StreamsPigResourceGenerator streamsPigResourceGenerator = new StreamsPigResourceGenerator(config);
+
+        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
+            public void uncaughtException(Thread th, Throwable ex) {
+                LOGGER.error("Exception", ex);
+                mojoFailureException = new MojoFailureException("Exception", ex);
+            }
+        };
+        Thread.setDefaultUncaughtExceptionHandler(h);
+        Thread thread = new Thread(streamsPigResourceGenerator);
+        thread.setUncaughtExceptionHandler(h);
+        try {
+            thread.start();
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+            mojoFailureException = new MojoFailureException("Exception", e);
+        }
+
+        if( mojoFailureException != null )
+            throw mojoFailureException;
+
+        return;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/site/markdown/index.md b/streams-plugins/streams-plugin-pig/src/site/markdown/index.md
new file mode 100644
index 0000000..d0d4791
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/site/markdown/index.md
@@ -0,0 +1,22 @@
+org.apache.streams.plugins:streams-plugin-pig
+=============================================
+
+streams-plugin-pig generates resources from json schemas to assist with analysis of json data using Apache Pig.
+
+#### Usage
+
+Run within a module containing a src/main/jsonschema directory
+
+    mvn org.apache.streams.plugins:streams-plugin-pig:0.3-incubating-SNAPSHOT:pig
+
+Output will be placed in target/generated-resources/pig by default
+
+#### Example
+
+[streams-plugin-pig/pom.xml](streams-plugin-pig/pom.xml "streams-plugin-pig/pom.xml")
+
+#### Documentation
+
+[JavaDocs](apidocs/index.html "JavaDocs")
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorCLITest.java b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorCLITest.java
new file mode 100644
index 0000000..c94bca9
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorCLITest.java
@@ -0,0 +1,39 @@
+package org.apache.streams.plugins.pig.test;
+
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import org.apache.streams.plugins.pig.StreamsPigResourceGenerator;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+
+import static org.apache.streams.plugins.pig.test.StreamsPigResourceGeneratorTest.pigFilter;
+
+/**
+ * Created by sblackmon on 5/5/16.
+ */
+public class StreamsPigResourceGeneratorCLITest {
+
+    @Test
+    public void testStreamsPigResourceGeneratorCLI() throws Exception {
+
+        String sourceDirectory = "target/test-classes/streams-schemas";
+        String targetDirectory = "target/generated-resources/hive-cli";
+
+        List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);
+        StreamsPigResourceGenerator.main(argsList.toArray(new String[0]));
+
+        File testOutput = new File(targetDirectory);
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(pigFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorMojoTest.java
new file mode 100644
index 0000000..401c506
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorMojoTest.java
@@ -0,0 +1,64 @@
+package org.apache.streams.plugins.pig.test;
+
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import junit.framework.TestCase;
+import org.apache.maven.it.Verifier;
+import org.apache.maven.it.util.ResourceExtractor;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import static org.apache.streams.plugins.pig.test.StreamsPigResourceGeneratorTest.pigFilter;
+
+/**
+ * Tests that streams-plugin-hive running via maven generates hql resources
+ */
+public class StreamsPigResourceGeneratorMojoTest extends TestCase {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPigResourceGeneratorMojoTest.class);
+
+    protected void setUp() throws Exception
+    {
+        // required for mojo lookups to work
+        super.setUp();
+    }
+
+
+    @Test
+    public void testStreamsHiveResourceGeneratorMojo() throws Exception {
+
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/streams-plugin-pig" );
+
+        Verifier verifier;
+
+        verifier = new Verifier( testDir.getAbsolutePath() );
+
+        List cliOptions = new ArrayList();
+        cliOptions.add( "-N" );
+        verifier.executeGoals( Lists.<String>newArrayList(
+                "clean",
+                "dependency:unpack-dependencies",
+                "generate-resources"));
+
+        verifier.verifyErrorFreeLog();
+
+        verifier.resetStreams();
+
+        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-resources/test-mojo");
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(pigFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorTest.java b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorTest.java
new file mode 100644
index 0000000..a1ab281
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorTest.java
@@ -0,0 +1,122 @@
+package org.apache.streams.plugins.pig.test;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.google.common.io.Files;
+import org.apache.commons.io.FileUtils;
+import org.apache.streams.plugins.pig.StreamsPigGenerationConfig;
+import org.apache.streams.plugins.pig.StreamsPigResourceGenerator;
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.annotation.Nullable;
+import java.io.File;
+import java.util.Collection;
+import java.util.Iterator;
+
+import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+
+/**
+ * Test that Activity beans are compatible with the example activities in the spec.
+ */
+public class StreamsPigResourceGeneratorTest {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPigResourceGeneratorTest.class);
+
+    public static final Predicate<File> pigFilter = new Predicate<File>() {
+        @Override
+        public boolean apply(@Nullable File file) {
+            if( file.getName().endsWith(".pig") )
+                return true;
+            else return false;
+        }
+    };
+
+    /**
+     * Tests that all example activities can be loaded into Activity beans
+     *
+     * @throws Exception
+     */
+    @Test
+    public void StreamsPigResourceGenerator() throws Exception {
+
+        StreamsPigGenerationConfig config = new StreamsPigGenerationConfig();
+
+        String sourceDirectory = "target/test-classes/streams-schemas";
+
+        config.setSourceDirectory(sourceDirectory);
+
+        config.setTargetDirectory("target/generated-sources/test");
+
+        config.setExclusions(Sets.newHashSet("attachments"));
+
+        config.setMaxDepth(2);
+
+        StreamsPigResourceGenerator streamsPigResourceGenerator = new StreamsPigResourceGenerator(config);
+        Thread thread = new Thread(streamsPigResourceGenerator);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+
+        File testOutput = new File( "./target/generated-sources/test");
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(pigFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() == 133 );
+
+        String expectedDirectory = "target/test-classes/expected";
+        File testExpected = new File( expectedDirectory );
+
+        Iterable<File> expectedIterator = Files.fileTreeTraverser().breadthFirstTraversal(testExpected)
+                .filter(pigFilter);
+        Collection<File> expectedCollection = Lists.newArrayList(expectedIterator);
+
+        int fails = 0;
+
+        Iterator<File> iterator = expectedCollection.iterator();
+        while( iterator.hasNext() ) {
+            File objectExpected = iterator.next();
+            String expectedEnd = dropSourcePathPrefix(objectExpected.getAbsolutePath(),  expectedDirectory);
+            File objectActual = new File(config.getTargetDirectory() + "/" + expectedEnd);
+            LOGGER.info("Comparing: {} and {}", objectExpected.getAbsolutePath(), objectActual.getAbsolutePath());
+            assert( objectActual.exists());
+            if( FileUtils.contentEquals(objectActual, objectExpected) == true ) {
+                LOGGER.info("Exact Match!");
+            } else {
+                LOGGER.info("No Match!");
+                fails++;
+            }
+        }
+        if( fails > 0 ) {
+            LOGGER.info("Fails: {}", fails);
+            Assert.fail();
+        }
+
+
+//        assert( new File(testOutput + "/traits").exists() == true );
+//        assert( new File(testOutput + "/traits").isDirectory() == true );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
+//        assert( new File(testOutput + "/objectTypes").exists() == true );
+//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
+//        assert( new File(testOutput + "/verbs").exists() == true );
+//        assert( new File(testOutput + "/verbs").isDirectory() == true );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
+//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/test/resources/expected/media_link.pig
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/resources/expected/media_link.pig b/streams-plugins/streams-plugin-pig/src/test/resources/expected/media_link.pig
new file mode 100644
index 0000000..643686e
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/test/resources/expected/media_link.pig
@@ -0,0 +1 @@
+media_link = LOAD '' USING JsonLoader('duration:double, height:int, width:int, url:chararray');
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/test/resources/expected/objectTypes/file.pig
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/resources/expected/objectTypes/file.pig b/streams-plugins/streams-plugin-pig/src/test/resources/expected/objectTypes/file.pig
new file mode 100644
index 0000000..9aa8d63
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/test/resources/expected/objectTypes/file.pig
@@ -0,0 +1 @@
+objectTypes_file = LOAD '' USING JsonLoader('id:chararray, image:(duration:double, height:int, width:int, url:chararray), displayName:chararray, summary:chararray, content:chararray, url:chararray, objectType:chararray, author:(id:chararray, image:(duration:double, height:int, width:int, url:chararray), displayName:chararray, summary:chararray, content:chararray, url:chararray, objectType:chararray, author:(id:chararray, displayName:chararray, summary:chararray, content:chararray, url:chararray, objectType:chararray, published:chararray, updated:chararray, {t: (upstreamDuplicates:chararray)}, {t: (downstreamDuplicates:chararray)}), published:chararray, updated:chararray, {t: (upstreamDuplicates:chararray)}, {t: (downstreamDuplicates:chararray)}), published:chararray, updated:chararray, {t: (upstreamDuplicates:chararray)}, {t: (downstreamDuplicates:chararray)}, fileUrl:chararray, mimeType:chararray');
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/test/resources/expected/objectTypes/photo-album.pig
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/resources/expected/objectTypes/photo-album.pig b/streams-plugins/streams-plugin-pig/src/test/resources/expected/objectTypes/photo-album.pig
new file mode 100644
index 0000000..83b150f
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/test/resources/expected/objectTypes/photo-album.pig
@@ -0,0 +1 @@
+objectTypes_photoalbum = LOAD '' USING JsonLoader('objectType:chararray, {t: ()}');
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pig/src/test/resources/streams-plugin-pig/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/resources/streams-plugin-pig/pom.xml b/streams-plugins/streams-plugin-pig/src/test/resources/streams-plugin-pig/pom.xml
new file mode 100644
index 0000000..7027446
--- /dev/null
+++ b/streams-plugins/streams-plugin-pig/src/test/resources/streams-plugin-pig/pom.xml
@@ -0,0 +1,75 @@
+<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>
+
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-pig-test</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>jar</packaging>
+    <name>Test StreamsPigResourceGeneratorMojo</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schemas</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.streams.plugins</groupId>
+                <artifactId>streams-plugin-pig</artifactId>
+                <version>0.3-incubating-SNAPSHOT</version>
+                <configuration>
+                    <sourcePaths>
+                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                    </sourcePaths>
+                    <targetDirectory>target/generated-resources/test-mojo</targetDirectory>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>pig</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.10</version>
+                <configuration>
+                    <includes>**/*.json</includes>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <includeGroupIds>org.apache.streams</includeGroupIds>
+                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeTypes>jar,test-jar</includeTypes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>unpack-schemas</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/pom.xml b/streams-plugins/streams-plugin-pojo/pom.xml
index d7210c8..bfa3480 100644
--- a/streams-plugins/streams-plugin-pojo/pom.xml
+++ b/streams-plugins/streams-plugin-pojo/pom.xml
@@ -64,13 +64,6 @@
             <version>0.4.10</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.streams</groupId>
-            <artifactId>streams-pojo</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
             <groupId>org.reflections</groupId>
             <artifactId>reflections</artifactId>
             <version>0.9.9</version>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
index d80123d..f7b6617 100644
--- a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
+++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
@@ -1,26 +1,14 @@
 package org.apache.streams.plugins;
 
 import com.google.common.base.Preconditions;
-import org.apache.maven.artifact.DependencyResolutionRequiredException;
-import org.apache.maven.plugin.MojoExecutionException;
 import org.jsonschema2pojo.Jsonschema2Pojo;
-import org.jsonschema2pojo.maven.ProjectClasspath;
-import org.jsonschema2pojo.util.URLUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
-import java.io.IOException;
-import java.net.URL;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.nio.file.StandardOpenOption;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import static org.apache.commons.lang.StringUtils.isNotBlank;
 
 /**
  * Created by sblackmon on 4/20/16.
@@ -31,11 +19,9 @@ public class StreamsPojoSourceGenerator implements Runnable {
 
     private final static String LS = System.getProperty("line.separator");
 
-    private StreamsPojoSourceGeneratorMojo mojo;
-
     private StreamsPojoGenerationConfig config;
 
-    public void main(String[] args) {
+    public static void main(String[] args) {
         StreamsPojoGenerationConfig config = new StreamsPojoGenerationConfig();
 
         String sourceDirectory = "./target/test-classes/activities";

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
index 9d595fe..8cf1697 100644
--- a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
+++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
@@ -3,6 +3,7 @@ package org.apache.streams.plugins;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -39,6 +40,8 @@ public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoSourceGeneratorMojo.class);
 
+    private volatile MojoFailureException mojoFailureException;
+
     @Component
     public MavenProject project;
 
@@ -67,7 +70,7 @@ public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
     @Parameter(readonly = true)
     public String targetPackage;
 
-    public void execute() throws MojoExecutionException {
+    public void execute() throws MojoExecutionException, MojoFailureException {
 
         addProjectDependenciesToClasspath();
 
@@ -81,38 +84,30 @@ public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
         config.setTargetDirectory(targetDirectory);
 
         StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator(config);
+
+        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
+            public void uncaughtException(Thread th, Throwable ex) {
+                LOGGER.error("Exception", ex);
+                mojoFailureException = new MojoFailureException("Exception", ex);
+            }
+        };
+        Thread.setDefaultUncaughtExceptionHandler(h);
         Thread thread = new Thread(streamsPojoSourceGenerator);
-        thread.start();
+        thread.setUncaughtExceptionHandler(h);
         try {
+            thread.start();
             thread.join();
         } catch (InterruptedException e) {
             LOGGER.error("InterruptedException", e);
         } catch (Exception e) {
             LOGGER.error("Exception", e);
+            throw new MojoFailureException("Exception", e);
         }
-        return;
 
-//        List<Class<?>> serializableClasses = detectSerializableClasses();
-//
-//        LOGGER.info("Detected {} serialiables:", serializableClasses.size());
-//        for( Class clazz : serializableClasses )
-//            LOGGER.debug(clazz.toString());
-//
-//        List<Class<?>> pojoClasses = detectPojoClasses(serializableClasses);
-//
-//        LOGGER.info("Detected {} pojos:", pojoClasses.size());
-//        for( Class clazz : pojoClasses ) {
-//            LOGGER.debug(clazz.toString());
-//
-//        }
-//
-//
-//        for( Class clazz : pojoClasses ) {
-//            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".hive").replace(".","/")+"/";
-//            String pojoName = clazz.getSimpleName()+".hql";
-//            String pojoHive = renderPojo(clazz);
-//            writeFile(outDir+"/"+pojoPath+pojoName, pojoHive);
-//        }
+        if( mojoFailureException != null )
+            throw mojoFailureException;
+
+        return;
 
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pojo/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/site/markdown/index.md b/streams-plugins/streams-plugin-pojo/src/site/markdown/index.md
new file mode 100644
index 0000000..d1bd848
--- /dev/null
+++ b/streams-plugins/streams-plugin-pojo/src/site/markdown/index.md
@@ -0,0 +1,22 @@
+org.apache.streams.plugins:streams-plugin-pojo
+==============================================
+
+streams-plugin-pojo generates source files from json schemas suitable for writing Apache Streams components and libraries in Java.
+
+#### Usage
+
+Run within a module containing a src/main/jsonschema directory
+
+    mvn org.apache.streams.plugins:streams-plugin-pojo:0.3-incubating-SNAPSHOT:pojo
+
+Output will be placed in target/generated-sources/pojo by default
+
+#### Example
+
+[streams-plugin-pojo/pom.xml](streams-plugin-pojo/pom.xml "streams-plugin-pojo/pom.xml")
+
+#### Documentation
+
+[JavaDocs](apidocs/index.html "JavaDocs")
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorCLITest.java b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorCLITest.java
new file mode 100644
index 0000000..f808b28
--- /dev/null
+++ b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorCLITest.java
@@ -0,0 +1,43 @@
+package org.apache.streams.plugins.test;
+
+import com.google.common.collect.Lists;
+import com.google.common.io.Files;
+import org.apache.streams.plugins.StreamsPojoSourceGenerator;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.List;
+
+import static org.apache.streams.plugins.test.StreamsPojoSourceGeneratorTest.javaFilter;
+
+/**
+ * Created by sblackmon on 5/5/16.
+ */
+public class StreamsPojoSourceGeneratorCLITest {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoSourceGeneratorTest.class);
+
+    @Test
+    public void testStreamsPojoSourceGeneratorCLI() throws Exception {
+
+        String sourceDirectory = "target/test-classes/streams-schemas";
+        String targetDirectory = "target/generated-sources/test-cli";
+
+        List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);
+        StreamsPojoSourceGenerator.main(argsList.toArray(new String[0]));
+
+        File testOutput = new File(targetDirectory);
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(javaFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() > 133 );
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/95a02d71/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
index a99f059..1968d90 100644
--- a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
+++ b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
@@ -1,24 +1,25 @@
 package org.apache.streams.plugins.test;
 
 import com.google.common.collect.Lists;
+import com.google.common.io.Files;
 import junit.framework.TestCase;
 import org.apache.maven.it.Verifier;
 import org.apache.maven.it.util.ResourceExtractor;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.streams.plugins.StreamsPojoGenerationConfig;
-import org.apache.streams.plugins.StreamsPojoSourceGenerator;
-import org.apache.streams.plugins.StreamsPojoSourceGeneratorMojo;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
-import java.io.FileFilter;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
+import static org.apache.streams.plugins.test.StreamsPojoSourceGeneratorTest.javaFilter;
+
 /**
- * Test that Activity beans are compatible with the example activities in the spec.
+ * Tests that streams-plugin-pojo running via maven can convert activity schemas into pojos
+ * which then compile.
  */
 public class StreamsPojoSourceGeneratorMojoTest extends TestCase {
 
@@ -30,12 +31,7 @@ public class StreamsPojoSourceGeneratorMojoTest extends TestCase {
         super.setUp();
     }
 
-    /**
-     * Tests that streams-plugin-pojo running via maven can convert activity schemas into pojos
-     * which then compile.
-     *
-     * @throws Exception
-     */
+
     @Test
     public void testStreamsPojoSourceGeneratorMojo() throws Exception {
 
@@ -56,41 +52,17 @@ public class StreamsPojoSourceGeneratorMojoTest extends TestCase {
         verifier.verifyErrorFreeLog();
 
         verifier.resetStreams();
-//
-//        File pom = getTestFile(  );
-//        assertNotNull( pom );
-//        assertTrue( pom.exists() );
-//
-//        StreamsPojoSourceGeneratorMojo myMojo = (StreamsPojoSourceGeneratorMojo)
-//                lookupMojo( "pojo", pom);
-//        assertNotNull( myMojo );
-//        myMojo.execute();
-//
-//        File testOutput = new File( "target/generated-sources/test-mojo");
-//        FileFilter javaFilter = new FileFilter() {
-//            @Override
-//            public boolean accept(File pathname) {
-//            if( pathname.getName().endsWith(".java") )
-//                return true;
-//            return false;
-//            }
-//        };
-//
-//        assert( testOutput != null );
-//        assert( testOutput.exists() == true );
-//        assert( testOutput.isDirectory() == true );
-//        assert( testOutput.listFiles(javaFilter).length == 11 );
-//        assert( new File(testOutput + "/traits").exists() == true );
-//        assert( new File(testOutput + "/traits").isDirectory() == true );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
-//        assert( new File(testOutput + "/objectTypes").exists() == true );
-//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
-//        assert( new File(testO`utput + "/verbs").exists() == true );
-//        assert( new File(testOutput + "/verbs").isDirectory() == true );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
+
+        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-sources/test-mojo");
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+                .filter(javaFilter);
+        Collection<File> outputCollection = Lists.newArrayList(outputIterator);
+        assert( outputCollection.size() > 133 );
+
     }
 }
\ No newline at end of file


[30/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pig/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/site/markdown/index.md b/streams-plugins/streams-plugin-pig/src/site/markdown/index.md
index d0d4791..5ab4375 100644
--- a/streams-plugins/streams-plugin-pig/src/site/markdown/index.md
+++ b/streams-plugins/streams-plugin-pig/src/site/markdown/index.md
@@ -3,17 +3,33 @@ org.apache.streams.plugins:streams-plugin-pig
 
 streams-plugin-pig generates resources from json schemas to assist with analysis of json data using Apache Pig.
 
-#### Usage
+### Usage
+
+Output will be placed in target/generated-resources/pig by default
+
+##### Maven
 
 Run within a module containing a src/main/jsonschema directory
 
     mvn org.apache.streams.plugins:streams-plugin-pig:0.3-incubating-SNAPSHOT:pig
 
-Output will be placed in target/generated-resources/pig by default
+[streams-plugin-pig/pom.xml](streams-plugin-pig/pom.xml "streams-plugin-pig/pom.xml")
 
-#### Example
+##### SDK
 
-[streams-plugin-pig/pom.xml](streams-plugin-pig/pom.xml "streams-plugin-pig/pom.xml")
+Embed within your own java code
+
+    StreamsPigGenerationConfig config = new StreamsPigGenerationConfig();
+    config.setSourceDirectory("src/main/jsonschema");
+    config.setTargetDirectory("target/generated-resources");
+    StreamsPigGenerationConfig generator = new StreamsPigGenerationConfig(config);
+    generator.run();
+  
+##### CLI
+
+Run from CLI without Maven
+
+    java -jar streams-plugin-pig-jar-with-dependencies.jar StreamsPigResourceGenerator src/main/jsonschema target/generated-resources
 
 #### Documentation
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorCLITest.java b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorCLITest.java
index c94bca9..8190d50 100644
--- a/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorCLITest.java
+++ b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorCLITest.java
@@ -19,8 +19,8 @@ public class StreamsPigResourceGeneratorCLITest {
     @Test
     public void testStreamsPigResourceGeneratorCLI() throws Exception {
 
-        String sourceDirectory = "target/test-classes/streams-schemas";
-        String targetDirectory = "target/generated-resources/hive-cli";
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
+        String targetDirectory = "target/generated-resources/pig-cli";
 
         List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);
         StreamsPigResourceGenerator.main(argsList.toArray(new String[0]));

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorMojoTest.java
index 401c506..76c4eb2 100644
--- a/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorMojoTest.java
+++ b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorMojoTest.java
@@ -31,7 +31,7 @@ public class StreamsPigResourceGeneratorMojoTest extends TestCase {
 
 
     @Test
-    public void testStreamsHiveResourceGeneratorMojo() throws Exception {
+    public void testStreamsPigResourceGeneratorMojo() throws Exception {
 
         File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/streams-plugin-pig" );
 
@@ -50,7 +50,7 @@ public class StreamsPigResourceGeneratorMojoTest extends TestCase {
 
         verifier.resetStreams();
 
-        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-resources/test-mojo");
+        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-resources/pig-mojo");
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorTest.java b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorTest.java
index a1ab281..98442ad 100644
--- a/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorTest.java
+++ b/streams-plugins/streams-plugin-pig/src/test/java/org/apache/streams/plugins/pig/test/StreamsPigResourceGeneratorTest.java
@@ -17,7 +17,7 @@ import java.io.File;
 import java.util.Collection;
 import java.util.Iterator;
 
-import static org.apache.streams.schema.FileUtil.dropSourcePathPrefix;
+import static org.apache.streams.util.schema.FileUtil.dropSourcePathPrefix;
 
 /**
  * Test that Activity beans are compatible with the example activities in the spec.
@@ -45,28 +45,20 @@ public class StreamsPigResourceGeneratorTest {
 
         StreamsPigGenerationConfig config = new StreamsPigGenerationConfig();
 
-        String sourceDirectory = "target/test-classes/streams-schemas";
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
 
         config.setSourceDirectory(sourceDirectory);
 
-        config.setTargetDirectory("target/generated-sources/test");
+        config.setTargetDirectory("target/generated-resources/pig");
 
         config.setExclusions(Sets.newHashSet("attachments"));
 
         config.setMaxDepth(2);
 
         StreamsPigResourceGenerator streamsPigResourceGenerator = new StreamsPigResourceGenerator(config);
-        Thread thread = new Thread(streamsPigResourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
+        streamsPigResourceGenerator.run();
 
-        File testOutput = new File( "./target/generated-sources/test");
+        File testOutput = config.getTargetDirectory();
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );
@@ -104,19 +96,5 @@ public class StreamsPigResourceGeneratorTest {
             LOGGER.info("Fails: {}", fails);
             Assert.fail();
         }
-
-
-//        assert( new File(testOutput + "/traits").exists() == true );
-//        assert( new File(testOutput + "/traits").isDirectory() == true );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
-//        assert( new File(testOutput + "/objectTypes").exists() == true );
-//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
-//        assert( new File(testOutput + "/verbs").exists() == true );
-//        assert( new File(testOutput + "/verbs").isDirectory() == true );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pig/src/test/resources/streams-plugin-pig/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pig/src/test/resources/streams-plugin-pig/pom.xml b/streams-plugins/streams-plugin-pig/src/test/resources/streams-plugin-pig/pom.xml
index 7027446..f3976fa 100644
--- a/streams-plugins/streams-plugin-pig/src/test/resources/streams-plugin-pig/pom.xml
+++ b/streams-plugins/streams-plugin-pig/src/test/resources/streams-plugin-pig/pom.xml
@@ -18,9 +18,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-schema-activitystreams</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
+            <type>test-jar</type>
         </dependency>
     </dependencies>
 
@@ -32,19 +33,19 @@
                 <version>0.3-incubating-SNAPSHOT</version>
                 <configuration>
                     <sourcePaths>
-                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/verbs</sourcePath>
                     </sourcePaths>
-                    <targetDirectory>target/generated-resources/test-mojo</targetDirectory>
+                    <targetDirectory>target/generated-resources/pig-mojo</targetDirectory>
                 </configuration>
                 <executions>
                     <execution>
                         <goals>
-                            <goal>pig</goal>
+                            <goal>generate-resources</goal>
                         </goals>
                     </execution>
                 </executions>
@@ -55,9 +56,9 @@
                 <version>2.10</version>
                 <configuration>
                     <includes>**/*.json</includes>
-                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                     <includeGroupIds>org.apache.streams</includeGroupIds>
-                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                     <includeTypes>jar,test-jar</includeTypes>
                 </configuration>
                 <executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/pom.xml b/streams-plugins/streams-plugin-pojo/pom.xml
index bfa3480..da7c0b2 100644
--- a/streams-plugins/streams-plugin-pojo/pom.xml
+++ b/streams-plugins/streams-plugin-pojo/pom.xml
@@ -44,10 +44,17 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-util</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schema-activitystreams</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.jsonschema2pojo</groupId>
             <artifactId>jsonschema2pojo-core</artifactId>
             <version>0.4.10</version>
@@ -224,9 +231,9 @@
                 <artifactId>maven-dependency-plugin</artifactId>
                 <configuration>
                     <includes>**/*.json</includes>
-                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                     <includeGroupIds>org.apache.streams</includeGroupIds>
-                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                     <includeTypes>jar,test-jar</includeTypes>
                 </configuration>
                 <executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
index f7b6617..504eb80 100644
--- a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
+++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGenerator.java
@@ -25,7 +25,7 @@ public class StreamsPojoSourceGenerator implements Runnable {
         StreamsPojoGenerationConfig config = new StreamsPojoGenerationConfig();
 
         String sourceDirectory = "./target/test-classes/activities";
-        String targetDirectory = "./target/generated-sources/streams-plugin-pojo";
+        String targetDirectory = "./target/generated-sources/pojo";
         String targetPackage = "";
 
         if( args.length > 0 )
@@ -40,15 +40,8 @@ public class StreamsPojoSourceGenerator implements Runnable {
         config.setTargetDirectory(targetDirectory);
 
         StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator(config);
-        Thread thread = new Thread(streamsPojoSourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
+        streamsPojoSourceGenerator.run();
+
         return;
     }
 
@@ -68,8 +61,6 @@ public class StreamsPojoSourceGenerator implements Runnable {
         }
     }
 
-
-
     private void writeFile(String pojoFile, String pojoHive) {
         try {
             File path = new File(pojoFile);

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
index 8cf1697..2a4978a 100644
--- a/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
+++ b/streams-plugins/streams-plugin-pojo/src/main/java/org/apache/streams/plugins/StreamsPojoSourceGeneratorMojo.java
@@ -30,10 +30,10 @@ import java.util.List;
 
 import static org.apache.commons.lang.StringUtils.isNotBlank;
 
-@Mojo(  name = "pojo",
+@Mojo(  name = "generate-sources",
         defaultPhase = LifecyclePhase.GENERATE_SOURCES
 )
-@Execute(   goal = "pojo",
+@Execute(   goal = "generate-sources",
             phase = LifecyclePhase.GENERATE_SOURCES
 )
 public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
@@ -45,16 +45,6 @@ public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
     @Component
     public MavenProject project;
 
-//    @Component
-//    private Settings settings;
-//
-//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
-//    protected ArtifactRepository localRepository;
-//
-//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
-//    private PluginDescriptor plugin;
-//
-
     @Parameter( defaultValue = "${project.basedir}", readonly = true )
     public File basedir;
 
@@ -64,7 +54,7 @@ public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
     @Parameter( readonly = true ) // Maven 3 only
     public List<String> sourcePaths;
 
-    @Parameter(defaultValue = "./target/generated-sources/streams-plugin-pojo", readonly = true)
+    @Parameter(defaultValue = "./target/generated-sources/pojo", readonly = true)
     public String targetDirectory;
 
     @Parameter(readonly = true)
@@ -84,30 +74,7 @@ public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
         config.setTargetDirectory(targetDirectory);
 
         StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator(config);
-
-        Thread.UncaughtExceptionHandler h = new Thread.UncaughtExceptionHandler() {
-            public void uncaughtException(Thread th, Throwable ex) {
-                LOGGER.error("Exception", ex);
-                mojoFailureException = new MojoFailureException("Exception", ex);
-            }
-        };
-        Thread.setDefaultUncaughtExceptionHandler(h);
-        Thread thread = new Thread(streamsPojoSourceGenerator);
-        thread.setUncaughtExceptionHandler(h);
-        try {
-            thread.start();
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-            throw new MojoFailureException("Exception", e);
-        }
-
-        if( mojoFailureException != null )
-            throw mojoFailureException;
-
-        return;
+        streamsPojoSourceGenerator.run();
 
     }
 
@@ -125,117 +92,4 @@ public class StreamsPojoSourceGeneratorMojo extends AbstractMojo {
 
     }
 
-//    public List<Class<?>> detectSerializableClasses() {
-//
-//        Set<Class<? extends Serializable>> classes =
-//                reflections.getSubTypesOf(java.io.Serializable.class);
-//
-//        List<Class<?>> result = Lists.newArrayList();
-//
-//        for( Class clazz : classes ) {
-//            result.add(clazz);
-//        }
-//
-//        return result;
-//    }
-//
-//    public List<Class<?>> detectPojoClasses(List<Class<?>> classes) {
-//
-//        List<Class<?>> result = Lists.newArrayList();
-//
-//        for( Class clazz : classes ) {
-//            try {
-//                clazz.newInstance().toString();
-//            } catch( Exception e) {}
-//            // super-halfass way to know if this is a jsonschema2pojo
-//            if( clazz.getAnnotations().length >= 1 )
-//                result.add(clazz);
-//        }
-//
-//        return result;
-//    }
-//
-//    public String renderPojo(Class<?> pojoClass) {
-//        StringBuffer stringBuffer = new StringBuffer();
-//        stringBuffer.append("CREATE TABLE ");
-//        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".hive"));
-//        stringBuffer.append(LS);
-//        stringBuffer.append("(");
-//        stringBuffer.append(LS);
-//
-//        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
-//        appendFields(stringBuffer, fields, "", ",");
-//
-//        stringBuffer.append(")");
-//
-//        return stringBuffer.toString();
-//    }
-//
-//    private void appendFields(StringBuffer stringBuffer, Set<Field> fields, String varDef, String fieldDelimiter) {
-//        if( fields.size() > 0 ) {
-//            stringBuffer.append(LS);
-//            Map<String,Field> fieldsToAppend = uniqueFields(fields);
-//            for( Iterator<Field> iter = fieldsToAppend.values().iterator(); iter.hasNext(); ) {
-//                Field field = iter.next();
-//                stringBuffer.append(name(field));
-//                stringBuffer.append(": ");
-//                stringBuffer.append(type(field));
-//                if( iter.hasNext()) stringBuffer.append(fieldDelimiter);
-//                stringBuffer.append(LS);
-//            }
-//        } else {
-//            stringBuffer.append(LS);
-//        }
-//    }
-//
-//    private String value(Field field) {
-//        if( field.getName().equals("verb")) {
-//            return "\"post\"";
-//        } else if( field.getName().equals("objectType")) {
-//            return "\"application\"";
-//        } else return null;
-//    }
-//
-//    private String type(Field field) {
-//        if( field.getType().equals(java.lang.String.class)) {
-//            return "STRING";
-//        } else if( field.getType().equals(java.lang.Integer.class)) {
-//            return "INT";
-//        } else if( field.getType().equals(org.joda.time.DateTime.class)) {
-//            return "DATE";
-//        }else if( field.getType().equals(java.util.Map.class)) {
-//            return "MAP";
-//        } else if( field.getType().equals(java.util.List.class)) {
-//            return "ARRAY";
-//        }
-//        return field.getType().getCanonicalName().replace(".pojo.json", ".scala");
-//    }
-//
-//    private Map<String,Field> uniqueFields(Set<Field> fieldset) {
-//        Map<String,Field> fields = Maps.newTreeMap();
-//        Field item = null;
-//        for( Iterator<Field> it = fieldset.iterator(); it.hasNext(); item = it.next() ) {
-//            if( item != null && item.getName() != null ) {
-//                Field added = fields.put(item.getName(), item);
-//            }
-//            // ensure right class will get used
-//        }
-//        return fields;
-//    }
-//
-//    private String name(Field field) {
-//        if( field.getName().equals("object"))
-//            return "obj";
-//        else return field.getName();
-//    }
-//
-//    private boolean override(Field field) {
-//        try {
-//            if( field.getDeclaringClass().getSuperclass().getField(field.getName()) != null )
-//                return true;
-//            else return false;
-//        } catch( Exception e ) {
-//            return false;
-//        }
-//    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pojo/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/site/markdown/index.md b/streams-plugins/streams-plugin-pojo/src/site/markdown/index.md
index d1bd848..996fa86 100644
--- a/streams-plugins/streams-plugin-pojo/src/site/markdown/index.md
+++ b/streams-plugins/streams-plugin-pojo/src/site/markdown/index.md
@@ -3,17 +3,33 @@ org.apache.streams.plugins:streams-plugin-pojo
 
 streams-plugin-pojo generates source files from json schemas suitable for writing Apache Streams components and libraries in Java.
 
-#### Usage
+### Usage
+
+Output will be placed in target/generated-sources/pojo by default
+
+##### Maven
 
 Run within a module containing a src/main/jsonschema directory
 
     mvn org.apache.streams.plugins:streams-plugin-pojo:0.3-incubating-SNAPSHOT:pojo
 
-Output will be placed in target/generated-sources/pojo by default
+[streams-plugin-pojo/pom.xml](streams-plugin-pojo/pom.xml "streams-plugin-pojo/pom.xml")
 
-#### Example
+##### SDK
 
-[streams-plugin-pojo/pom.xml](streams-plugin-pojo/pom.xml "streams-plugin-pojo/pom.xml")
+Embed within your own java code
+
+    StreamsPojoGenerationConfig config = new StreamsPojoGenerationConfig();
+    config.setSourceDirectory("src/main/jsonschema");
+    config.setTargetDirectory("target/generated-resources");
+    StreamsPojoSourceGenerator generator = new StreamsPojoSourceGenerator(config);
+    generator.run();
+  
+##### CLI
+
+Run from CLI without Maven
+
+    java -jar streams-plugin-pojo-jar-with-dependencies.jar StreamsPojoSourceGenerator src/main/jsonschema target/generated-sources
 
 #### Documentation
 

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorCLITest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorCLITest.java b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorCLITest.java
index f808b28..07049ed 100644
--- a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorCLITest.java
+++ b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorCLITest.java
@@ -23,7 +23,7 @@ public class StreamsPojoSourceGeneratorCLITest {
     @Test
     public void testStreamsPojoSourceGeneratorCLI() throws Exception {
 
-        String sourceDirectory = "target/test-classes/streams-schemas";
+        String sourceDirectory = "target/test-classes/streams-schema-activitystreams";
         String targetDirectory = "target/generated-sources/test-cli";
 
         List<String> argsList = Lists.newArrayList(sourceDirectory, targetDirectory);

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
index 1968d90..41d762d 100644
--- a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
+++ b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorMojoTest.java
@@ -53,7 +53,7 @@ public class StreamsPojoSourceGeneratorMojoTest extends TestCase {
 
         verifier.resetStreams();
 
-        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-sources/test-mojo");
+        File testOutput = new File(testDir.getAbsolutePath() + "/target/generated-sources/pojo-mojo");
 
         assert( testOutput != null );
         assert( testOutput.exists() == true );

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
index 8d904af..6e7400e 100644
--- a/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
+++ b/streams-plugins/streams-plugin-pojo/src/test/java/org/apache/streams/plugins/test/StreamsPojoSourceGeneratorTest.java
@@ -43,53 +43,30 @@ public class StreamsPojoSourceGeneratorTest {
         StreamsPojoGenerationConfig config = new StreamsPojoGenerationConfig();
 
         List<String> sourcePaths = Lists.newArrayList(
-            "target/test-classes/streams-schemas/activity.json",
-            "target/test-classes/streams-schemas/collection.json",
-            "target/test-classes/streams-schemas/media_link.json",
-            "target/test-classes/streams-schemas/object.json",
-            "target/test-classes/streams-schemas/objectTypes",
-            "target/test-classes/streams-schemas/verbs"
+            "target/test-classes/streams-schema-activitystreams/activity.json",
+            "target/test-classes/streams-schema-activitystreams/collection.json",
+            "target/test-classes/streams-schema-activitystreams/media_link.json",
+            "target/test-classes/streams-schema-activitystreams/object.json",
+            "target/test-classes/streams-schema-activitystreams/objectTypes",
+            "target/test-classes/streams-schema-activitystreams/verbs"
         );
         config.setSourcePaths(sourcePaths);
 
 //        config.setSourceDirectory("target/test-classes/streams-schemas");
-        config.setTargetPackage("org.apache.streams.pojo.test");
-        config.setTargetDirectory("target/generated-sources/test");
+        config.setTargetPackage("org.apache.streams.pojo");
+        config.setTargetDirectory("target/generated-sources/pojo");
 
         StreamsPojoSourceGenerator streamsPojoSourceGenerator = new StreamsPojoSourceGenerator(config);
-        Thread thread = new Thread(streamsPojoSourceGenerator);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-
-        File testOutput = new File( "target/generated-sources/test");
+        streamsPojoSourceGenerator.run();
 
-        assert( testOutput != null );
-        assert( testOutput.exists() == true );
-        assert( testOutput.isDirectory() == true );
+        assert( config.getTargetDirectory() != null );
+        assert( config.getTargetDirectory().exists() == true );
+        assert( config.getTargetDirectory().isDirectory() == true );
 
-        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(testOutput)
+        Iterable<File> outputIterator = Files.fileTreeTraverser().breadthFirstTraversal(config.getTargetDirectory())
                 .filter(javaFilter);
         Collection<File> outputCollection = Lists.newArrayList(outputIterator);
         assert( outputCollection.size() > 133 );
 
-//        assert( testOutput.listFiles(javaFilter).length == 11 );
-//        assert( new File(testOutput + "/traits").exists() == true );
-//        assert( new File(testOutput + "/traits").isDirectory() == true );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
-//        assert( new File(testOutput + "/objectTypes").exists() == true );
-//        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
-//        assert( new File(testO`utput + "/verbs").exists() == true );
-//        assert( new File(testOutput + "/verbs").isDirectory() == true );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
-//        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
-    }
+  }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml b/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
index 21fd50e..2ca3f7c 100644
--- a/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
+++ b/streams-plugins/streams-plugin-pojo/src/test/resources/streams-plugin-pojo/pom.xml
@@ -23,9 +23,15 @@
         </dependency>
         <dependency>
             <groupId>org.apache.streams</groupId>
-            <artifactId>streams-schemas</artifactId>
+            <artifactId>streams-util</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schema-activitystreams</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
+            <type>test-jar</type>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
@@ -62,20 +68,20 @@
                 <version>0.3-incubating-SNAPSHOT</version>
                 <configuration>
                     <sourcePaths>
-                        <sourcePath>target/test-classes/streams-schemas/activity.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/collection.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/media_link.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/object.json</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/objectTypes</sourcePath>
-                        <sourcePath>target/test-classes/streams-schemas/verbs</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/activity.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/collection.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/media_link.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/object.json</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/objectTypes</sourcePath>
+                        <sourcePath>target/test-classes/streams-schema-activitystreams/verbs</sourcePath>
                     </sourcePaths>
-                    <targetPackage>org.apache.streams.pojo.testmojo</targetPackage>
-                    <targetDirectory>target/generated-sources/test-mojo</targetDirectory>
+                    <targetPackage>org.apache.streams.pojo.mojo</targetPackage>
+                    <targetDirectory>target/generated-sources/pojo-mojo</targetDirectory>
                 </configuration>
                 <executions>
                     <execution>
                         <goals>
-                            <goal>pojo</goal>
+                            <goal>generate-sources</goal>
                         </goals>
                     </execution>
                 </executions>
@@ -86,9 +92,9 @@
                 <version>2.10</version>
                 <configuration>
                     <includes>**/*.json</includes>
-                    <outputDirectory>${project.build.directory}/test-classes/streams-schemas</outputDirectory>
+                    <outputDirectory>${project.build.directory}/test-classes/streams-schema-activitystreams</outputDirectory>
                     <includeGroupIds>org.apache.streams</includeGroupIds>
-                    <includeArtifactIds>streams-schemas</includeArtifactIds>
+                    <includeArtifactIds>streams-schema-activitystreams</includeArtifactIds>
                     <includeTypes>jar,test-jar</includeTypes>
                 </configuration>
                 <executions>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-scala/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/pom.xml b/streams-plugins/streams-plugin-scala/pom.xml
index f718260..3988142 100644
--- a/streams-plugins/streams-plugin-scala/pom.xml
+++ b/streams-plugins/streams-plugin-scala/pom.xml
@@ -42,6 +42,18 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-util</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-schema-activitystreams</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.jsonschema2pojo</groupId>
             <artifactId>jsonschema2pojo-core</artifactId>
         </dependency>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScala.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScala.java b/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScala.java
deleted file mode 100644
index 1c3e317..0000000
--- a/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScala.java
+++ /dev/null
@@ -1,371 +0,0 @@
-package org.apache.streams.plugins;
-
-import com.google.common.base.Strings;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import org.apache.streams.data.DocumentClassifier;
-import org.reflections.ReflectionUtils;
-import org.reflections.Reflections;
-import org.reflections.scanners.SubTypesScanner;
-import org.reflections.scanners.TypeAnnotationsScanner;
-import org.reflections.util.ClasspathHelper;
-import org.reflections.util.ConfigurationBuilder;
-import org.reflections.ReflectionUtils.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.annotation.Generated;
-import java.io.File;
-import java.io.IOException;
-import java.io.Serializable;
-import java.lang.reflect.Field;
-import java.nio.file.Files;
-import java.nio.file.OpenOption;
-import java.nio.file.Paths;
-import java.nio.file.StandardOpenOption;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * Created by sblackmon on 11/18/15.
- */
-public class StreamsPojoScala implements Runnable {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoScala.class);
-
-    private final static String LS = System.getProperty("line.separator");
-
-    private StreamsPojoScalaMojo mojo;
-
-    String outDir = "./target/generated-sources/scala";
-    String packages = "org.apache.streams.pojo.json";
-
-    private final Reflections reflections = new Reflections(
-            new ConfigurationBuilder()
-                    // TODO
-                    .forPackages(packages)
-                    .setScanners(
-                            new SubTypesScanner(),
-                            new TypeAnnotationsScanner()));
-
-    public void main(String[] args) {
-        StreamsPojoScala streamsPojoScala = new StreamsPojoScala();
-        Thread thread = new Thread(streamsPojoScala);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
-    }
-
-    public StreamsPojoScala(StreamsPojoScalaMojo mojo) {
-        this.mojo = mojo;
-        if (    mojo != null &&
-                mojo.getTarget() != null &&
-                !Strings.isNullOrEmpty(mojo.getTarget().getAbsolutePath())
-            )
-            outDir = mojo.getTarget().getAbsolutePath();
-
-        if (    mojo != null &&
-                mojo.getPackages() != null &&
-                !Strings.isNullOrEmpty(mojo.getPackages())
-            )
-            packages = mojo.getPackages();
-    }
-
-    public StreamsPojoScala() {
-    }
-
-    public void run() {
-
-        List<Class<?>> serializableClasses = detectSerializableClasses();
-
-        LOGGER.info("Detected {} serialiables:", serializableClasses.size());
-        for( Class clazz : serializableClasses )
-            LOGGER.debug(clazz.toString());
-
-        List<Class<?>> pojoClasses = detectPojoClasses(serializableClasses);
-
-        LOGGER.info("Detected {} pojos:", pojoClasses.size());
-        for( Class clazz : pojoClasses )
-            LOGGER.debug(clazz.toString());
-
-        List<Class<?>> traits = detectTraits(pojoClasses);
-
-        LOGGER.info("Detected {} traits:", traits.size());
-        for( Class clazz : traits )
-            LOGGER.debug(clazz.toString());
-
-        List<Class<?>> cases = detectCases(pojoClasses);
-
-        LOGGER.info("Detected {} cases:", cases.size());
-        for( Class clazz : cases )
-            LOGGER.debug(clazz.toString());
-
-
-        for( Class clazz : traits ) {
-            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".scala").replace(".","/")+"/traits/";
-            String pojoName = clazz.getSimpleName()+".scala";
-            String pojoScala = renderTrait(clazz);
-            writeFile(outDir+"/"+pojoPath+pojoName, pojoScala);
-        }
-
-        for( Class clazz : traits ) {
-            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".scala").replace(".","/")+"/";
-            String pojoName = clazz.getSimpleName()+".scala";
-            String pojoScala = renderClass(clazz);
-            writeFile(outDir+"/"+pojoPath+pojoName, pojoScala);
-        }
-
-        for( Class clazz : cases ) {
-            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".scala").replace(".","/")+"/";
-            String pojoName = clazz.getSimpleName()+".scala";
-            String pojoScala = renderCase(clazz);
-            writeFile(outDir+"/"+pojoPath+pojoName, pojoScala);
-        }
-
-    }
-
-    private void writeFile(String pojoFile, String pojoScala) {
-        try {
-            File path = new File(pojoFile);
-            File dir = path.getParentFile();
-            if( !dir.exists() )
-                dir.mkdirs();
-            Files.write(Paths.get(pojoFile), pojoScala.getBytes(), StandardOpenOption.CREATE_NEW);
-        } catch (Exception e) {
-            LOGGER.error("Write Exception: {}", e);
-        }
-    }
-
-    public List<Class<?>> detectSerializableClasses() {
-
-        Set<Class<? extends Serializable>> classes =
-                reflections.getSubTypesOf(java.io.Serializable.class);
-
-        List<Class<?>> result = Lists.newArrayList();
-
-        for( Class clazz : classes ) {
-            result.add(clazz);
-        }
-
-        return result;
-    }
-
-    public List<Class<?>> detectPojoClasses(List<Class<?>> classes) {
-
-        List<Class<?>> result = Lists.newArrayList();
-
-        for( Class clazz : classes ) {
-            try {
-                clazz.newInstance().toString();
-            } catch( Exception e) {}
-            // super-halfass way to know if this is a jsonschema2pojo
-            if( clazz.getAnnotations().length >= 1 )
-                result.add(clazz);
-        }
-
-        return result;
-    }
-
-    public List<Class<?>> detectTraits(List<Class<?>> classes) {
-
-        List<Class<?>> traits = Lists.newArrayList();
-
-        for( Class clazz : classes ) {
-            if (reflections.getSubTypesOf(clazz).size() > 0)
-                traits.add(clazz);
-        }
-
-        return traits;
-    }
-
-    public List<Class<?>> detectCases(List<Class<?>> classes) {
-
-        List<Class<?>> cases = Lists.newArrayList();
-
-        for( Class clazz : classes ) {
-            if (reflections.getSubTypesOf(clazz).size() == 0)
-                cases.add(clazz);
-        }
-
-        return cases;
-    }
-
-
-    public String renderTrait(Class<?> pojoClass) {
-        StringBuffer stringBuffer = new StringBuffer();
-        stringBuffer.append("package ");
-        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".scala"));
-        stringBuffer.append(".traits");
-        stringBuffer.append(LS);
-        stringBuffer.append("trait "+pojoClass.getSimpleName());
-        stringBuffer.append(" extends Serializable");
-        stringBuffer.append(" {");
-
-        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
-        appendFields(stringBuffer, fields, "def", ";");
-
-        stringBuffer.append("}");
-
-        return stringBuffer.toString();
-    }
-
-    public String renderClass(Class<?> pojoClass) {
-        StringBuffer stringBuffer = new StringBuffer();
-        stringBuffer.append("package ");
-        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".scala"));
-        stringBuffer.append(LS);
-        stringBuffer.append("import org.apache.commons.lang.builder.{HashCodeBuilder, EqualsBuilder, ToStringBuilder}");
-        stringBuffer.append(LS);
-        stringBuffer.append("class "+pojoClass.getSimpleName());
-        stringBuffer.append(" (");
-
-        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
-        appendFields(stringBuffer, fields, "var", ",");
-
-        stringBuffer.append(")");
-        stringBuffer.append(" extends "+pojoClass.getPackage().getName().replace(".pojo.json", ".scala")+".traits."+pojoClass.getSimpleName());
-        stringBuffer.append(" with Serializable ");
-        stringBuffer.append("{ ");
-        stringBuffer.append(LS);
-        stringBuffer.append("override def equals(obj: Any) = obj match { ");
-        stringBuffer.append(LS);
-        stringBuffer.append("  case other: ");
-        stringBuffer.append(pojoClass.getSimpleName());
-        stringBuffer.append(" => other.getClass == getClass && EqualsBuilder.reflectionEquals(this,obj)");
-        stringBuffer.append(LS);
-        stringBuffer.append("  case _ => false");
-        stringBuffer.append(LS);
-        stringBuffer.append("}");
-        stringBuffer.append(LS);
-        stringBuffer.append("override def hashCode = new HashCodeBuilder().hashCode");
-        stringBuffer.append(LS);
-        stringBuffer.append("}");
-
-        return stringBuffer.toString();
-    }
-
-    public String renderCase(Class<?> pojoClass) {
-        StringBuffer stringBuffer = new StringBuffer();
-        stringBuffer.append("package ");
-        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".scala"));
-        stringBuffer.append(LS);
-        stringBuffer.append("case class "+pojoClass.getSimpleName());
-        stringBuffer.append("(");
-        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
-        appendFields(stringBuffer, fields, "var", ",");
-        stringBuffer.append(")");
-        if( pojoClass.getSuperclass() != null && !pojoClass.getSuperclass().equals(java.lang.Object.class)) {
-            stringBuffer.append(" extends "+pojoClass.getSuperclass().getPackage().getName().replace(".pojo.json", ".scala")+".traits."+pojoClass.getSuperclass().getSimpleName());
-        }
-        stringBuffer.append(LS);
-
-        return stringBuffer.toString();
-    }
-
-    private void appendFields(StringBuffer stringBuffer, Set<Field> fields, String varDef, String fieldDelimiter) {
-        if( fields.size() > 0 ) {
-            stringBuffer.append(LS);
-            Map<String,Field> fieldsToAppend = uniqueFields(fields);
-            for( Iterator<Field> iter = fieldsToAppend.values().iterator(); iter.hasNext(); ) {
-                Field field = iter.next();
-                if( override( field ) )
-                    stringBuffer.append("override ");
-                stringBuffer.append(varDef);
-                stringBuffer.append(" ");
-                stringBuffer.append(name(field));
-                stringBuffer.append(": ");
-                if( option(field) ) {
-                    stringBuffer.append("scala.Option[");
-                    stringBuffer.append(type(field));
-                    stringBuffer.append("]");
-                } else {
-                    stringBuffer.append(type(field));
-                }
-                if( !fieldDelimiter.equals(";") && value(field) != null) {
-                    stringBuffer.append(" = ");
-                    if( option(field) ) {
-                        stringBuffer.append("scala.Some(");
-                        stringBuffer.append(value(field));
-                        stringBuffer.append(")");
-                    } else {
-                        stringBuffer.append(value(field));
-                    }
-                }
-                if( iter.hasNext()) stringBuffer.append(fieldDelimiter);
-                stringBuffer.append(LS);
-            }
-        } else {
-            stringBuffer.append(LS);
-        }
-    }
-
-    private boolean option(Field field) {
-        if( field.getName().equals("verb")) {
-            return false;
-        } else if( field.getType().equals(java.util.Map.class)) {
-            return false;
-        } else if( field.getType().equals(java.util.List.class)) {
-            return false;
-        } else return true;
-    }
-
-    private String value(Field field) {
-        if( field.getName().equals("verb")) {
-            return "\"post\"";
-        } else if( field.getName().equals("objectType")) {
-            return "\"application\"";
-        } else return null;
-    }
-
-    private String type(Field field) {
-        if( field.getType().equals(java.lang.String.class)) {
-            return "String";
-        } else if( field.getType().equals(java.util.Map.class)) {
-            return "scala.collection.mutable.Map[String,Any]";
-        } else if( field.getType().equals(java.util.List.class)) {
-            return "scala.collection.mutable.MutableList[Any]";
-        }
-        return field.getType().getCanonicalName().replace(".pojo.json", ".scala");
-    }
-
-    private Map<String,Field> uniqueFields(Set<Field> fieldset) {
-        Map<String,Field> fields = Maps.newTreeMap();
-        Field item = null;
-        for( Iterator<Field> it = fieldset.iterator(); it.hasNext(); item = it.next() ) {
-            if( item != null && item.getName() != null ) {
-                Field added = fields.put(item.getName(), item);
-            }
-            // ensure right class will get used
-        }
-        return fields;
-    }
-
-    private String name(Field field) {
-        if( field.getName().equals("object"))
-            return "obj";
-        else return field.getName();
-    }
-
-    private boolean override(Field field) {
-        try {
-            if( field.getDeclaringClass().getSuperclass().getField(field.getName()) != null )
-                return true;
-            else return false;
-        } catch( Exception e ) {
-            return false;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScalaMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScalaMojo.java b/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScalaMojo.java
deleted file mode 100644
index baa0f50..0000000
--- a/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScalaMojo.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.apache.streams.plugins;
-
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.descriptor.PluginDescriptor;
-import org.apache.maven.plugins.annotations.Component;
-import org.apache.maven.plugins.annotations.Execute;
-import org.apache.maven.plugins.annotations.LifecyclePhase;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.settings.Settings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-
-@Mojo(  name = "scala",
-        defaultPhase = LifecyclePhase.GENERATE_SOURCES
-)
-@Execute(   goal = "scala",
-            phase = LifecyclePhase.GENERATE_SOURCES
-)
-public class StreamsPojoScalaMojo extends AbstractMojo {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoScalaMojo.class);
-
-    @Component
-    private MavenProject project;
-
-//    @Component
-//    private Settings settings;
-//
-//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
-//    protected ArtifactRepository localRepository;
-//
-//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
-//    private PluginDescriptor plugin;
-//
-    @Parameter( defaultValue = "${project.basedir}", readonly = true )
-    private File basedir;
-
-    @Parameter(defaultValue = "${project.build.directory}", readonly = true)
-    private File target;
-
-    @Parameter(defaultValue = "org.apache.streams.pojo.json", readonly = true)
-    private String packages;
-
-    public void execute() throws MojoExecutionException {
-        StreamsPojoScala streamsPojoScala = new StreamsPojoScala(this);
-        Thread thread = new Thread(streamsPojoScala);
-        thread.start();
-        try {
-            thread.join();
-        } catch (InterruptedException e) {
-            LOGGER.error("InterruptedException", e);
-        } catch (Exception e) {
-            LOGGER.error("Exception", e);
-        }
-        return;
-    }
-
-    public File getTarget() {
-        return target;
-    }
-
-    public String getPackages() {
-        return packages;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsScalaSourceGenerator.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsScalaSourceGenerator.java b/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsScalaSourceGenerator.java
new file mode 100644
index 0000000..7199be3
--- /dev/null
+++ b/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsScalaSourceGenerator.java
@@ -0,0 +1,351 @@
+package org.apache.streams.plugins;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import org.reflections.ReflectionUtils;
+import org.reflections.Reflections;
+import org.reflections.scanners.SubTypesScanner;
+import org.reflections.scanners.TypeAnnotationsScanner;
+import org.reflections.util.ConfigurationBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Created by sblackmon on 11/18/15.
+ */
+public class StreamsScalaSourceGenerator implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsScalaSourceGenerator.class);
+
+    private final static String LS = System.getProperty("line.separator");
+
+    private StreamsScalaSourceGeneratorMojo mojo;
+
+    String outDir = "./target/generated-sources/scala";
+    String packages = "org.apache.streams.pojo.json";
+
+    private final Reflections reflections = new Reflections(
+            new ConfigurationBuilder()
+                    // TODO
+                    .forPackages(packages)
+                    .setScanners(
+                            new SubTypesScanner(),
+                            new TypeAnnotationsScanner()));
+
+    public void main(String[] args) {
+        StreamsScalaSourceGenerator streamsScalaSourceGenerator = new StreamsScalaSourceGenerator();
+        streamsScalaSourceGenerator.run();
+    }
+
+    public StreamsScalaSourceGenerator(StreamsScalaSourceGeneratorMojo mojo) {
+        this.mojo = mojo;
+        if (    mojo != null &&
+                mojo.getTarget() != null &&
+                !Strings.isNullOrEmpty(mojo.getTarget().getAbsolutePath())
+            )
+            outDir = mojo.getTarget().getAbsolutePath();
+
+        if (    mojo != null &&
+                mojo.getPackages() != null &&
+                !Strings.isNullOrEmpty(mojo.getPackages())
+            )
+            packages = mojo.getPackages();
+    }
+
+    public StreamsScalaSourceGenerator() {
+    }
+
+    public void run() {
+
+        List<Class<?>> serializableClasses = detectSerializableClasses();
+
+        LOGGER.info("Detected {} serialiables:", serializableClasses.size());
+        for( Class clazz : serializableClasses )
+            LOGGER.debug(clazz.toString());
+
+        List<Class<?>> pojoClasses = detectPojoClasses(serializableClasses);
+
+        LOGGER.info("Detected {} pojos:", pojoClasses.size());
+        for( Class clazz : pojoClasses )
+            LOGGER.debug(clazz.toString());
+
+        List<Class<?>> traits = detectTraits(pojoClasses);
+
+        LOGGER.info("Detected {} traits:", traits.size());
+        for( Class clazz : traits )
+            LOGGER.debug(clazz.toString());
+
+        List<Class<?>> cases = detectCases(pojoClasses);
+
+        LOGGER.info("Detected {} cases:", cases.size());
+        for( Class clazz : cases )
+            LOGGER.debug(clazz.toString());
+
+
+        for( Class clazz : traits ) {
+            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".scala").replace(".","/")+"/traits/";
+            String pojoName = clazz.getSimpleName()+".scala";
+            String pojoScala = renderTrait(clazz);
+            writeFile(outDir+"/"+pojoPath+pojoName, pojoScala);
+        }
+
+        for( Class clazz : traits ) {
+            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".scala").replace(".","/")+"/";
+            String pojoName = clazz.getSimpleName()+".scala";
+            String pojoScala = renderClass(clazz);
+            writeFile(outDir+"/"+pojoPath+pojoName, pojoScala);
+        }
+
+        for( Class clazz : cases ) {
+            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".scala").replace(".","/")+"/";
+            String pojoName = clazz.getSimpleName()+".scala";
+            String pojoScala = renderCase(clazz);
+            writeFile(outDir+"/"+pojoPath+pojoName, pojoScala);
+        }
+
+    }
+
+    private void writeFile(String pojoFile, String pojoScala) {
+        try {
+            File path = new File(pojoFile);
+            File dir = path.getParentFile();
+            if( !dir.exists() )
+                dir.mkdirs();
+            Files.write(Paths.get(pojoFile), pojoScala.getBytes(), StandardOpenOption.CREATE_NEW);
+        } catch (Exception e) {
+            LOGGER.error("Write Exception: {}", e);
+        }
+    }
+
+    public List<Class<?>> detectSerializableClasses() {
+
+        Set<Class<? extends Serializable>> classes =
+                reflections.getSubTypesOf(java.io.Serializable.class);
+
+        List<Class<?>> result = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            result.add(clazz);
+        }
+
+        return result;
+    }
+
+    public List<Class<?>> detectPojoClasses(List<Class<?>> classes) {
+
+        List<Class<?>> result = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            try {
+                clazz.newInstance().toString();
+            } catch( Exception e) {}
+            // super-halfass way to know if this is a jsonschema2pojo
+            if( clazz.getAnnotations().length >= 1 )
+                result.add(clazz);
+        }
+
+        return result;
+    }
+
+    public List<Class<?>> detectTraits(List<Class<?>> classes) {
+
+        List<Class<?>> traits = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            if (reflections.getSubTypesOf(clazz).size() > 0)
+                traits.add(clazz);
+        }
+
+        return traits;
+    }
+
+    public List<Class<?>> detectCases(List<Class<?>> classes) {
+
+        List<Class<?>> cases = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            if (reflections.getSubTypesOf(clazz).size() == 0)
+                cases.add(clazz);
+        }
+
+        return cases;
+    }
+
+
+    public String renderTrait(Class<?> pojoClass) {
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append("package ");
+        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".scala"));
+        stringBuffer.append(".traits");
+        stringBuffer.append(LS);
+        stringBuffer.append("trait "+pojoClass.getSimpleName());
+        stringBuffer.append(" extends Serializable");
+        stringBuffer.append(" {");
+
+        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
+        appendFields(stringBuffer, fields, "def", ";");
+
+        stringBuffer.append("}");
+
+        return stringBuffer.toString();
+    }
+
+    public String renderClass(Class<?> pojoClass) {
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append("package ");
+        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".scala"));
+        stringBuffer.append(LS);
+        stringBuffer.append("import org.apache.commons.lang.builder.{HashCodeBuilder, EqualsBuilder, ToStringBuilder}");
+        stringBuffer.append(LS);
+        stringBuffer.append("class "+pojoClass.getSimpleName());
+        stringBuffer.append(" (");
+
+        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
+        appendFields(stringBuffer, fields, "var", ",");
+
+        stringBuffer.append(")");
+        stringBuffer.append(" extends "+pojoClass.getPackage().getName().replace(".pojo.json", ".scala")+".traits."+pojoClass.getSimpleName());
+        stringBuffer.append(" with Serializable ");
+        stringBuffer.append("{ ");
+        stringBuffer.append(LS);
+        stringBuffer.append("override def equals(obj: Any) = obj match { ");
+        stringBuffer.append(LS);
+        stringBuffer.append("  case other: ");
+        stringBuffer.append(pojoClass.getSimpleName());
+        stringBuffer.append(" => other.getClass == getClass && EqualsBuilder.reflectionEquals(this,obj)");
+        stringBuffer.append(LS);
+        stringBuffer.append("  case _ => false");
+        stringBuffer.append(LS);
+        stringBuffer.append("}");
+        stringBuffer.append(LS);
+        stringBuffer.append("override def hashCode = new HashCodeBuilder().hashCode");
+        stringBuffer.append(LS);
+        stringBuffer.append("}");
+
+        return stringBuffer.toString();
+    }
+
+    public String renderCase(Class<?> pojoClass) {
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append("package ");
+        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".scala"));
+        stringBuffer.append(LS);
+        stringBuffer.append("case class "+pojoClass.getSimpleName());
+        stringBuffer.append("(");
+        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
+        appendFields(stringBuffer, fields, "var", ",");
+        stringBuffer.append(")");
+        if( pojoClass.getSuperclass() != null && !pojoClass.getSuperclass().equals(java.lang.Object.class)) {
+            stringBuffer.append(" extends "+pojoClass.getSuperclass().getPackage().getName().replace(".pojo.json", ".scala")+".traits."+pojoClass.getSuperclass().getSimpleName());
+        }
+        stringBuffer.append(LS);
+
+        return stringBuffer.toString();
+    }
+
+    private void appendFields(StringBuffer stringBuffer, Set<Field> fields, String varDef, String fieldDelimiter) {
+        if( fields.size() > 0 ) {
+            stringBuffer.append(LS);
+            Map<String,Field> fieldsToAppend = uniqueFields(fields);
+            for( Iterator<Field> iter = fieldsToAppend.values().iterator(); iter.hasNext(); ) {
+                Field field = iter.next();
+                if( override( field ) )
+                    stringBuffer.append("override ");
+                stringBuffer.append(varDef);
+                stringBuffer.append(" ");
+                stringBuffer.append(name(field));
+                stringBuffer.append(": ");
+                if( option(field) ) {
+                    stringBuffer.append("scala.Option[");
+                    stringBuffer.append(type(field));
+                    stringBuffer.append("]");
+                } else {
+                    stringBuffer.append(type(field));
+                }
+                if( !fieldDelimiter.equals(";") && value(field) != null) {
+                    stringBuffer.append(" = ");
+                    if( option(field) ) {
+                        stringBuffer.append("scala.Some(");
+                        stringBuffer.append(value(field));
+                        stringBuffer.append(")");
+                    } else {
+                        stringBuffer.append(value(field));
+                    }
+                }
+                if( iter.hasNext()) stringBuffer.append(fieldDelimiter);
+                stringBuffer.append(LS);
+            }
+        } else {
+            stringBuffer.append(LS);
+        }
+    }
+
+    private boolean option(Field field) {
+        if( field.getName().equals("verb")) {
+            return false;
+        } else if( field.getType().equals(java.util.Map.class)) {
+            return false;
+        } else if( field.getType().equals(java.util.List.class)) {
+            return false;
+        } else return true;
+    }
+
+    private String value(Field field) {
+        if( field.getName().equals("verb")) {
+            return "\"post\"";
+        } else if( field.getName().equals("objectType")) {
+            return "\"application\"";
+        } else return null;
+    }
+
+    private String type(Field field) {
+        if( field.getType().equals(java.lang.String.class)) {
+            return "String";
+        } else if( field.getType().equals(java.util.Map.class)) {
+            return "scala.collection.mutable.Map[String,Any]";
+        } else if( field.getType().equals(java.util.List.class)) {
+            return "scala.collection.mutable.MutableList[Any]";
+        }
+        return field.getType().getCanonicalName().replace(".pojo.json", ".scala");
+    }
+
+    private Map<String,Field> uniqueFields(Set<Field> fieldset) {
+        Map<String,Field> fields = Maps.newTreeMap();
+        Field item = null;
+        for( Iterator<Field> it = fieldset.iterator(); it.hasNext(); item = it.next() ) {
+            if( item != null && item.getName() != null ) {
+                Field added = fields.put(item.getName(), item);
+            }
+            // ensure right class will get used
+        }
+        return fields;
+    }
+
+    private String name(Field field) {
+        if( field.getName().equals("object"))
+            return "obj";
+        else return field.getName();
+    }
+
+    private boolean override(Field field) {
+        try {
+            if( field.getDeclaringClass().getSuperclass().getField(field.getName()) != null )
+                return true;
+            else return false;
+        } catch( Exception e ) {
+            return false;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsScalaSourceGeneratorMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsScalaSourceGeneratorMojo.java b/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsScalaSourceGeneratorMojo.java
new file mode 100644
index 0000000..8d85c90
--- /dev/null
+++ b/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsScalaSourceGeneratorMojo.java
@@ -0,0 +1,59 @@
+package org.apache.streams.plugins;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+
+@Mojo(  name = "scala",
+        defaultPhase = LifecyclePhase.GENERATE_SOURCES
+)
+@Execute(   goal = "scala",
+            phase = LifecyclePhase.GENERATE_SOURCES
+)
+public class StreamsScalaSourceGeneratorMojo extends AbstractMojo {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsScalaSourceGeneratorMojo.class);
+
+    @Component
+    private MavenProject project;
+
+//    @Component
+//    private Settings settings;
+//
+//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+//    protected ArtifactRepository localRepository;
+//
+//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
+//    private PluginDescriptor plugin;
+//
+    @Parameter( defaultValue = "${project.basedir}", readonly = true )
+    private File basedir;
+
+    @Parameter(defaultValue = "${project.build.directory}", readonly = true)
+    private File target;
+
+    @Parameter(defaultValue = "org.apache.streams.pojo.json", readonly = true)
+    private String packages;
+
+    public void execute() throws MojoExecutionException {
+        StreamsScalaSourceGenerator streamsScalaSourceGenerator = new StreamsScalaSourceGenerator(this);
+        streamsScalaSourceGenerator.run();
+    }
+
+    public File getTarget() {
+        return target;
+    }
+
+    public String getPackages() {
+        return packages;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-scala/src/site/markdown/index.md
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/site/markdown/index.md b/streams-plugins/streams-plugin-scala/src/site/markdown/index.md
new file mode 100644
index 0000000..34f94f5
--- /dev/null
+++ b/streams-plugins/streams-plugin-scala/src/site/markdown/index.md
@@ -0,0 +1,36 @@
+org.apache.streams.plugins:streams-plugin-scala
+=============================================
+
+streams-plugin-scala generates source files from json schemas suitable for writing Apache Streams components and libraries in Scala.
+
+### Usage
+
+##### Maven
+
+Run within a module containing a src/main/jsonschema directory
+
+    mvn org.apache.streams.plugins:streams-plugin-scala:0.3-incubating-SNAPSHOT:pig
+
+[streams-plugin-scala/pom.xml](streams-plugin-scala/pom.xml "streams-plugin-scala/pom.xml")
+
+##### SDK
+
+Embed within your own java code
+
+    StreamsScalaGenerationConfig config = new StreamsScalaGenerationConfig();
+    config.setSourceDirectory("src/main/jsonschema");
+    config.setTargetDirectory("target/generated-resources");
+    StreamsScalaSourceGenerator generator = new StreamsScalaSourceGenerator(config);
+    generator.run();
+
+##### CLI
+
+Run from CLI without Maven
+
+    java -jar streams-plugin-scala-jar-with-dependencies.jar StreamsScalaSourceGenerator src/main/jsonschema target/generated-sources
+
+#### Documentation
+
+[JavaDocs](apidocs/index.html "JavaDocs")
+
+###### Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsPojoScalaTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsPojoScalaTest.java b/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsPojoScalaTest.java
deleted file mode 100644
index 4e5e7e3..0000000
--- a/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsPojoScalaTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.apache.streams.plugins.test;
-
-import org.apache.streams.plugins.StreamsPojoScala;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.FileFilter;
-
-/**
- * Test that Activity beans are compatible with the example activities in the spec.
- */
-public class StreamsPojoScalaTest {
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoScalaTest.class);
-
-    /**
-     * Tests that all example activities can be loaded into Activity beans
-     *
-     * @throws Exception
-     */
-    @Test
-    public void testDetectPojoScala() throws Exception {
-        StreamsPojoScala streamsPojoScala = new StreamsPojoScala();
-        streamsPojoScala.main(new String[0]);
-
-        File testOutput = new File( "./target/generated-sources/scala/org/apache/streams/scala");
-        FileFilter scalaFilter = new FileFilter() {
-            @Override
-            public boolean accept(File pathname) {
-                if( pathname.getName().endsWith(".scala") )
-                    return true;
-                return false;
-            }
-        };
-
-        assert( testOutput != null );
-        assert( testOutput.exists() == true );
-        assert( testOutput.isDirectory() == true );
-        assert( testOutput.listFiles(scalaFilter).length == 11 );
-        assert( new File(testOutput + "/traits").exists() == true );
-        assert( new File(testOutput + "/traits").isDirectory() == true );
-        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
-        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
-        assert( new File(testOutput + "/objectTypes").exists() == true );
-        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
-        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
-        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
-        assert( new File(testOutput + "/verbs").exists() == true );
-        assert( new File(testOutput + "/verbs").isDirectory() == true );
-        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
-        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsScalaSourceGeneratorTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsScalaSourceGeneratorTest.java b/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsScalaSourceGeneratorTest.java
new file mode 100644
index 0000000..65e496f
--- /dev/null
+++ b/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsScalaSourceGeneratorTest.java
@@ -0,0 +1,55 @@
+package org.apache.streams.plugins.test;
+
+import org.apache.streams.plugins.StreamsScalaSourceGenerator;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileFilter;
+
+/**
+ * Test that Activity beans are compatible with the example activities in the spec.
+ */
+public class StreamsScalaSourceGeneratorTest {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsScalaSourceGeneratorTest.class);
+
+    /**
+     * Tests that all example activities can be loaded into Activity beans
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testDetectPojoScala() throws Exception {
+        StreamsScalaSourceGenerator streamsScalaSourceGenerator = new StreamsScalaSourceGenerator();
+        streamsScalaSourceGenerator.main(new String[0]);
+
+        File testOutput = new File( "./target/generated-sources/scala/org/apache/streams/scala");
+        FileFilter scalaFilter = new FileFilter() {
+            @Override
+            public boolean accept(File pathname) {
+                if( pathname.getName().endsWith(".scala") )
+                    return true;
+                return false;
+            }
+        };
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+        assert( testOutput.listFiles(scalaFilter).length == 11 );
+        assert( new File(testOutput + "/traits").exists() == true );
+        assert( new File(testOutput + "/traits").isDirectory() == true );
+        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
+        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
+        assert( new File(testOutput + "/objectTypes").exists() == true );
+        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
+        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
+        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
+        assert( new File(testOutput + "/verbs").exists() == true );
+        assert( new File(testOutput + "/verbs").isDirectory() == true );
+        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
+        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-runtimes/streams-runtime-dropwizard/pom.xml
----------------------------------------------------------------------
diff --git a/streams-runtimes/streams-runtime-dropwizard/pom.xml b/streams-runtimes/streams-runtime-dropwizard/pom.xml
index 94c3a3e..6574637 100644
--- a/streams-runtimes/streams-runtime-dropwizard/pom.xml
+++ b/streams-runtimes/streams-runtime-dropwizard/pom.xml
@@ -223,7 +223,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.dropwizard</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-runtimes/streams-runtime-local/pom.xml
----------------------------------------------------------------------
diff --git a/streams-runtimes/streams-runtime-local/pom.xml b/streams-runtimes/streams-runtime-local/pom.xml
index dbde89f..d8fae26 100644
--- a/streams-runtimes/streams-runtime-local/pom.xml
+++ b/streams-runtimes/streams-runtime-local/pom.xml
@@ -137,7 +137,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema/LocalRuntimeConfiguration.json</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.local</targetPackage>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/pom.xml
----------------------------------------------------------------------
diff --git a/streams-schemas/pom.xml b/streams-schemas/pom.xml
index 0625cb6..dbfd719 100644
--- a/streams-schemas/pom.xml
+++ b/streams-schemas/pom.xml
@@ -28,79 +28,12 @@
 
     <artifactId>streams-schemas</artifactId>
     <name>${project.artifactId}</name>
+    <packaging>pom</packaging>
 
-    <description>Activity Streams schemas and schema utilities</description>
+    <description>Aggregator for schema modules</description>
 
-    <dependencies>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.jsonschema2pojo</groupId>
-            <artifactId>jsonschema2pojo-core</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>commons-logging</groupId>
-                    <artifactId>commons-logging</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
+    <modules>
+        <module>streams-schema-activitystreams</module>
+    </modules>
 
-    </dependencies>
-    <build>
-        <sourceDirectory>src/main/java</sourceDirectory>
-        <testSourceDirectory>src/test/java</testSourceDirectory>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-            </resource>
-        </resources>
-        <testResources>
-            <testResource>
-                <directory>src/test/resources</directory>
-            </testResource>
-        </testResources>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>add-source</id>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>add-resource</goal>
-                        </goals>
-                        <configuration>
-                            <resources>
-                                <resource>
-                                    <directory>src/main/jsonschema</directory>
-                                </resource>
-                                <resource>
-                                    <directory>src/main/xmlschema</directory>
-                                </resource>
-                            </resources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/java/org/apache/streams/schema/FieldType.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/FieldType.java b/streams-schemas/src/main/java/org/apache/streams/schema/FieldType.java
deleted file mode 100644
index 1ad9dcc..0000000
--- a/streams-schemas/src/main/java/org/apache/streams/schema/FieldType.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.streams.schema;
-
-/**
- * Created by steve on 5/1/16.
- */
-public enum FieldType {
-    STRING,
-    INTEGER,
-    NUMBER,
-    BOOLEAN,
-    OBJECT,
-    ARRAY
-}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java
----------------------------------------------------------------------
diff --git a/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java b/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java
deleted file mode 100644
index 4173e50..0000000
--- a/streams-schemas/src/main/java/org/apache/streams/schema/FieldUtil.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package org.apache.streams.schema;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Created by steve on 5/1/16.
- */
-public class FieldUtil {
-
-    public static FieldType determineFieldType(ObjectNode fieldNode) {
-        String typeSchemaField = "type";
-        if( !fieldNode.has(typeSchemaField))
-            return null;
-        String typeSchemaFieldValue = fieldNode.get(typeSchemaField).asText();
-        if( typeSchemaFieldValue.equals("string")) {
-            return FieldType.STRING;
-        } else if( typeSchemaFieldValue.equals("integer")) {
-            return FieldType.INTEGER;
-        } else if( typeSchemaFieldValue.equals("number")) {
-            return FieldType.NUMBER;
-        } else if( typeSchemaFieldValue.equals("object")) {
-            return FieldType.OBJECT;
-        } else if( typeSchemaFieldValue.equals("boolean")) {
-            return FieldType.BOOLEAN;
-        } else if( typeSchemaFieldValue.equals("array")) {
-            return FieldType.ARRAY;
-        }
-        else return null;
-    }
-
-    public static FieldType determineArrayType(ObjectNode fieldNode) {
-        if( fieldNode == null ) return null;
-        ObjectNode itemsObjectNode = resolveItemsNode(fieldNode);
-        if( itemsObjectNode != null)
-            return determineFieldType(itemsObjectNode);
-        return null;
-    }
-
-    public static ObjectNode resolveItemsNode(ObjectNode fieldNode) {
-        ObjectNode itemsObjectNode = null;
-
-        if( fieldNode.get("items").isObject() )
-            itemsObjectNode = (ObjectNode) fieldNode.get("items");
-        else if( fieldNode.get("items").isArray() && fieldNode.size() > 0 && fieldNode.get(0).isObject()) {
-            itemsObjectNode = (ObjectNode) fieldNode.get("items").get(0);
-        }
-
-        return itemsObjectNode;
-    }
-
-}



[22/32] incubator-streams git commit: refactoring, testing, documentation, CLI modes

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/request.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/request.json b/streams-util/src/test/resources/activities/request.json
new file mode 100644
index 0000000..3e7c285
--- /dev/null
+++ b/streams-util/src/test/resources/activities/request.json
@@ -0,0 +1,23 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "request",
+  "object": {
+    "objectType": "task",
+    "actor": {
+      "objectType": "person",
+      "displayName": "Mark"
+    },
+    "verb": "join",
+    "object": {
+      "objectType": "event",
+      "displayName": "The Big Meeting"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/resolve.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/resolve.json b/streams-util/src/test/resources/activities/resolve.json
new file mode 100644
index 0000000..14998cf
--- /dev/null
+++ b/streams-util/src/test/resources/activities/resolve.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "resolve",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #126"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/retract.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/retract.json b/streams-util/src/test/resources/activities/retract.json
new file mode 100644
index 0000000..9229868
--- /dev/null
+++ b/streams-util/src/test/resources/activities/retract.json
@@ -0,0 +1,26 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "retract",
+  "object": {
+    "actor": {
+      "objectType": "person",
+      "displayName": "Mark"
+    },
+    "verb": "return",
+    "object": {
+      "objectType": "book",
+      "displayName": "Cloud Atlas"
+    },
+    "target": {
+      "objectType": "person",
+      "displayName": "Laura"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/return.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/return.json b/streams-util/src/test/resources/activities/return.json
new file mode 100644
index 0000000..d6b8861
--- /dev/null
+++ b/streams-util/src/test/resources/activities/return.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "return",
+  "object": {
+    "objectType": "book",
+    "displayName": "Cloud Atlas"
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Laura"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/rsvp-maybe.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/rsvp-maybe.json b/streams-util/src/test/resources/activities/rsvp-maybe.json
new file mode 100644
index 0000000..b1ec1b5
--- /dev/null
+++ b/streams-util/src/test/resources/activities/rsvp-maybe.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "rsvp-maybe",
+  "object": {
+    "objectType": "event",
+    "displayName": "The Big Meeting"
+  },
+  "title": "Laura might attend The Big Meeting"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/rsvp-no.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/rsvp-no.json b/streams-util/src/test/resources/activities/rsvp-no.json
new file mode 100644
index 0000000..532b096
--- /dev/null
+++ b/streams-util/src/test/resources/activities/rsvp-no.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "rsvp-no",
+  "object": {
+    "objectType": "event",
+    "displayName": "The Big Meeting"
+  },
+  "title": "Mark will not attend the Big Meeting"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/rsvp-yes.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/rsvp-yes.json b/streams-util/src/test/resources/activities/rsvp-yes.json
new file mode 100644
index 0000000..170a5c4
--- /dev/null
+++ b/streams-util/src/test/resources/activities/rsvp-yes.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "rsvp-yes",
+  "object": {
+    "objectType": "event",
+    "displayName": "The Big Meeting"
+  },
+  "title": "Laura will attend the Big Meeting"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/satisfy.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/satisfy.json b/streams-util/src/test/resources/activities/satisfy.json
new file mode 100644
index 0000000..16151fa
--- /dev/null
+++ b/streams-util/src/test/resources/activities/satisfy.json
@@ -0,0 +1,21 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "satisfy",
+  "object": {
+    "objectType": "http://example.org/condition",
+    "displayName": "Some Condition"
+  },
+  "target": {
+    "objectType": "http://example.org/parole",
+    "displayName": "Terms of Parole"
+  },
+  "title": "Mark has satisfied a condition of his parole."
+}
+      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/save.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/save.json b/streams-util/src/test/resources/activities/save.json
new file mode 100644
index 0000000..70c0f5f
--- /dev/null
+++ b/streams-util/src/test/resources/activities/save.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "save",
+  "object": {
+    "objectType": "note",
+    "displayName": "A note about something important"
+  },
+  "target": {
+    "objectType": "collection",
+    "displayName": "Laura's Reading List"
+  },
+  "title": "Laura saved the note to her reading list"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/schedule.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/schedule.json b/streams-util/src/test/resources/activities/schedule.json
new file mode 100644
index 0000000..f214290
--- /dev/null
+++ b/streams-util/src/test/resources/activities/schedule.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "schedule",
+  "object": {
+    "objectType": "event",
+    "displayName": "The Big Meeting"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/search.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/search.json b/streams-util/src/test/resources/activities/search.json
new file mode 100644
index 0000000..511b612
--- /dev/null
+++ b/streams-util/src/test/resources/activities/search.json
@@ -0,0 +1,21 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "search",
+  "object": {
+    "objectType": "place",
+    "displayName": "Big Hotel",
+    "address": {
+      "locality": "New York",
+      "region": "NY"
+    }
+  },
+  "title": "Laura searched for a hotel in New York City, NY"
+}
+      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/sell.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/sell.json b/streams-util/src/test/resources/activities/sell.json
new file mode 100644
index 0000000..ab07fb0
--- /dev/null
+++ b/streams-util/src/test/resources/activities/sell.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "sell",
+  "object": {
+    "objectType": "product",
+    "displayName": "A cool product"
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Laura"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/send.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/send.json b/streams-util/src/test/resources/activities/send.json
new file mode 100644
index 0000000..b392ce8
--- /dev/null
+++ b/streams-util/src/test/resources/activities/send.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "send",
+  "object": {
+    "objectType": "note",
+    "content": "Thank you for the cool product."
+  },
+  "target": {
+    "objectType": "person",
+    "displayName": "Mark"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/share.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/share.json b/streams-util/src/test/resources/activities/share.json
new file mode 100644
index 0000000..dc7b9f1
--- /dev/null
+++ b/streams-util/src/test/resources/activities/share.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "share",
+  "object": {
+    "objectType": "note",
+    "displayName": "An important note"
+  },
+  "title": "Mark shared an important note."
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/sponsor.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/sponsor.json b/streams-util/src/test/resources/activities/sponsor.json
new file mode 100644
index 0000000..156c322
--- /dev/null
+++ b/streams-util/src/test/resources/activities/sponsor.json
@@ -0,0 +1,17 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "organization",
+    "displayName": "Acme, Co"
+  },
+  "verb": "sponsor",
+  "object": {
+    "objectType": "game",
+    "displayName": "World Series"
+  },
+  "title": "Acme, Co sponsored the World Series"
+}
+      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/start.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/start.json b/streams-util/src/test/resources/activities/start.json
new file mode 100644
index 0000000..b9aede2
--- /dev/null
+++ b/streams-util/src/test/resources/activities/start.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "start",
+  "object": {
+    "objectType": "process",
+    "displayName": "A Long Running Process"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/stop-following.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/stop-following.json b/streams-util/src/test/resources/activities/stop-following.json
new file mode 100644
index 0000000..04b83e7
--- /dev/null
+++ b/streams-util/src/test/resources/activities/stop-following.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "stop-following",
+  "object": {
+    "objectType": "person",
+    "displayName": "Mark"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/submit.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/submit.json b/streams-util/src/test/resources/activities/submit.json
new file mode 100644
index 0000000..0fd3c34
--- /dev/null
+++ b/streams-util/src/test/resources/activities/submit.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "submit",
+  "object": {
+    "objectType": "issue",
+    "displayName": "Issue #127"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/tag.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/tag.json b/streams-util/src/test/resources/activities/tag.json
new file mode 100644
index 0000000..dba6112
--- /dev/null
+++ b/streams-util/src/test/resources/activities/tag.json
@@ -0,0 +1,19 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "tag",
+  "object": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "target": {
+    "objectType": "image",
+    "displayName": "Pictures of my cats"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/terminate.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/terminate.json b/streams-util/src/test/resources/activities/terminate.json
new file mode 100644
index 0000000..f4d886e
--- /dev/null
+++ b/streams-util/src/test/resources/activities/terminate.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "terminate",
+  "object": {
+    "objectType": "process",
+    "displayName": "A long running process"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/tie.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/tie.json b/streams-util/src/test/resources/activities/tie.json
new file mode 100644
index 0000000..71a3c39
--- /dev/null
+++ b/streams-util/src/test/resources/activities/tie.json
@@ -0,0 +1,24 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "collection",
+    "items": [
+      {
+        "objectType": "organization",
+        "displayName": "New York Giants"
+      },
+      {
+        "objectType": "organization",
+        "displayName": "Oakland Raiders"
+      }
+    ]
+  },
+  "verb": "tie",
+  "object": {
+    "objectType": "game",
+    "displayName": "Super Bowl"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/unfavorite.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/unfavorite.json b/streams-util/src/test/resources/activities/unfavorite.json
new file mode 100644
index 0000000..b1e7bcd
--- /dev/null
+++ b/streams-util/src/test/resources/activities/unfavorite.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "unfavorite",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some article"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/unlike.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/unlike.json b/streams-util/src/test/resources/activities/unlike.json
new file mode 100644
index 0000000..9bc583f
--- /dev/null
+++ b/streams-util/src/test/resources/activities/unlike.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "unlike",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some article"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/unsatisfy.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/unsatisfy.json b/streams-util/src/test/resources/activities/unsatisfy.json
new file mode 100644
index 0000000..739823c
--- /dev/null
+++ b/streams-util/src/test/resources/activities/unsatisfy.json
@@ -0,0 +1,20 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "unsatisfy",
+  "object": {
+    "objectType": "http://example.org/condition",
+    "displayName": "Some Condition"
+  },
+  "target": {
+    "objectType": "http://example.org/parole",
+    "displayName": "Terms of Parole"
+  },
+  "title": "Mark has not satisfied a condition of his parole."
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/unsave.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/unsave.json b/streams-util/src/test/resources/activities/unsave.json
new file mode 100644
index 0000000..a9a21f0
--- /dev/null
+++ b/streams-util/src/test/resources/activities/unsave.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "unsave",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some article"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/unshare.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/unshare.json b/streams-util/src/test/resources/activities/unshare.json
new file mode 100644
index 0000000..4d45a6d
--- /dev/null
+++ b/streams-util/src/test/resources/activities/unshare.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "unshare",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some article"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/update.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/update.json b/streams-util/src/test/resources/activities/update.json
new file mode 100644
index 0000000..7dbed20
--- /dev/null
+++ b/streams-util/src/test/resources/activities/update.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "update",
+  "object": {
+    "objectType": "article",
+    "displayName": "Some article"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/use.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/use.json b/streams-util/src/test/resources/activities/use.json
new file mode 100644
index 0000000..699c4b8
--- /dev/null
+++ b/streams-util/src/test/resources/activities/use.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Laura"
+  },
+  "verb": "use",
+  "object": {
+    "objectType": "product",
+    "displayName": "A cool product"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/watch.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/watch.json b/streams-util/src/test/resources/activities/watch.json
new file mode 100644
index 0000000..2052f06
--- /dev/null
+++ b/streams-util/src/test/resources/activities/watch.json
@@ -0,0 +1,16 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "person",
+    "displayName": "Mark"
+  },
+  "verb": "watch",
+  "object": {
+    "objectType": "video",
+    "displayName": "Some random movie"
+  }
+}
+      

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/activities/win.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/activities/win.json b/streams-util/src/test/resources/activities/win.json
new file mode 100644
index 0000000..2cf9d5a
--- /dev/null
+++ b/streams-util/src/test/resources/activities/win.json
@@ -0,0 +1,15 @@
+{
+  "$license": [
+    "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+    "http://www.apache.org/licenses/LICENSE-2.0"
+  ],
+  "actor": {
+    "objectType": "organization",
+    "displayName": "Arizona Diamond Backs"
+  },
+  "verb": "win",
+  "object": {
+    "objectType": "game",
+    "displayName": "World Series"
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/media_link.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/media_link.json b/streams-util/src/test/resources/media_link.json
new file mode 100644
index 0000000..0bed6f0
--- /dev/null
+++ b/streams-util/src/test/resources/media_link.json
@@ -0,0 +1,7 @@
+{
+    "$schema": "http://streams.incubator.apache.org/site/0.3-incubating-SNAPSHOT/streams-schemas/media_link.json#",
+    "duration": 30000,
+    "height": 480,
+    "width": 640,
+    "url": "http://youtube.com/s7hc30sb"
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/objects/event.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/objects/event.json b/streams-util/src/test/resources/objects/event.json
new file mode 100644
index 0000000..ae1108e
--- /dev/null
+++ b/streams-util/src/test/resources/objects/event.json
@@ -0,0 +1,18 @@
+{
+    "objectType": "event",
+    "displayName": "Meeting with Joe",
+    "startTime": "2012-12-12T12:00:00Z",
+    "endTime: "2012-12-12T13:00:00Z",
+    "invited": {
+      "items": [
+        {"objectType": "person",
+         "displayName": "Joe"}
+      ]
+    },
+    "attending": {
+      "items": [
+        {"objectType": "person",
+         "displayName": "Joe"}
+      ]
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/objects/group.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/objects/group.json b/streams-util/src/test/resources/objects/group.json
new file mode 100644
index 0000000..9721874
--- /dev/null
+++ b/streams-util/src/test/resources/objects/group.json
@@ -0,0 +1,16 @@
+{
+  "objectType": "group",
+  "displayName": "My Work Group",
+  "members": {
+	"items": [
+	  {
+		"objectType": "person",
+		"displayName": "Laura"
+	  },
+	  {
+		"objectType": "person",
+		"displayName": "Mark"
+	  }
+	]
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/objects/issue.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/objects/issue.json b/streams-util/src/test/resources/objects/issue.json
new file mode 100644
index 0000000..86bc6d2
--- /dev/null
+++ b/streams-util/src/test/resources/objects/issue.json
@@ -0,0 +1,9 @@
+{
+   "objectType": "issue",
+   "displayName": "Terms of Use Violation",
+   "url": "http://.../terms-of-use",
+   "types": [
+	 "http://example.org/codes/inappropriateMaterial",
+	 "http://example.org/codes/copyrightViolation"
+   ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/objects/note.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/objects/note.json b/streams-util/src/test/resources/objects/note.json
new file mode 100644
index 0000000..15a4495
--- /dev/null
+++ b/streams-util/src/test/resources/objects/note.json
@@ -0,0 +1,12 @@
+{
+  "objectType": "note",
+  "displayName": "A note with a binary attachment",
+  "attachments": [
+	{
+	  "objectType": "binary",
+	  "data": "dGhpcyBpcyB1bmNvbXByZXNzZWQgZGF0YQo=",
+	  "md5": "827ae7e1ab45e4dd591d087c741e5770",
+	  "length": 25
+	}
+  ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/objects/permission.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/objects/permission.json b/streams-util/src/test/resources/objects/permission.json
new file mode 100644
index 0000000..24b6fa2
--- /dev/null
+++ b/streams-util/src/test/resources/objects/permission.json
@@ -0,0 +1,9 @@
+{
+    "objectType": "permission",
+    "displayName": "Permission to Edit File: 2Q2014 Sales Forecast.xls",
+    "scope": {
+      "objectType": "file",
+      "displayName": "2Q2014 Sales Forecast.xls"
+    },
+    "actions": ["modify", "delete", "create"]
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/objects/place.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/objects/place.json b/streams-util/src/test/resources/objects/place.json
new file mode 100644
index 0000000..8e454be
--- /dev/null
+++ b/streams-util/src/test/resources/objects/place.json
@@ -0,0 +1,9 @@
+{
+  "objectType": "place",
+  "displayName": "Some Random Location on Earth",
+  "position": {
+	"latitude": 34.34,
+	"longitude": -127.23,
+	"altitude": 100.05
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/objects/task.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/objects/task.json b/streams-util/src/test/resources/objects/task.json
new file mode 100644
index 0000000..f4878dc
--- /dev/null
+++ b/streams-util/src/test/resources/objects/task.json
@@ -0,0 +1,16 @@
+{
+    "objectType": "task",
+    "displayName": "James needs to read the spec",
+    "by": "2012-12-12T12:12:12Z",
+    "verb": "read",
+    "actor": {
+      "objectType": "person",
+      "displayName": "James"
+    },
+    "object": {
+      "objectType": "file",
+      "displayName": "A specification",
+      "url": "http://example.org/spec.html"
+    },
+    "required": true
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-util/src/test/resources/objects/video.json
----------------------------------------------------------------------
diff --git a/streams-util/src/test/resources/objects/video.json b/streams-util/src/test/resources/objects/video.json
new file mode 100644
index 0000000..bc19e89
--- /dev/null
+++ b/streams-util/src/test/resources/objects/video.json
@@ -0,0 +1,8 @@
+{
+    "objectType": "video",
+    "displayName": "Cute little kittens",
+    "embedCode": "<video width="320" height="240" controls="controls">...</video>",
+    "stream": {
+      "url": "http://example.org/my_video.mpg"
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6187265f/streams-verbs/pom.xml
----------------------------------------------------------------------
diff --git a/streams-verbs/pom.xml b/streams-verbs/pom.xml
index 38a50aa..e751c59 100644
--- a/streams-verbs/pom.xml
+++ b/streams-verbs/pom.xml
@@ -159,7 +159,7 @@
                     <addCompileSourceRoot>true</addCompileSourceRoot>
                     <generateBuilders>true</generateBuilders>
                     <sourcePaths>
-                        <sourcePath>src/main/jsonschema</sourcePath>
+                        <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                     </sourcePaths>
                     <outputDirectory>target/generated-sources/jsonschema2pojo</outputDirectory>
                     <targetPackage>org.apache.streams.verbs</targetPackage>


[21/32] incubator-streams git commit: first take at STREAMS-389: streams-project/streams-plugins/streams-plugin-scala

Posted by sb...@apache.org.
first take at STREAMS-389: streams-project/streams-plugins/streams-plugin-scala


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/57f17d76
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/57f17d76
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/57f17d76

Branch: refs/feature/STREAMS-389,398
Commit: 57f17d765a5e0f4767a998e47e8afb096a8ff792
Parents: 95a02d7
Author: Steve Blackmon (@steveblackmon) <sb...@apache.org>
Authored: Mon Dec 7 13:48:38 2015 -0700
Committer: Steve Blackmon @steveblackmon <sb...@apache.org>
Committed: Sat May 7 18:53:32 2016 -0500

----------------------------------------------------------------------
 streams-plugins/pom.xml                         |   1 +
 streams-plugins/streams-plugin-scala/pom.xml    | 243 ++++++++++++
 .../streams/plugins/StreamsPojoScala.java       | 371 +++++++++++++++++++
 .../streams/plugins/StreamsPojoScalaMojo.java   |  71 ++++
 .../plugins/test/StreamsPojoScalaTest.java      |  55 +++
 .../test/resources/streams-plugin-scala/pom.xml |  40 ++
 6 files changed, 781 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/57f17d76/streams-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/pom.xml b/streams-plugins/pom.xml
index 5d403ac..f2c8999 100644
--- a/streams-plugins/pom.xml
+++ b/streams-plugins/pom.xml
@@ -42,6 +42,7 @@
         <module>streams-plugin-hive</module>
         <module>streams-plugin-pig</module>
         <module>streams-plugin-pojo</module>
+        <module>streams-plugin-scala</module>
  	</modules>
 
     <dependencyManagement>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/57f17d76/streams-plugins/streams-plugin-scala/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/pom.xml b/streams-plugins/streams-plugin-scala/pom.xml
new file mode 100644
index 0000000..f718260
--- /dev/null
+++ b/streams-plugins/streams-plugin-scala/pom.xml
@@ -0,0 +1,243 @@
+<?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
+  ~
+  ~   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>
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-scala</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>maven-plugin</packaging>
+
+    <parent>
+        <groupId>org.apache.streams</groupId>
+        <artifactId>streams-plugins</artifactId>
+        <version>0.3-incubating-SNAPSHOT</version>
+    </parent>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-config</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jsonschema2pojo</groupId>
+            <artifactId>jsonschema2pojo-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.streams</groupId>
+            <artifactId>streams-pojo</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
+        <dependency>
+            <groupId>org.reflections</groupId>
+            <artifactId>reflections</artifactId>
+            <version>0.9.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-aether-provider</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>3.3.3</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-compat</artifactId>
+            <version>3.3.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+            <version>3.3.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.sonatype.aether</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <version>2.7</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.maven</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>3.0.15</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-plugin-plugin</artifactId>
+            <version>3.4</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>commons-logging</artifactId>
+                    <groupId>commons-logging</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-api</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-tools-generators</artifactId>
+            <version>3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-testing</groupId>
+            <artifactId>maven-plugin-testing-harness</artifactId>
+            <version>3.3.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>joda-time</groupId>
+            <artifactId>joda-time</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.joda</groupId>
+            <artifactId>joda-convert</artifactId>
+            <version>1.8.1</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <sourceDirectory>src/main/java</sourceDirectory>
+        <testSourceDirectory>src/test/java</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+            </testResource>
+        </testResources>
+        <plugins>
+            <plugin>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <version>3.4</version>
+                <configuration>
+                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>mojo-descriptor</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>descriptor</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.reflections</groupId>
+                <artifactId>reflections-maven</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>reflections</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.4</version>
+                <executions>
+                    <execution>
+                        <id>streams-pojo-resource-dependencies</id>
+                        <phase>process-test-resources</phase>
+                        <goals>
+                            <goal>unpack-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <includeArtifactIds>streams-pojo</includeArtifactIds>
+                            <includes>org/apache/streams/pojo/json/**</includes>
+                            <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>net.alchim31.maven</groupId>
+                <artifactId>scala-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>scala-compile-generated-sources</id>
+                        <phase>integration-test</phase>
+                        <goals>
+                            <goal>compile</goal>
+                        </goals>
+                        <configuration>
+                            <sourceDir>target/generated-sources/scala</sourceDir>
+                            <target>target/testClasses/scala</target>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/57f17d76/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScala.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScala.java b/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScala.java
new file mode 100644
index 0000000..1c3e317
--- /dev/null
+++ b/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScala.java
@@ -0,0 +1,371 @@
+package org.apache.streams.plugins;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+import org.apache.streams.data.DocumentClassifier;
+import org.reflections.ReflectionUtils;
+import org.reflections.Reflections;
+import org.reflections.scanners.SubTypesScanner;
+import org.reflections.scanners.TypeAnnotationsScanner;
+import org.reflections.util.ClasspathHelper;
+import org.reflections.util.ConfigurationBuilder;
+import org.reflections.ReflectionUtils.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.annotation.Generated;
+import java.io.File;
+import java.io.IOException;
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.nio.file.Files;
+import java.nio.file.OpenOption;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Created by sblackmon on 11/18/15.
+ */
+public class StreamsPojoScala implements Runnable {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoScala.class);
+
+    private final static String LS = System.getProperty("line.separator");
+
+    private StreamsPojoScalaMojo mojo;
+
+    String outDir = "./target/generated-sources/scala";
+    String packages = "org.apache.streams.pojo.json";
+
+    private final Reflections reflections = new Reflections(
+            new ConfigurationBuilder()
+                    // TODO
+                    .forPackages(packages)
+                    .setScanners(
+                            new SubTypesScanner(),
+                            new TypeAnnotationsScanner()));
+
+    public void main(String[] args) {
+        StreamsPojoScala streamsPojoScala = new StreamsPojoScala();
+        Thread thread = new Thread(streamsPojoScala);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public StreamsPojoScala(StreamsPojoScalaMojo mojo) {
+        this.mojo = mojo;
+        if (    mojo != null &&
+                mojo.getTarget() != null &&
+                !Strings.isNullOrEmpty(mojo.getTarget().getAbsolutePath())
+            )
+            outDir = mojo.getTarget().getAbsolutePath();
+
+        if (    mojo != null &&
+                mojo.getPackages() != null &&
+                !Strings.isNullOrEmpty(mojo.getPackages())
+            )
+            packages = mojo.getPackages();
+    }
+
+    public StreamsPojoScala() {
+    }
+
+    public void run() {
+
+        List<Class<?>> serializableClasses = detectSerializableClasses();
+
+        LOGGER.info("Detected {} serialiables:", serializableClasses.size());
+        for( Class clazz : serializableClasses )
+            LOGGER.debug(clazz.toString());
+
+        List<Class<?>> pojoClasses = detectPojoClasses(serializableClasses);
+
+        LOGGER.info("Detected {} pojos:", pojoClasses.size());
+        for( Class clazz : pojoClasses )
+            LOGGER.debug(clazz.toString());
+
+        List<Class<?>> traits = detectTraits(pojoClasses);
+
+        LOGGER.info("Detected {} traits:", traits.size());
+        for( Class clazz : traits )
+            LOGGER.debug(clazz.toString());
+
+        List<Class<?>> cases = detectCases(pojoClasses);
+
+        LOGGER.info("Detected {} cases:", cases.size());
+        for( Class clazz : cases )
+            LOGGER.debug(clazz.toString());
+
+
+        for( Class clazz : traits ) {
+            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".scala").replace(".","/")+"/traits/";
+            String pojoName = clazz.getSimpleName()+".scala";
+            String pojoScala = renderTrait(clazz);
+            writeFile(outDir+"/"+pojoPath+pojoName, pojoScala);
+        }
+
+        for( Class clazz : traits ) {
+            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".scala").replace(".","/")+"/";
+            String pojoName = clazz.getSimpleName()+".scala";
+            String pojoScala = renderClass(clazz);
+            writeFile(outDir+"/"+pojoPath+pojoName, pojoScala);
+        }
+
+        for( Class clazz : cases ) {
+            String pojoPath = clazz.getPackage().getName().replace(".pojo.json", ".scala").replace(".","/")+"/";
+            String pojoName = clazz.getSimpleName()+".scala";
+            String pojoScala = renderCase(clazz);
+            writeFile(outDir+"/"+pojoPath+pojoName, pojoScala);
+        }
+
+    }
+
+    private void writeFile(String pojoFile, String pojoScala) {
+        try {
+            File path = new File(pojoFile);
+            File dir = path.getParentFile();
+            if( !dir.exists() )
+                dir.mkdirs();
+            Files.write(Paths.get(pojoFile), pojoScala.getBytes(), StandardOpenOption.CREATE_NEW);
+        } catch (Exception e) {
+            LOGGER.error("Write Exception: {}", e);
+        }
+    }
+
+    public List<Class<?>> detectSerializableClasses() {
+
+        Set<Class<? extends Serializable>> classes =
+                reflections.getSubTypesOf(java.io.Serializable.class);
+
+        List<Class<?>> result = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            result.add(clazz);
+        }
+
+        return result;
+    }
+
+    public List<Class<?>> detectPojoClasses(List<Class<?>> classes) {
+
+        List<Class<?>> result = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            try {
+                clazz.newInstance().toString();
+            } catch( Exception e) {}
+            // super-halfass way to know if this is a jsonschema2pojo
+            if( clazz.getAnnotations().length >= 1 )
+                result.add(clazz);
+        }
+
+        return result;
+    }
+
+    public List<Class<?>> detectTraits(List<Class<?>> classes) {
+
+        List<Class<?>> traits = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            if (reflections.getSubTypesOf(clazz).size() > 0)
+                traits.add(clazz);
+        }
+
+        return traits;
+    }
+
+    public List<Class<?>> detectCases(List<Class<?>> classes) {
+
+        List<Class<?>> cases = Lists.newArrayList();
+
+        for( Class clazz : classes ) {
+            if (reflections.getSubTypesOf(clazz).size() == 0)
+                cases.add(clazz);
+        }
+
+        return cases;
+    }
+
+
+    public String renderTrait(Class<?> pojoClass) {
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append("package ");
+        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".scala"));
+        stringBuffer.append(".traits");
+        stringBuffer.append(LS);
+        stringBuffer.append("trait "+pojoClass.getSimpleName());
+        stringBuffer.append(" extends Serializable");
+        stringBuffer.append(" {");
+
+        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
+        appendFields(stringBuffer, fields, "def", ";");
+
+        stringBuffer.append("}");
+
+        return stringBuffer.toString();
+    }
+
+    public String renderClass(Class<?> pojoClass) {
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append("package ");
+        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".scala"));
+        stringBuffer.append(LS);
+        stringBuffer.append("import org.apache.commons.lang.builder.{HashCodeBuilder, EqualsBuilder, ToStringBuilder}");
+        stringBuffer.append(LS);
+        stringBuffer.append("class "+pojoClass.getSimpleName());
+        stringBuffer.append(" (");
+
+        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
+        appendFields(stringBuffer, fields, "var", ",");
+
+        stringBuffer.append(")");
+        stringBuffer.append(" extends "+pojoClass.getPackage().getName().replace(".pojo.json", ".scala")+".traits."+pojoClass.getSimpleName());
+        stringBuffer.append(" with Serializable ");
+        stringBuffer.append("{ ");
+        stringBuffer.append(LS);
+        stringBuffer.append("override def equals(obj: Any) = obj match { ");
+        stringBuffer.append(LS);
+        stringBuffer.append("  case other: ");
+        stringBuffer.append(pojoClass.getSimpleName());
+        stringBuffer.append(" => other.getClass == getClass && EqualsBuilder.reflectionEquals(this,obj)");
+        stringBuffer.append(LS);
+        stringBuffer.append("  case _ => false");
+        stringBuffer.append(LS);
+        stringBuffer.append("}");
+        stringBuffer.append(LS);
+        stringBuffer.append("override def hashCode = new HashCodeBuilder().hashCode");
+        stringBuffer.append(LS);
+        stringBuffer.append("}");
+
+        return stringBuffer.toString();
+    }
+
+    public String renderCase(Class<?> pojoClass) {
+        StringBuffer stringBuffer = new StringBuffer();
+        stringBuffer.append("package ");
+        stringBuffer.append(pojoClass.getPackage().getName().replace(".pojo.json", ".scala"));
+        stringBuffer.append(LS);
+        stringBuffer.append("case class "+pojoClass.getSimpleName());
+        stringBuffer.append("(");
+        Set<Field> fields = ReflectionUtils.getAllFields(pojoClass);
+        appendFields(stringBuffer, fields, "var", ",");
+        stringBuffer.append(")");
+        if( pojoClass.getSuperclass() != null && !pojoClass.getSuperclass().equals(java.lang.Object.class)) {
+            stringBuffer.append(" extends "+pojoClass.getSuperclass().getPackage().getName().replace(".pojo.json", ".scala")+".traits."+pojoClass.getSuperclass().getSimpleName());
+        }
+        stringBuffer.append(LS);
+
+        return stringBuffer.toString();
+    }
+
+    private void appendFields(StringBuffer stringBuffer, Set<Field> fields, String varDef, String fieldDelimiter) {
+        if( fields.size() > 0 ) {
+            stringBuffer.append(LS);
+            Map<String,Field> fieldsToAppend = uniqueFields(fields);
+            for( Iterator<Field> iter = fieldsToAppend.values().iterator(); iter.hasNext(); ) {
+                Field field = iter.next();
+                if( override( field ) )
+                    stringBuffer.append("override ");
+                stringBuffer.append(varDef);
+                stringBuffer.append(" ");
+                stringBuffer.append(name(field));
+                stringBuffer.append(": ");
+                if( option(field) ) {
+                    stringBuffer.append("scala.Option[");
+                    stringBuffer.append(type(field));
+                    stringBuffer.append("]");
+                } else {
+                    stringBuffer.append(type(field));
+                }
+                if( !fieldDelimiter.equals(";") && value(field) != null) {
+                    stringBuffer.append(" = ");
+                    if( option(field) ) {
+                        stringBuffer.append("scala.Some(");
+                        stringBuffer.append(value(field));
+                        stringBuffer.append(")");
+                    } else {
+                        stringBuffer.append(value(field));
+                    }
+                }
+                if( iter.hasNext()) stringBuffer.append(fieldDelimiter);
+                stringBuffer.append(LS);
+            }
+        } else {
+            stringBuffer.append(LS);
+        }
+    }
+
+    private boolean option(Field field) {
+        if( field.getName().equals("verb")) {
+            return false;
+        } else if( field.getType().equals(java.util.Map.class)) {
+            return false;
+        } else if( field.getType().equals(java.util.List.class)) {
+            return false;
+        } else return true;
+    }
+
+    private String value(Field field) {
+        if( field.getName().equals("verb")) {
+            return "\"post\"";
+        } else if( field.getName().equals("objectType")) {
+            return "\"application\"";
+        } else return null;
+    }
+
+    private String type(Field field) {
+        if( field.getType().equals(java.lang.String.class)) {
+            return "String";
+        } else if( field.getType().equals(java.util.Map.class)) {
+            return "scala.collection.mutable.Map[String,Any]";
+        } else if( field.getType().equals(java.util.List.class)) {
+            return "scala.collection.mutable.MutableList[Any]";
+        }
+        return field.getType().getCanonicalName().replace(".pojo.json", ".scala");
+    }
+
+    private Map<String,Field> uniqueFields(Set<Field> fieldset) {
+        Map<String,Field> fields = Maps.newTreeMap();
+        Field item = null;
+        for( Iterator<Field> it = fieldset.iterator(); it.hasNext(); item = it.next() ) {
+            if( item != null && item.getName() != null ) {
+                Field added = fields.put(item.getName(), item);
+            }
+            // ensure right class will get used
+        }
+        return fields;
+    }
+
+    private String name(Field field) {
+        if( field.getName().equals("object"))
+            return "obj";
+        else return field.getName();
+    }
+
+    private boolean override(Field field) {
+        try {
+            if( field.getDeclaringClass().getSuperclass().getField(field.getName()) != null )
+                return true;
+            else return false;
+        } catch( Exception e ) {
+            return false;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/57f17d76/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScalaMojo.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScalaMojo.java b/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScalaMojo.java
new file mode 100644
index 0000000..baa0f50
--- /dev/null
+++ b/streams-plugins/streams-plugin-scala/src/main/java/org/apache/streams/plugins/StreamsPojoScalaMojo.java
@@ -0,0 +1,71 @@
+package org.apache.streams.plugins;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Execute;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.settings.Settings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+
+@Mojo(  name = "scala",
+        defaultPhase = LifecyclePhase.GENERATE_SOURCES
+)
+@Execute(   goal = "scala",
+            phase = LifecyclePhase.GENERATE_SOURCES
+)
+public class StreamsPojoScalaMojo extends AbstractMojo {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoScalaMojo.class);
+
+    @Component
+    private MavenProject project;
+
+//    @Component
+//    private Settings settings;
+//
+//    @Parameter( defaultValue = "${localRepository}", readonly = true, required = true )
+//    protected ArtifactRepository localRepository;
+//
+//    @Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
+//    private PluginDescriptor plugin;
+//
+    @Parameter( defaultValue = "${project.basedir}", readonly = true )
+    private File basedir;
+
+    @Parameter(defaultValue = "${project.build.directory}", readonly = true)
+    private File target;
+
+    @Parameter(defaultValue = "org.apache.streams.pojo.json", readonly = true)
+    private String packages;
+
+    public void execute() throws MojoExecutionException {
+        StreamsPojoScala streamsPojoScala = new StreamsPojoScala(this);
+        Thread thread = new Thread(streamsPojoScala);
+        thread.start();
+        try {
+            thread.join();
+        } catch (InterruptedException e) {
+            LOGGER.error("InterruptedException", e);
+        } catch (Exception e) {
+            LOGGER.error("Exception", e);
+        }
+        return;
+    }
+
+    public File getTarget() {
+        return target;
+    }
+
+    public String getPackages() {
+        return packages;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/57f17d76/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsPojoScalaTest.java
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsPojoScalaTest.java b/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsPojoScalaTest.java
new file mode 100644
index 0000000..4e5e7e3
--- /dev/null
+++ b/streams-plugins/streams-plugin-scala/src/test/java/org/apache/streams/plugins/test/StreamsPojoScalaTest.java
@@ -0,0 +1,55 @@
+package org.apache.streams.plugins.test;
+
+import org.apache.streams.plugins.StreamsPojoScala;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileFilter;
+
+/**
+ * Test that Activity beans are compatible with the example activities in the spec.
+ */
+public class StreamsPojoScalaTest {
+
+    private final static Logger LOGGER = LoggerFactory.getLogger(StreamsPojoScalaTest.class);
+
+    /**
+     * Tests that all example activities can be loaded into Activity beans
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testDetectPojoScala() throws Exception {
+        StreamsPojoScala streamsPojoScala = new StreamsPojoScala();
+        streamsPojoScala.main(new String[0]);
+
+        File testOutput = new File( "./target/generated-sources/scala/org/apache/streams/scala");
+        FileFilter scalaFilter = new FileFilter() {
+            @Override
+            public boolean accept(File pathname) {
+                if( pathname.getName().endsWith(".scala") )
+                    return true;
+                return false;
+            }
+        };
+
+        assert( testOutput != null );
+        assert( testOutput.exists() == true );
+        assert( testOutput.isDirectory() == true );
+        assert( testOutput.listFiles(scalaFilter).length == 11 );
+        assert( new File(testOutput + "/traits").exists() == true );
+        assert( new File(testOutput + "/traits").isDirectory() == true );
+        assert( new File(testOutput + "/traits").listFiles(scalaFilter) != null );
+        assert( new File(testOutput + "/traits").listFiles(scalaFilter).length == 4 );
+        assert( new File(testOutput + "/objectTypes").exists() == true );
+        assert( new File(testOutput + "/objectTypes").isDirectory() == true );
+        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter) != null );
+        assert( new File(testOutput + "/objectTypes").listFiles(scalaFilter).length == 43 );
+        assert( new File(testOutput + "/verbs").exists() == true );
+        assert( new File(testOutput + "/verbs").isDirectory() == true );
+        assert( new File(testOutput + "/verbs").listFiles(scalaFilter) != null );
+        assert( new File(testOutput + "/verbs").listFiles(scalaFilter).length == 89 );
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/57f17d76/streams-plugins/streams-plugin-scala/src/test/resources/streams-plugin-scala/pom.xml
----------------------------------------------------------------------
diff --git a/streams-plugins/streams-plugin-scala/src/test/resources/streams-plugin-scala/pom.xml b/streams-plugins/streams-plugin-scala/src/test/resources/streams-plugin-scala/pom.xml
new file mode 100644
index 0000000..b4867a0
--- /dev/null
+++ b/streams-plugins/streams-plugin-scala/src/test/resources/streams-plugin-scala/pom.xml
@@ -0,0 +1,40 @@
+<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>
+
+    <groupId>org.apache.streams.plugins</groupId>
+    <artifactId>streams-plugin-scala-test</artifactId>
+    <version>0.3-incubating-SNAPSHOT</version>
+    <packaging>jar</packaging>
+    <name>Test StreamsPojoScalaMojo</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.streams.plugins</groupId>
+                <artifactId>streams-plugin-scala</artifactId>
+                <version>0.3-incubating-SNAPSHOT</version>
+                <configuration>
+                    <packages>org.apache.streams.pojo.json</packages>
+                    <target>target/test-classes/streams-scala-plugin/</target>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>scala</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file


[06/32] incubator-streams git commit: STREAMS-398 - streams-schemas

Posted by sb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/agree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/agree.json b/streams-schemas/src/site/resources/verbs/agree.json
new file mode 100644
index 0000000..5095153
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/agree.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Agree",
+    "description": "Indicates that the actor agrees with the object. For example, a person agreeing with an argument, or expressing agreement with a particular issue.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "agree"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} agrees with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/append.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/append.json b/streams-schemas/src/site/resources/verbs/append.json
new file mode 100644
index 0000000..648d192
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/append.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Append",
+    "description": "Indicates that the actor has appended the object to the target. For instance, a person appending a new record to a database.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "append"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} append {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/approve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/approve.json b/streams-schemas/src/site/resources/verbs/approve.json
new file mode 100644
index 0000000..ec66f9b
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/approve.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Approve",
+    "description": "Indicates that the actor has approved the object. For instance, a manager might approve a travel request.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "approve"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} approved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/archive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/archive.json b/streams-schemas/src/site/resources/verbs/archive.json
new file mode 100644
index 0000000..24aea16
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/archive.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Archive",
+    "description": "Indicates that the actor has archived the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "archive"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} archived {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/assign.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/assign.json b/streams-schemas/src/site/resources/verbs/assign.json
new file mode 100644
index 0000000..8fe5458
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/assign.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Assign",
+    "description": "Indicates that the actor has assigned the object to the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "assign"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} assigned {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/at.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/at.json b/streams-schemas/src/site/resources/verbs/at.json
new file mode 100644
index 0000000..42c1222
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/at.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "At",
+    "description": "Indicates that the actor is currently located at the object. For instance, a person being at a specific physical location.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "assign"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} assigned {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/attach.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/attach.json b/streams-schemas/src/site/resources/verbs/attach.json
new file mode 100644
index 0000000..77ff605
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/attach.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Attach",
+    "description": "Indicates that the actor has attached the object to the target.For instance, a person attaching a file to a wiki page or an email.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "attach"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} attached {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/attend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/attend.json b/streams-schemas/src/site/resources/verbs/attend.json
new file mode 100644
index 0000000..07e60fd
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/attend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Attend",
+    "description": "Indicates that the actor has attended the object. For instance, a person attending a meeting.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "attend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} attended {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/author.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/author.json b/streams-schemas/src/site/resources/verbs/author.json
new file mode 100644
index 0000000..adc8b28
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/author.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Author",
+    "description": "Indicates that the actor has authored the object. Note that this is a more specific form of the verb \"create\".",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "author"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} authored {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/authorize.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/authorize.json b/streams-schemas/src/site/resources/verbs/authorize.json
new file mode 100644
index 0000000..7439b06
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/authorize.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Authorize",
+    "description": "Indicates that the actor has authorized the object. If a target is specified, it means that the authorization is specifically in regards to the target. For instance, a service can authorize a person to access a given application; in which case the actor is the service, the object is the person, and the target is the application. In contrast, a person can authorize a request; in which case the actor is the person and the object is the request and there might be no explicit target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "authorize"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} authorized {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/borrow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/borrow.json b/streams-schemas/src/site/resources/verbs/borrow.json
new file mode 100644
index 0000000..ede59c1
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/borrow.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Borrow",
+    "description": "Indicates that the actor has borrowed the object. If a target is specified, it identifies the entity from which the object was borrowed. For instance, if a person borrows a book from a library, the person is the actor, the book is the object and the library is the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "borrow"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} borrow {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/build.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/build.json b/streams-schemas/src/site/resources/verbs/build.json
new file mode 100644
index 0000000..a90441f
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/build.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Build",
+    "description": "Indicates that the actor has built the object. For example, if a person builds a model or compiles code.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "build"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} built {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/cancel.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/cancel.json b/streams-schemas/src/site/resources/verbs/cancel.json
new file mode 100644
index 0000000..4ab2406
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/cancel.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Cancel",
+    "description": "Indicates that the actor has canceled the object. For instance, canceling a calendar event.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "cancel"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} cancelled {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/checkin.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/checkin.json b/streams-schemas/src/site/resources/verbs/checkin.json
new file mode 100644
index 0000000..d59a8c2
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/checkin.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "checkin",
+    "description": "Indicates that the actor has checked-in to the object. For instance, a person checking-in to a Place.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "checkin"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} checked in at {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/close.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/close.json b/streams-schemas/src/site/resources/verbs/close.json
new file mode 100644
index 0000000..7aa049d
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/close.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Close",
+    "description": "Indicates that the actor has closed the object. For instance, the object could represent a ticket being tracked in an issue management system.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "close"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} closed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/complete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/complete.json b/streams-schemas/src/site/resources/verbs/complete.json
new file mode 100644
index 0000000..4a95d48
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/complete.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Complete",
+    "description": "Indicates that the actor has completed the object",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "complete"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} completed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/confirm.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/confirm.json b/streams-schemas/src/site/resources/verbs/confirm.json
new file mode 100644
index 0000000..aa8d45c
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/confirm.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Confirm",
+    "description": "Indicates that the actor has confirmed or agrees with the object. For instance, a software developer might confirm an issue reported against a product.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "confirm"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} confirmed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/consume.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/consume.json b/streams-schemas/src/site/resources/verbs/consume.json
new file mode 100644
index 0000000..3dc558a
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/consume.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Consume",
+    "description": "Indicates that the actor has consumed the object. The specific meaning is dependent largely on the object's type. For instance, an actor may \"consume\" an audio object, indicating that the actor has listened to it; or an actor may \"consume\" a book, indicating that the book has been read. As such, the \"consume\" verb is a more generic form of other more specific verbs such as \"read\" and \"play\".",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "consume"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} consumed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/create.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/create.json b/streams-schemas/src/site/resources/verbs/create.json
new file mode 100644
index 0000000..dda3012
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/create.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Create",
+    "description": "Indicates that the actor has created the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "create"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} created {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/delete.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/delete.json b/streams-schemas/src/site/resources/verbs/delete.json
new file mode 100644
index 0000000..39966c9
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/delete.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Delete",
+    "description": "Indicates that the actor has deleted the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "delete"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} deleted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/deliver.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/deliver.json b/streams-schemas/src/site/resources/verbs/deliver.json
new file mode 100644
index 0000000..a4b5648
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/deliver.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Deliver",
+    "description": "Indicates that the actor has delivered the object. For example, delivering a package.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "deliver"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} delivered {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/deny.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/deny.json b/streams-schemas/src/site/resources/verbs/deny.json
new file mode 100644
index 0000000..5bf473b
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/deny.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Deny",
+    "description": "Indicates that the actor has denied the object. For example, a manager may deny a travel request.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "deny"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} denied {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/disagree.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/disagree.json b/streams-schemas/src/site/resources/verbs/disagree.json
new file mode 100644
index 0000000..b2eb0c2
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/disagree.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Disagree",
+    "description": "Indicates that the actor disagrees with the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "disagree"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} disagrees with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/dislike.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/dislike.json b/streams-schemas/src/site/resources/verbs/dislike.json
new file mode 100644
index 0000000..e33cb26
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/dislike.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Dislike",
+    "description": "Indicates that the actor dislikes the object. Note that the \"dislike\" verb is distinct from the \"unlike\" verb which assumes that the object had been previously \"liked\".",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "dislike"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} dislikes {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/experience.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/experience.json b/streams-schemas/src/site/resources/verbs/experience.json
new file mode 100644
index 0000000..b760a5d
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/experience.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Experience",
+    "description": "Indicates that the actor has experienced the object in some manner. Note that, depending on the specific object types used for both the actor and object, the meaning of this verb can overlap that of the \"consume\" and \"play\" verbs. For instance, a person might \"experience\" a movie; or \"play\" the movie; or \"consume\" the movie. The \"experience\" verb can be considered a more generic form of other more specific verbs as \"consume\", \"play\", \"watch\", \"listen\", and \"read\"",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "experience"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} experienced {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/favorite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/favorite.json b/streams-schemas/src/site/resources/verbs/favorite.json
new file mode 100644
index 0000000..fa7afa3
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/favorite.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Favorite",
+    "description": "Indicates that the actor marked the object as an item of special interest.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "favorite"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} marked {object.displayName} as a favorite"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/find.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/find.json b/streams-schemas/src/site/resources/verbs/find.json
new file mode 100644
index 0000000..b1a7dacc
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/find.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Find",
+    "description": "Indicates that the actor has found the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "find"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} found {object.displayName}."
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/flag-as-inappropriate.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/flag-as-inappropriate.json b/streams-schemas/src/site/resources/verbs/flag-as-inappropriate.json
new file mode 100644
index 0000000..e6657aa
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/flag-as-inappropriate.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Flag-As-Inappropriate",
+    "description": "Indicates that the actor has flagged the object as being inappropriate for some reason. When using this verb, the context property can be used to provide additional detail about why the object has been flagged.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "flag-as-inappropriate"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} flagged {object.displayName} as inappropriate."
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/follow.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/follow.json b/streams-schemas/src/site/resources/verbs/follow.json
new file mode 100644
index 0000000..8f50b89
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/follow.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Follow",
+    "description": "Indicates that the actor began following the activity of the object. In most cases, the objectType will be a \"person\", but it can potentially be of any type that can sensibly generate activity. Processors MAY ignore (silently drop) successive identical \"follow\" activities.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "follow"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} started following {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/give.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/give.json b/streams-schemas/src/site/resources/verbs/give.json
new file mode 100644
index 0000000..a9b6e74
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/give.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Give",
+    "description": "Indicates that the actor is giving an object to the target. Examples include one person giving a badge object to another person. The object identifies the object being given. The target identifies the receiver.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "give"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} gave {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/host.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/host.json b/streams-schemas/src/site/resources/verbs/host.json
new file mode 100644
index 0000000..8c59cd0
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/host.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Host",
+    "description": "Indicates that the actor is hosting the object. As in hosting an event, or hosting a service.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "host"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is hosting {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/ignore.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/ignore.json b/streams-schemas/src/site/resources/verbs/ignore.json
new file mode 100644
index 0000000..442de31
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/ignore.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Ignore",
+    "description": "Indicates that the actor has ignored the object. For instance, this verb may be used when an actor has ignored a friend request, in which case the object may be the request-friend activity.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "ignore"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} ignored {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/insert.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/insert.json b/streams-schemas/src/site/resources/verbs/insert.json
new file mode 100644
index 0000000..99db2ec
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/insert.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Insert",
+    "description": "Indicates that the actor has inserted the object into the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "insert"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} inserted {object.displayName} into {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/install.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/install.json b/streams-schemas/src/site/resources/verbs/install.json
new file mode 100644
index 0000000..e3d6e0c
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/install.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Install",
+    "description": "Indicates that the actor has installed the object, as in installing an application.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "install"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} installed {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/interact.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/interact.json b/streams-schemas/src/site/resources/verbs/interact.json
new file mode 100644
index 0000000..d589ce4
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/interact.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Interact",
+    "description": "Indicates that the actor has interacted with the object. For instance, when one person interacts with another.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "interact"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} interacted with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/invite.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/invite.json b/streams-schemas/src/site/resources/verbs/invite.json
new file mode 100644
index 0000000..34a8691
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/invite.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Invite",
+    "description": "Indicates that the actor has invited the object, typically a person object, to join or participate in the object described by the target. The target could, for instance, be an event, group or a service.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "invite"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} invited {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/join.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/join.json b/streams-schemas/src/site/resources/verbs/join.json
new file mode 100644
index 0000000..78daed8
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/join.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Join",
+    "description": "Indicates that the actor has become a member of the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "join"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} joined {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/leave.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/leave.json b/streams-schemas/src/site/resources/verbs/leave.json
new file mode 100644
index 0000000..1ce73bc
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/leave.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Leave",
+    "description": "Indicates that the actor has left the object. For instance, a Person leaving a Group or checking-out of a Place.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "leave"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} left {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/like.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/like.json b/streams-schemas/src/site/resources/verbs/like.json
new file mode 100644
index 0000000..4ac1bf7
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/like.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Like",
+    "description": "Indicates that the actor marked the object as an item of special interest.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "like"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} likes {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/listen.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/listen.json b/streams-schemas/src/site/resources/verbs/listen.json
new file mode 100644
index 0000000..3476144
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/listen.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Listen",
+    "description": "Indicates that the actor has listened to the object. This is typically only applicable for objects representing audio content, such as music, an audio-book, or a radio broadcast.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "listen"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} listened to {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/lose.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/lose.json b/streams-schemas/src/site/resources/verbs/lose.json
new file mode 100644
index 0000000..60899ba
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/lose.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Lose",
+    "description": "Indicates that the actor has lost the object. For instance, if a person loses a game.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "lose"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} lost {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/make-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/make-friend.json b/streams-schemas/src/site/resources/verbs/make-friend.json
new file mode 100644
index 0000000..a6440f1
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/make-friend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Befriend",
+    "description": "Indicates the creation of a friendship that is reciprocated by the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "make-friend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is now friends with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/open.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/open.json b/streams-schemas/src/site/resources/verbs/open.json
new file mode 100644
index 0000000..0145bab
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/open.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Open",
+    "description": "Indicates that the actor has opened the object. For instance, the object could represent a ticket being tracked in an issue management system.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "open"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} opened {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/play.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/play.json b/streams-schemas/src/site/resources/verbs/play.json
new file mode 100644
index 0000000..3f25748
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/play.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Play",
+    "description": "Indicates that the actor spent some time enjoying the object. For example, if the object is a video this indicates that the subject watched all or part of the video.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "play"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} played {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/post.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/post.json b/streams-schemas/src/site/resources/verbs/post.json
new file mode 100644
index 0000000..ea1ad39
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/post.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Post",
+    "description": "To publish an object",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "post"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} posted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/present.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/present.json b/streams-schemas/src/site/resources/verbs/present.json
new file mode 100644
index 0000000..bcfb1dc
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/present.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Present",
+    "description": "Indicates that the actor has presented the object. For instance, when a person gives a presentation at a conference.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "present"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} presented {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/purchase.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/purchase.json b/streams-schemas/src/site/resources/verbs/purchase.json
new file mode 100644
index 0000000..303386a
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/purchase.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Purchase",
+    "description": "Indicates that the actor has purchased the object. If a target is specified, in indicates the entity from which the object was purchased.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "purchase"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} purchased {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/qualify.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/qualify.json b/streams-schemas/src/site/resources/verbs/qualify.json
new file mode 100644
index 0000000..974448f
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/qualify.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Qualify",
+    "description": "Indicates that the actor has qualified for the object. If a target is specified, it indicates the context within which the qualification applies.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "qualify"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} qualified {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/read.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/read.json b/streams-schemas/src/site/resources/verbs/read.json
new file mode 100644
index 0000000..e797f41
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/read.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Read",
+    "description": "Indicates that the actor read the object. This is typically only applicable for objects representing printed or written content, such as a book, a message or a comment.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "read"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} read {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/receive.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/receive.json b/streams-schemas/src/site/resources/verbs/receive.json
new file mode 100644
index 0000000..0d44aef
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/receive.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Receive",
+    "description": "Indicates that the actor is receiving an object. Examples include a person receiving a badge object. The object identifies the object being received.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "receive"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} received {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/reject.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/reject.json b/streams-schemas/src/site/resources/verbs/reject.json
new file mode 100644
index 0000000..b82fac7
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/reject.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Reject",
+    "description": "Indicates that the actor has rejected the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "reject"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} rejected {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/remove-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/remove-friend.json b/streams-schemas/src/site/resources/verbs/remove-friend.json
new file mode 100644
index 0000000..073441d
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/remove-friend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnFriend",
+    "description": "Indicates that the actor has removed the object from the collection of friends.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "remove-friend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} removed friend {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/remove.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/remove.json b/streams-schemas/src/site/resources/verbs/remove.json
new file mode 100644
index 0000000..5b694db
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/remove.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Remove",
+    "description": "Indicates that the actor has removed the object from the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "remove"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} removed {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/replace.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/replace.json b/streams-schemas/src/site/resources/verbs/replace.json
new file mode 100644
index 0000000..198c8c5
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/replace.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Replace",
+    "description": "Indicates that the actor has replaced the target with the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "replace"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} replaced {target.displayName} with {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/request-friend.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/request-friend.json b/streams-schemas/src/site/resources/verbs/request-friend.json
new file mode 100644
index 0000000..9e246ca
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/request-friend.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "RequestFriend",
+    "description": "Indicates the creation of a friendship that has not yet been reciprocated by the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "request-friend"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} sent a friend request to {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/request.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/request.json b/streams-schemas/src/site/resources/verbs/request.json
new file mode 100644
index 0000000..35807f5
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/request.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Request",
+    "description": "Indicates that the actor has requested the object. If a target is specified, it indicates the entity from which the object is being requested.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "request"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} requested {object.displayName} from {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/resolve.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/resolve.json b/streams-schemas/src/site/resources/verbs/resolve.json
new file mode 100644
index 0000000..0b71ce3
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/resolve.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Resolve",
+    "description": "Indicates that the actor has resolved the object. For instance, the object could represent a ticket being tracked in an issue management system.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "resolve"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} resolved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/retract.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/retract.json b/streams-schemas/src/site/resources/verbs/retract.json
new file mode 100644
index 0000000..ff7cbe7
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/retract.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Retract",
+    "description": "Indicates that the actor has retracted the object. For instance, if an actor wishes to retract a previously published activity, the object would be the previously published activity that is being retracted.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "retract"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} retracted {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/return.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/return.json b/streams-schemas/src/site/resources/verbs/return.json
new file mode 100644
index 0000000..14a8cfb
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/return.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Return",
+    "description": "Indicates that the actor has returned the object. If a target is specified, it indicates the entity to which the object was returned.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "return"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} returned {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/rsvp-maybe.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/rsvp-maybe.json b/streams-schemas/src/site/resources/verbs/rsvp-maybe.json
new file mode 100644
index 0000000..4838406
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/rsvp-maybe.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Rsvp Maybe",
+    "description": "To indicate that the actor may attend an event",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "rsvp-maybe"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} might attend {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/rsvp-no.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/rsvp-no.json b/streams-schemas/src/site/resources/verbs/rsvp-no.json
new file mode 100644
index 0000000..dc36ee3
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/rsvp-no.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Rsvp No",
+    "description": "To indicate that the actor will not attend an event",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "rsvp-no"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} will not attend {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/rsvp-yes.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/rsvp-yes.json b/streams-schemas/src/site/resources/verbs/rsvp-yes.json
new file mode 100644
index 0000000..f62141e
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/rsvp-yes.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Rsvp Yes",
+    "description": "To indicate that the actor will attend an event",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "rsvp-yes"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} is attending {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/satisfy.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/satisfy.json b/streams-schemas/src/site/resources/verbs/satisfy.json
new file mode 100644
index 0000000..a719680
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/satisfy.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Satisfy",
+    "description": "Indicates that the actor has satisfied the object. If a target is specified, it indicate the context within which the object was satisfied. For instance, if a person satisfies the requirements for a particular challenge, the person is the actor; the requirement is the object; and the challenge is the target.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "satisfy"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} has satisfied {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/save.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/save.json b/streams-schemas/src/site/resources/verbs/save.json
new file mode 100644
index 0000000..1bdbc4b
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/save.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Save",
+    "description": "Indicates that the actor has called out the object as being of interest primarily to him- or herself. Though this action MAY be shared publicly, the implication is that the object has been saved primarily for the actor's own benefit rather than to show it to others as would be indicated by the \"share\" verb.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "save"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} saved {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/schedule.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/schedule.json b/streams-schemas/src/site/resources/verbs/schedule.json
new file mode 100644
index 0000000..a9824a3
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/schedule.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Schedule",
+    "description": "Indicates that the actor has scheduled the object. For instance, scheduling a meeting.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "schedule"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} scheduled {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/search.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/search.json b/streams-schemas/src/site/resources/verbs/search.json
new file mode 100644
index 0000000..3263bbb
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/search.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Search",
+    "description": "Indicates that the actor is or has searched for the object. If a target is specified, it indicates the context within which the search is or has been conducted.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "satisfy"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} search for {object.displayName} in {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/sell.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/sell.json b/streams-schemas/src/site/resources/verbs/sell.json
new file mode 100644
index 0000000..16aa351
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/sell.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Sell",
+    "description": "Indicates that the actor has sold the object. If a target is specified, it indicates the entity to which the object was sold.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "sell"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} sold {object.displayName} to {target.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/send.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/send.json b/streams-schemas/src/site/resources/verbs/send.json
new file mode 100644
index 0000000..ead4108
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/send.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Share",
+    "description": "Indicates that the actor has called out the object to readers. In most cases, the actor did not create the object being shared, but is instead drawing attention to it.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "share"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} shared {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/share.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/share.json b/streams-schemas/src/site/resources/verbs/share.json
new file mode 100644
index 0000000..18c0aea
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/share.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Share",
+    "description": "To share an object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "share"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} shared {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/sponsor.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/sponsor.json b/streams-schemas/src/site/resources/verbs/sponsor.json
new file mode 100644
index 0000000..cc6f5cf
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/sponsor.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Sponsor",
+    "description": "Indicates that the actor has sponsored the object. If a target is specified, it indicates the context within which the sponsorship is offered. For instance, a company can sponsor an event; or an individual can sponsor a project; etc.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "sponsor"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} sponsored {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/start.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/start.json b/streams-schemas/src/site/resources/verbs/start.json
new file mode 100644
index 0000000..61eaf06
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/start.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Start",
+    "description": "Indicates that the actor has started the object. For instance, when a person starts a project.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "start"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} started {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/stop-following.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/stop-following.json b/streams-schemas/src/site/resources/verbs/stop-following.json
new file mode 100644
index 0000000..e09317d
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/stop-following.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "UnFollow",
+    "description": "Indicates that the actor has stopped following the object.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "follow"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} stopped following {object.displayName}"
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/02b5adda/streams-schemas/src/site/resources/verbs/submit.json
----------------------------------------------------------------------
diff --git a/streams-schemas/src/site/resources/verbs/submit.json b/streams-schemas/src/site/resources/verbs/submit.json
new file mode 100644
index 0000000..c1d25b1
--- /dev/null
+++ b/streams-schemas/src/site/resources/verbs/submit.json
@@ -0,0 +1,24 @@
+{
+    "$schema": "http://json-schema.org/draft-03/schema",
+    "$license": [
+        "http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0",
+        "http://www.apache.org/licenses/LICENSE-2.0"
+    ],
+    "id": "#",
+    "type": "object",
+    "title": "Submit",
+    "description": "Indicates that the actor has submitted the object. If a target is specified, it indicates the entity to which the object was submitted.",
+    "extends": {
+        "$ref": "../activity.json"
+    },
+    "properties": {
+        "verb": {
+            "type": "string",
+            "default": "submit"
+        },
+        "title": {
+            "type": "string",
+            "default": "{actor.displayName} submitted {object.displayName} to {target.displayName}"
+        }
+    }
+}