Used revert to rewind 6 merges, pushed to this repo mistakenly. Effective restore to 6c32ce2 All tests are passing
steves-mac-pro:incubator-streams steve$ git revert -n master~1 -m 1 steves-mac-pro:incubator-streams steve$ git revert -n master~2 error: Commit 2d6c82e7deef77ab68580bd73a98219285ab231a is a merge but no -m option was given. fatal: revert failed steves-mac-pro:incubator-streams steve$ git revert -n master~2 -m 2 steves-mac-pro:incubator-streams steve$ git revert -n master~3 error: Commit b1ceaef776f1515f8f447b711b15735c5c8a1381 is a merge but no -m option was given. fatal: revert failed steves-mac-pro:incubator-streams steve$ git revert --abort steves-mac-pro:incubator-streams steve$ git revert -n master~1 -m 1 steves-mac-pro:incubator-streams steve$ git revert -n master~2 -m 1 steves-mac-pro:incubator-streams steve$ git revert -n master~3 -m 1 steves-mac-pro:incubator-streams steve$ git revert -n master~4 error: Commit a6761f07f5192837f6f9aaaaedf01954fdf2a1b2 is a merge but no -m option was given. fatal: revert failed steves-mac-pro:incubator-streams steve$ git revert -n master~4 -m 1 steves-mac-pro:incubator-streams steve$ git revert -n master~5 error: Commit b9010bc6227df2ced7eec3f4e378b6021536e5dd is a merge but no -m option was given. fatal: revert failed steves-mac-pro:incubator-streams steve$ git revert -n master~5 -m 1 steves-mac-pro:incubator-streams steve$ git revert -n master~6 Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/7afd6e0a Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/7afd6e0a Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/7afd6e0a Branch: refs/heads/STREAMS-212 Commit: 7afd6e0ac4c458970413f051a44ea86149dad59f Parents: f6ee8c2 Author: Steve Blackmon <sblack...@w2odigital.com> Authored: Mon Nov 24 10:51:47 2014 -0600 Committer: Steve Blackmon <sblack...@w2odigital.com> Committed: Mon Nov 24 10:51:47 2014 -0600 ---------------------------------------------------------------------- .gitignore | 6 - streams-components/pom.xml | 1 - streams-components/streams-converters/pom.xml | 140 ---------- .../converter/ActivityConverterProcessor.java | 167 ------------ .../BaseActivityConverterResolver.java | 31 --- .../converter/BaseDocumentClassifier.java | 66 ----- .../BaseObjectNodeActivityConverter.java | 65 ----- .../converter/BaseStringActivityConverter.java | 65 ----- .../CleanAdditionalPropertiesProcessor.java | 62 ----- .../converter/TypeConverterProcessor.java | 83 ------ .../streams/converter/TypeConverterUtil.java | 51 ---- ...ActivityConverterProcessorConfiguration.json | 23 -- .../test/ActivityConverterProcessorTest.java | 86 ------ .../test/TypeConverterProcessorTest.java | 94 ------- streams-components/streams-http/README.md | 9 - streams-components/streams-http/pom.xml | 17 -- .../components/http/HttpConfigurator.java | 13 - .../persist/SimpleHTTPPostPersistWriter.java | 192 ------------- .../http/processor/SimpleHTTPGetProcessor.java | 34 +-- .../http/HttpPersistWriterConfiguration.json | 15 - .../java/SimpleHTTPPostPersistWriterTest.java | 119 -------- streams-contrib/pom.xml | 2 +- streams-contrib/streams-persist-graph/README.md | 44 --- streams-contrib/streams-persist-graph/pom.xml | 96 ------- .../streams/graph/GraphPersistWriter.java | 194 ------------- .../streams/graph/neo4j/CypherGraphUtil.java | 147 ---------- .../streams/graph/GraphConfiguration.json | 19 -- .../graph/GraphEdgeWriterConfiguration.json | 30 -- .../graph/GraphVertexWriterConfiguration.json | 30 -- .../streams/graph/GraphWriterConfiguration.json | 18 -- .../streams-processor-jackson/pom.xml | 86 ++++++ .../CleanAdditionalPropertiesProcessor.java | 62 +++++ .../streams/jackson/TypeConverterProcessor.java | 112 ++++++++ .../test/TypeConverterProcessorTest.java | 95 +++++++ .../streams-provider-datasift/pom.xml | 2 +- .../DatasiftActivitySerializerProcessor.java | 9 +- .../DatasiftTypeConverterProcessor.java | 8 +- .../serializer/DatasiftActivityConverter.java | 77 ------ .../serializer/DatasiftActivitySerializer.java | 65 +++++ .../serializer/DatasiftConverterResolver.java | 50 ---- .../serializer/DatasiftEventClassifier.java | 35 ++- .../DatasiftInstagramActivityConverter.java | 124 --------- .../DatasiftInstagramActivitySerializer.java | 124 +++++++++ .../DatasiftInteractionActivityConverter.java | 222 --------------- .../DatasiftInteractionActivitySerializer.java | 222 +++++++++++++++ .../DatasiftTwitterActivityConverter.java | 272 ------------------- .../DatasiftTwitterActivitySerializer.java | 272 +++++++++++++++++++ .../datasift/util/StreamsDatasiftMapper.java | 3 +- .../com/datasift/test/DatasiftSerDeTest.java | 2 +- .../DatasiftActivityConverterTest.java | 85 ------ .../DatasiftActivitySerializerTest.java | 86 ++++++ .../serializer/DatasiftEventClassifierTest.java | 26 +- .../DatasiftInstagramActivityConverterTest.java | 35 --- ...DatasiftInstagramActivitySerializerTest.java | 43 +++ ...atasiftInteractionActivityConverterTest.java | 40 --- ...tasiftInteractionActivitySerializerTest.java | 48 ++++ .../DatasiftTwitterActivityConverterTest.java | 35 --- .../DatasiftTwitterActivitySerializerTest.java | 43 +++ .../api/FacebookPageActivityConverter.java | 76 ------ .../api/FacebookPageActivitySerializer.java | 66 +++++ .../api/FacebookPostActivityConverter.java | 79 ------ .../api/FacebookPostActivitySerializer.java | 69 +++++ .../processor/FacebookTypeConverter.java | 22 +- .../provider/FacebookEventClassifier.java | 57 ++++ .../serializer/FacebookConverterResolver.java | 62 ----- .../serializer/FacebookDocumentClassifier.java | 75 ----- .../FacebookStreamsPostConverter.java | 60 ---- .../FacebookStreamsPostSerializer.java | 60 ++++ .../test/FacebookActivityActorSerDeTest.java | 6 +- .../test/FacebookActivitySerDeTest.java | 4 +- .../test/FacebookDocumentClassifierTest.java | 57 ---- .../test/FacebookEventClassifierTest.java | 57 ++++ .../streams/facebook/test/SimplePageTest.java | 4 +- .../com/gplus/api/GPlusActivityConverter.java | 93 ------- .../com/gplus/api/GPlusActivitySerializer.java | 93 +++++++ .../com/gplus/api/GPlusEDCAsActivityTest.java | 4 +- .../com/reddit/api/RedditActivityConverter.java | 107 -------- .../reddit/api/RedditActivitySerializer.java | 107 ++++++++ .../reddit/api/RedditEDCAsActivityJSONTest.java | 4 +- .../ActivityXMLActivityConverter.java | 240 ---------------- .../ActivityXMLActivitySerializer.java | 240 ++++++++++++++++ .../powertrack/PowerTrackActivityConverter.java | 121 --------- .../PowerTrackActivitySerializer.java | 121 +++++++++ .../test/PowerTrackDeserializationTest.java | 6 +- .../gmail/provider/GMailImapProviderTask.java | 5 +- .../provider/GMailMessageActivityConverter.java | 202 -------------- .../GMailMessageActivitySerializer.java | 212 +++++++++++++++ .../processor/GooglePlusCommentProcessor.java | 3 - .../processor/GooglePlusTypeConverter.java | 4 - .../gplus/provider/GPlusActivityConverter.java | 67 ----- .../gplus/provider/GPlusActivitySerializer.java | 67 +++++ .../gplus/provider/GPlusEventProcessor.java | 94 +++++++ .../processor/InstagramTypeConverter.java | 10 +- .../InstagramJsonActivityConverter.java | 78 ------ .../InstagramJsonActivitySerializer.java | 78 ++++++ .../serializer/InstagramUserInfoConverter.java | 81 ------ .../serializer/InstagramUserInfoSerializer.java | 83 ++++++ .../data/MoreoverJsonActivitySerializer.java | 93 +++++++ .../data/MoreoverXmlActivitySerializer.java | 105 +++++++ .../conversion/MoreoverConverterResolver.java | 20 -- .../conversion/MoreoverDocumentClassifier.java | 22 -- .../MoreoverJsonActivityConverter.java | 94 ------- .../MoreoverXmlActivityConverter.java | 106 -------- .../data/MoreoverJsonActivityConverterTest.java | 66 ----- .../MoreoverJsonActivitySerializerTest.java | 72 +++++ .../data/MoreoverXmlActivityConverterTest.java | 62 ----- .../data/MoreoverXmlActivitySerializerTest.java | 61 +++++ .../streams/rss/processor/RssTypeConverter.java | 10 +- .../rss/provider/RssDocumentClassifier.java | 35 --- .../rss/provider/RssEventClassifier.java | 32 +++ .../streams/rss/provider/RssEventProcessor.java | 103 +++++++ .../rss/serializer/RssConverterResolver.java | 18 -- .../serializer/SyndEntryActivityConverter.java | 232 ---------------- .../serializer/SyndEntryActivitySerializer.java | 235 ++++++++++++++++ .../test/SyndEntryActivitySerizlizerTest.java | 4 +- .../SysomosBeatActivityConverter.java | 35 +-- .../conversion/SysomosConverterResolver.java | 18 -- .../conversion/SysomosDocumentClassifier.java | 16 -- .../sysomos/processor/SysomosTypeConverter.java | 4 - .../streams-provider-twitter/pom.xml | 9 +- .../FetchAndReplaceTwitterProcessor.java | 4 +- .../processor/TwitterProfileProcessor.java | 4 +- .../provider/TwitterEventClassifier.java | 99 +++++++ .../TwitterUserInformationProvider.java | 2 +- .../serializer/StreamsTwitterMapper.java | 10 +- .../serializer/TwitterConverterResolver.java | 61 ----- .../serializer/TwitterDocumentClassifier.java | 85 ------ .../TwitterJsonActivityConverter.java | 81 ------ .../TwitterJsonActivitySerializer.java | 70 +++++ .../TwitterJsonDeleteActivityConverter.java | 84 ------ .../TwitterJsonDeleteActivitySerializer.java | 94 +++++++ .../TwitterJsonRetweetActivityConverter.java | 78 ------ .../TwitterJsonRetweetActivitySerializer.java | 79 ++++++ .../TwitterJsonTweetActivityConverter.java | 76 ------ .../TwitterJsonTweetActivitySerializer.java | 77 ++++++ .../TwitterJsonUserActivityConverter.java | 77 ------ .../TwitterJsonUserActivitySerializer.java | 78 ++++++ ...terJsonUserstreameventActivityConverter.java | 115 -------- ...erJsonUserstreameventActivitySerializer.java | 115 ++++++++ .../serializer/util/TwitterActivityUtil.java | 7 +- .../streams/twitter/test/FullTweetTest.java | 119 -------- .../streams/twitter/test/SimpleTweetTest.java | 43 +-- .../twitter/test/TweetActivitySerDeTest.java | 32 +-- .../streams/twitter/test/TweetSerDeTest.java | 8 +- .../test/TwitterDocumentClassifierTest.java | 117 -------- .../test/TwitterEventClassifierTest.java | 100 +++++++ .../apache/streams/data/util/PropertyUtil.java | 89 ------ .../apache/streams/data/ActivityConverter.java | 60 ---- .../streams/data/ActivityConverterFactory.java | 27 -- .../streams/data/ActivityConverterResolver.java | 43 --- .../apache/streams/data/ActivitySerializer.java | 60 ++++ .../apache/streams/data/DocumentClassifier.java | 41 --- .../apache/streams/data/util/ActivityUtil.java | 3 - .../ActivityDeserializerException.java | 7 +- .../exceptions/ActivitySerializerException.java | 7 +- .../jackson/StreamsDateTimeDeserializer.java | 10 +- .../jackson/StreamsDateTimeSerializer.java | 5 +- .../streams/jackson/StreamsJacksonMapper.java | 18 +- .../streams/jackson/StreamsJacksonModule.java | 3 +- .../streams/pig/StreamsComponentFactory.java | 13 +- .../streams/pig/StreamsProcessDocumentExec.java | 11 + .../streams/pig/StreamsSerializerExec.java | 16 +- .../streams/pig/test/PigProcessDatumTest.java | 6 + .../pig/test/PigProcessDocumentTest.java | 3 + .../streams/pig/test/PigSerializerTest.java | 12 +- .../src/test/resources/pigserializertest.pig | 2 +- 166 files changed, 4348 insertions(+), 6331 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/.gitignore ---------------------------------------------------------------------- diff --git a/.gitignore b/.gitignore index e04fafd..23d6cc9 100644 --- a/.gitignore +++ b/.gitignore @@ -22,9 +22,3 @@ dependency-reduced-pom.xml Icon? ehthumbs.db Thumbs.db - -# Maven plug-in generated files # -DEPENDENCIES -DISCLAIMER -LICENSE -NOTICE http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/pom.xml ---------------------------------------------------------------------- diff --git a/streams-components/pom.xml b/streams-components/pom.xml index 138eeef..9942e14 100644 --- a/streams-components/pom.xml +++ b/streams-components/pom.xml @@ -37,7 +37,6 @@ </properties> <modules> - <module>streams-converters</module> <module>streams-http</module> </modules> http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/pom.xml ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/pom.xml b/streams-components/streams-converters/pom.xml deleted file mode 100644 index 78f42b9..0000000 --- a/streams-components/streams-converters/pom.xml +++ /dev/null @@ -1,140 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --> -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - - <modelVersion>4.0.0</modelVersion> - <artifactId>streams-converters</artifactId> - <version>0.1-SNAPSHOT</version> - - <parent> - <groupId>org.apache.streams</groupId> - <artifactId>streams-components</artifactId> - <version>0.1-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>org.apache.streams</groupId> - <artifactId>streams-config</artifactId> - </dependency> - <dependency> - <groupId>org.apache.streams</groupId> - <artifactId>streams-core</artifactId> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-core</artifactId> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-annotations</artifactId> - </dependency> - <dependency> - <groupId>com.jayway.jsonpath</groupId> - <artifactId>json-path</artifactId> - </dependency> - <dependency> - <groupId>com.jayway.jsonpath</groupId> - <artifactId>json-path-assert</artifactId> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - </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> - <version>1.8</version> - <executions> - <execution> - <id>add-source</id> - <phase>generate-sources</phase> - <goals> - <goal>add-source</goal> - </goals> - <configuration> - <sources> - <source>target/generated-sources/jsonschema2pojo</source> - </sources> - </configuration> - </execution> - <execution> - <id>add-source-jaxb2</id> - <phase>generate-sources</phase> - <goals> - <goal>add-source</goal> - </goals> - <configuration> - <sources> - <source>target/generated-sources/jaxb2</source> - </sources> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <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.converter</targetPackage> - <useLongIntegers>true</useLongIntegers> - <useJodaDates>true</useJodaDates> - <includeJsr303Annotations>true</includeJsr303Annotations> - </configuration> - <executions> - <execution> - <goals> - <goal>generate</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> - -</project> http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/ActivityConverterProcessor.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/ActivityConverterProcessor.java b/streams-components/streams-converters/src/main/java/org/apache/streams/converter/ActivityConverterProcessor.java deleted file mode 100644 index a293dea..0000000 --- a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/ActivityConverterProcessor.java +++ /dev/null @@ -1,167 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. -*/ -package org.apache.streams.converter; - -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; -import org.apache.streams.core.StreamsDatum; -import org.apache.streams.data.ActivityConverter; -import org.apache.streams.data.ActivityConverterFactory; -import org.apache.streams.data.ActivityConverterResolver; -import org.apache.streams.data.DocumentClassifier; -import org.apache.streams.pojo.json.Activity; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.List; - -/** - * ActivityConverterProcessor is a utility processor for converting any datum document - * to an Activity. - * - * By default it will handle string json and objectnode representation of existing Activities. - * - * Implementations can add DocumentClassifiers and ActivityConverterResolvers to the processor - * to ensure additional ActivityConverters will be resolved and applied. - * - * A DocumentClassifier's reponsibility is to recognize document formats and label them, using - * a jackson-compatible POJO class. - * - * An ActivityConverterResolver's reponsibility is to identify ActivityConverter implementations - * capable of converting a raw document associated with that POJO class into an activity. - * - */ -public class ActivityConverterProcessor extends TypeConverterProcessor { - - private final static Logger LOGGER = LoggerFactory.getLogger(ActivityConverterProcessor.class); - - protected ActivityConverterProcessorConfiguration configuration; - - private List<DocumentClassifier> classifiers; - private List<ActivityConverterResolver> resolvers; - - public ActivityConverterProcessor() { - super(Activity.class); - this.classifiers = Lists.newArrayList(); - this.resolvers = Lists.newArrayList(); - } - - public ActivityConverterProcessor(ActivityConverterProcessorConfiguration configuration) { - super(Activity.class); - this.configuration = configuration; - this.classifiers = Lists.newArrayList(); - this.resolvers = Lists.newArrayList(); - } - - @Override - public List<StreamsDatum> process(StreamsDatum entry) { - - Preconditions.checkArgument(classifiers.size() > 0); - Preconditions.checkArgument(resolvers.size() > 0); - - List<StreamsDatum> result = Lists.newLinkedList(); - Object inDoc = entry.getDocument(); - - try { - - // This implementation is primitive, greedy, takes first it can resolve - Class datumClass = null; - for( DocumentClassifier classifier : classifiers ) { - datumClass = classifier.detectClass(inDoc); - if( classifier != null ) - break; - } - - //Preconditions.checkNotNull(datumClass); - if( datumClass == null) { - LOGGER.warn("Unable to classify"); - return result; - } else { - LOGGER.debug("Classifies document as " + datumClass.getSimpleName()); - } - - // This implementation is primitive, greedy, takes first it can resolve - Class converterClass = null; - for( ActivityConverterResolver resolver : resolvers ) { - converterClass = resolver.bestSerializer(datumClass); - if( converterClass != null ) - break; - } - - //Preconditions.checkNotNull(converterClass); - if( converterClass == null) { - LOGGER.warn("Unable to resolve converterClass"); - return result; - } - else { - LOGGER.debug("Resolved converter: " + converterClass.getSimpleName()); - } - - ActivityConverter converter = ActivityConverterFactory.getInstance(converterClass); - - //Preconditions.checkNotNull(converter); - if( converter == null) return result; - - Object typedDoc; - if( datumClass.isInstance(inDoc) ) - typedDoc = inDoc; - else - typedDoc = TypeConverterUtil.convert(inDoc, datumClass, mapper); - - //Preconditions.checkNotNull(typedDoc); - if( typedDoc == null) { - LOGGER.warn("Unable to convert " + inDoc.getClass().getSimpleName() + " to " + datumClass.getSimpleName()); - return result; - } - - Activity activity = converter.deserialize(typedDoc); - - //Preconditions.checkNotNull(activity); - if( activity == null) { - LOGGER.warn("Unable to convert " + datumClass.getClass().getCanonicalName() + " to Activity"); - return result; - } - - entry.setDocument(activity); - - result.add(entry); - - } catch( Exception e ) { - LOGGER.warn("Unable to serialize! " + e.getMessage()); - e.printStackTrace(); - } finally { - return result; - } - - } - - @Override - public void prepare(Object configurationObject) { - super.prepare(configurationObject); - if( configuration != null ) { - if (configuration.getClassifiers() != null && configuration.getClassifiers().size() > 0) - this.classifiers.addAll(configuration.getClassifiers()); - if (configuration.getResolvers() != null && configuration.getResolvers().size() > 0) - this.resolvers.addAll(configuration.getResolvers()); - } - this.classifiers.add(BaseDocumentClassifier.getInstance()); - this.resolvers.add(BaseActivityConverterResolver.getInstance()); - } - -}; http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseActivityConverterResolver.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseActivityConverterResolver.java b/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseActivityConverterResolver.java deleted file mode 100644 index 30bb050..0000000 --- a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseActivityConverterResolver.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.apache.streams.converter; - -import com.fasterxml.jackson.databind.node.ObjectNode; -import org.apache.streams.data.ActivityConverterResolver; -import org.apache.streams.exceptions.ActivitySerializerException; - -/** - * BaseActivityConverterResolver is included by default in all - * @see {@link org.apache.streams.converter.ActivityConverterProcessor} - * - * Ensures generic String and ObjectNode documents can be converted to Activity - * - */ -public class BaseActivityConverterResolver implements ActivityConverterResolver { - - private static BaseActivityConverterResolver instance = new BaseActivityConverterResolver(); - - public static BaseActivityConverterResolver getInstance() { - return instance; - } - - @Override - public Class bestSerializer(Class documentClass) throws ActivitySerializerException { - if( documentClass == String.class) { - return BaseStringActivityConverter.class; - } else if( documentClass == ObjectNode.class) { - return BaseObjectNodeActivityConverter.class; - } else return null; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseDocumentClassifier.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseDocumentClassifier.java b/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseDocumentClassifier.java deleted file mode 100644 index 7733415..0000000 --- a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseDocumentClassifier.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.streams.converter; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.base.Preconditions; -import org.apache.streams.data.DocumentClassifier; -import org.apache.streams.data.util.ActivityUtil; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.apache.streams.pojo.json.Activity; - -import java.io.IOException; - -/** - * BaseDocumentClassifier is included by default in all - * @see {@link org.apache.streams.converter.ActivityConverterProcessor} - * - * Ensures generic String and ObjectNode documents can be converted to Activity - * - */ -public class BaseDocumentClassifier implements DocumentClassifier { - - private static BaseDocumentClassifier instance = new BaseDocumentClassifier(); - - public static BaseDocumentClassifier getInstance() { - return instance; - } - - private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); - - @Override - public Class detectClass(Object document) { - Preconditions.checkArgument( - document instanceof String - || document instanceof ObjectNode); - - Activity activity = null; - ObjectNode node = null; - - // Soon javax.validation will available in jackson - // That will make this simpler and more powerful - if( document instanceof String ) { - try { - activity = this.mapper.readValue((String)document, Activity.class); - if(ActivityUtil.isValid(activity)) - return Activity.class; - else - return ObjectNode.class; - } catch (IOException e1) { - try { - node = this.mapper.readValue((String)document, ObjectNode.class); - return ObjectNode.class; - } catch (IOException e2) { - return String.class; - } - } - } else if( document instanceof ObjectNode ){ - activity = this.mapper.convertValue((ObjectNode)document, Activity.class); - if(ActivityUtil.isValid(activity)) - return Activity.class; - else - return ObjectNode.class; - } else return document.getClass(); - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseObjectNodeActivityConverter.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseObjectNodeActivityConverter.java b/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseObjectNodeActivityConverter.java deleted file mode 100644 index 5c90fbc..0000000 --- a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseObjectNodeActivityConverter.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.apache.streams.converter; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.Lists; -import org.apache.streams.data.ActivityConverter; -import org.apache.streams.exceptions.ActivitySerializerException; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.apache.streams.pojo.json.Activity; - -import java.util.List; - -/** - * BaseObjectNodeActivityConverter is included by default in all - * @see {@link org.apache.streams.converter.ActivityConverterProcessor} - * - * Ensures generic ObjectNode representation of an Activity can be converted to Activity - * - */ -public class BaseObjectNodeActivityConverter implements ActivityConverter<ObjectNode> { - - private ObjectMapper mapper = new StreamsJacksonMapper(); - - private static BaseObjectNodeActivityConverter instance = new BaseObjectNodeActivityConverter(); - - public static BaseObjectNodeActivityConverter getInstance() { - return instance; - } - - @Override - public String serializationFormat() { - return null; - } - - @Override - public ObjectNode serialize(Activity deserialized) throws ActivitySerializerException { - try { - return mapper.convertValue(deserialized, ObjectNode.class); - } catch (Exception e) { - throw new ActivitySerializerException(); - } - } - - @Override - public Activity deserialize(ObjectNode serialized) throws ActivitySerializerException { - try { - return mapper.convertValue(serialized, Activity.class); - } catch (Exception e) { - throw new ActivitySerializerException(); - } - } - - @Override - public List<Activity> deserializeAll(List<ObjectNode> serializedList) { - List<Activity> result = Lists.newArrayList(); - for( ObjectNode item : serializedList ) { - try { - Activity activity = deserialize(item); - result.add(activity); - } catch (ActivitySerializerException e) {} - } - return result; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseStringActivityConverter.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseStringActivityConverter.java b/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseStringActivityConverter.java deleted file mode 100644 index c742532..0000000 --- a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/BaseStringActivityConverter.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.apache.streams.converter; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.collect.Lists; -import org.apache.streams.data.ActivityConverter; -import org.apache.streams.exceptions.ActivitySerializerException; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.apache.streams.pojo.json.Activity; - -import java.util.List; - -/** - * BaseObjectNodeActivityConverter is included by default in all - * @see {@link org.apache.streams.converter.ActivityConverterProcessor} - * - * Ensures generic String Json representation of an Activity can be converted to Activity - * - */ -public class BaseStringActivityConverter implements ActivityConverter<String> { - - private ObjectMapper mapper = new StreamsJacksonMapper(); - - private static BaseStringActivityConverter instance = new BaseStringActivityConverter(); - - public static BaseStringActivityConverter getInstance() { - return instance; - } - - - @Override - public String serializationFormat() { - return null; - } - - @Override - public String serialize(Activity deserialized) throws ActivitySerializerException { - try { - return mapper.writeValueAsString(deserialized); - } catch (JsonProcessingException e) { - throw new ActivitySerializerException(); - } - } - - @Override - public Activity deserialize(String serialized) throws ActivitySerializerException { - try { - return mapper.readValue(serialized, Activity.class); - } catch (Exception e) { - throw new ActivitySerializerException(); - } - } - - @Override - public List<Activity> deserializeAll(List<String> serializedList) { - List<Activity> result = Lists.newArrayList(); - for( String item : serializedList ) { - try { - Activity activity = deserialize(item); - result.add(activity); - } catch (ActivitySerializerException e) {} - } - return result; - } -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/CleanAdditionalPropertiesProcessor.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/CleanAdditionalPropertiesProcessor.java b/streams-components/streams-converters/src/main/java/org/apache/streams/converter/CleanAdditionalPropertiesProcessor.java deleted file mode 100644 index 4b4641e..0000000 --- a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/CleanAdditionalPropertiesProcessor.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.apache.streams.converter; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.fasterxml.jackson.datatype.jsonorg.JsonOrgModule; -import com.google.common.collect.Lists; -import org.apache.streams.core.StreamsDatum; -import org.apache.streams.core.StreamsProcessor; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * This processor walks an input objectnode and corrects any artifacts - * that may have occured from improper serialization of jsonschema2pojo beans. - * - * The logic is also available for inclusion in other module via static import. - */ -public class CleanAdditionalPropertiesProcessor implements StreamsProcessor { - - private static final Logger LOGGER = LoggerFactory.getLogger(CleanAdditionalPropertiesProcessor.class); - - private ObjectMapper mapper; - - @Override - public List<StreamsDatum> process(StreamsDatum datum) { - List<StreamsDatum> result = Lists.newLinkedList(); - ObjectNode activity = this.mapper.convertValue(datum.getDocument(), ObjectNode.class); - cleanAdditionalProperties(activity); - datum.setDocument(activity); - result.add(datum); - return result; - } - - @Override - public void prepare(Object o) { - this.mapper = StreamsJacksonMapper.getInstance(); - this.mapper.registerModule(new JsonOrgModule()); - } - - @Override - public void cleanUp() { - - } - - public static void cleanAdditionalProperties(ObjectNode node) { - if( node.get("additionalProperties") != null ) { - ObjectNode additionalProperties = (ObjectNode) node.get("additionalProperties"); - cleanAdditionalProperties(additionalProperties); - Iterator<Map.Entry<String, JsonNode>> jsonNodeIterator = additionalProperties.fields(); - while( jsonNodeIterator.hasNext() ) { - Map.Entry<String, JsonNode> entry = jsonNodeIterator.next(); - node.put(entry.getKey(), entry.getValue()); - } - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/TypeConverterProcessor.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/TypeConverterProcessor.java b/streams-components/streams-converters/src/main/java/org/apache/streams/converter/TypeConverterProcessor.java deleted file mode 100644 index 4b71b49..0000000 --- a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/TypeConverterProcessor.java +++ /dev/null @@ -1,83 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. -*/ -package org.apache.streams.converter; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.collect.Lists; -import org.apache.streams.core.StreamsDatum; -import org.apache.streams.core.StreamsProcessor; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.Serializable; -import java.util.List; - -/** - * TypeConverterProcessor converts between String json and jackson-compatible POJO objects - */ -public class TypeConverterProcessor implements StreamsProcessor, Serializable { - - private final static Logger LOGGER = LoggerFactory.getLogger(TypeConverterProcessor.class); - - private List<String> formats = Lists.newArrayList(); - - protected ObjectMapper mapper; - - protected Class outClass; - - public TypeConverterProcessor(Class outClass) { - this.outClass = outClass; - } - - public TypeConverterProcessor(Class outClass, List<String> formats) { - this.outClass = outClass; - this.formats = formats; - } - - @Override - public List<StreamsDatum> process(StreamsDatum entry) { - - List<StreamsDatum> result = Lists.newLinkedList(); - Object inDoc = entry.getDocument(); - - Object outDoc = TypeConverterUtil.convert(inDoc, outClass, mapper); - - if( outDoc != null ) { - entry.setDocument(outDoc); - result.add(entry); - } - - return result; - } - - @Override - public void prepare(Object configurationObject) { - if( formats.size() > 0 ) - this.mapper = StreamsJacksonMapper.getInstance(formats); - else - this.mapper = StreamsJacksonMapper.getInstance(); - } - - @Override - public void cleanUp() { - this.mapper = null; - } - -}; http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/TypeConverterUtil.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/TypeConverterUtil.java b/streams-components/streams-converters/src/main/java/org/apache/streams/converter/TypeConverterUtil.java deleted file mode 100644 index 2ff463b..0000000 --- a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/TypeConverterUtil.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.apache.streams.converter; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; - -/** - * TypeConverterUtil supports TypeConverterProcessor in converting between String json and - * jackson-compatible POJO objects - */ -public class TypeConverterUtil { - - private final static Logger LOGGER = LoggerFactory.getLogger(TypeConverterUtil.class); - - public static Object convert(Object object, Class outClass) { - return TypeConverterUtil.convert(object, outClass, StreamsJacksonMapper.getInstance()); - } - - public static Object convert(Object object, Class outClass, ObjectMapper mapper) { - ObjectNode node = null; - Object outDoc = null; - if( object instanceof String ) { - try { - node = mapper.readValue((String)object, ObjectNode.class); - } catch (IOException e) { - e.printStackTrace(); - } - } else { - node = mapper.convertValue(object, ObjectNode.class); - } - - if(node != null) { - try { - if( outClass == String.class ) - outDoc = mapper.writeValueAsString(node); - else - outDoc = mapper.convertValue(node, outClass); - - } catch (Throwable e) { - LOGGER.warn(e.getMessage()); - LOGGER.warn(node.toString()); - } - } - - return outDoc; - } -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/components/http/ActivityConverterProcessorConfiguration.json ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/components/http/ActivityConverterProcessorConfiguration.json b/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/components/http/ActivityConverterProcessorConfiguration.json deleted file mode 100644 index ab173b4..0000000 --- a/streams-components/streams-converters/src/main/jsonschema/org/apache/streams/components/http/ActivityConverterProcessorConfiguration.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "object", - "$schema": "http://json-schema.org/draft-03/schema", - "id": "#", - "javaType" : "org.apache.streams.converter.ActivityConverterProcessorConfiguration", - "javaInterfaces": ["java.io.Serializable"], - "properties": { - "classifiers": { - "type": "array", - "items": { - "type": "object", - "javaType": "org.apache.streams.data.DocumentClassifier" - } - }, - "resolvers": { - "type": "array", - "items": { - "type": "object", - "javaType": "org.apache.streams.data.ActivityConverterResolver" - } - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/test/java/org/apache/streams/jackson/test/ActivityConverterProcessorTest.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/test/java/org/apache/streams/jackson/test/ActivityConverterProcessorTest.java b/streams-components/streams-converters/src/test/java/org/apache/streams/jackson/test/ActivityConverterProcessorTest.java deleted file mode 100644 index 09f3295..0000000 --- a/streams-components/streams-converters/src/test/java/org/apache/streams/jackson/test/ActivityConverterProcessorTest.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.streams.jackson.test; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import org.apache.streams.converter.ActivityConverterProcessor; -import org.apache.streams.core.StreamsDatum; -import org.apache.streams.core.StreamsProcessor; -import org.apache.streams.pojo.json.Activity; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.junit.Test; - -import java.io.IOException; -import java.util.List; - -import static junit.framework.Assert.*; - -/** - * Test for - * @see {@link org.apache.streams.converter.ActivityConverterProcessor} - */ -public class ActivityConverterProcessorTest { - - private static final ObjectMapper mapper = new StreamsJacksonMapper(); - - @Test - public void testBaseActivitySerializerProcessorInvalid() { - String INVALID_DOCUMENT = " 38Xs}"; - StreamsProcessor processor = new ActivityConverterProcessor(); - processor.prepare(null); - StreamsDatum datum = new StreamsDatum(INVALID_DOCUMENT); - List<StreamsDatum> result = processor.process(datum); - assertNotNull(result); - assertEquals(0, result.size()); - } - - @Test - public void testBaseActivitySerializerProcessorString() { - String STRING_DOCUMENT = "{\"verb\":\"post\"}"; - StreamsProcessor processor = new ActivityConverterProcessor(); - processor.prepare(null); - StreamsDatum datum = new StreamsDatum(STRING_DOCUMENT); - List<StreamsDatum> result = processor.process(datum); - assertNotNull(result); - assertEquals(1, result.size()); - StreamsDatum resultDatum = result.get(0); - assertNotNull(resultDatum); - assertNotNull(resultDatum.getDocument()); - assertTrue(resultDatum.getDocument() instanceof Activity); - assertTrue(((Activity)resultDatum.getDocument()).getVerb().equals("post")); - } - - @Test - public void testBaseActivitySerializerProcessorObject() throws IOException { - ObjectNode OBJECT_DOCUMENT = mapper.readValue("{\"verb\":\"share\"}", ObjectNode.class); - StreamsProcessor processor = new ActivityConverterProcessor(); - processor.prepare(null); - StreamsDatum datum = new StreamsDatum(OBJECT_DOCUMENT); - List<StreamsDatum> result = processor.process(datum); - assertNotNull(result); - assertEquals(1, result.size()); - StreamsDatum resultDatum = result.get(0); - assertNotNull(resultDatum); - assertNotNull(resultDatum.getDocument()); - assertTrue(resultDatum.getDocument() instanceof Activity); - assertTrue(((Activity)resultDatum.getDocument()).getVerb().equals("share")); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-converters/src/test/java/org/apache/streams/jackson/test/TypeConverterProcessorTest.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-converters/src/test/java/org/apache/streams/jackson/test/TypeConverterProcessorTest.java b/streams-components/streams-converters/src/test/java/org/apache/streams/jackson/test/TypeConverterProcessorTest.java deleted file mode 100644 index f830ea2..0000000 --- a/streams-components/streams-converters/src/test/java/org/apache/streams/jackson/test/TypeConverterProcessorTest.java +++ /dev/null @@ -1,94 +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. - */ - -package org.apache.streams.jackson.test; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.Lists; -import org.apache.streams.core.StreamsDatum; -import org.apache.streams.core.StreamsProcessor; -import org.apache.streams.converter.TypeConverterProcessor; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.junit.Test; - -import java.io.IOException; -import java.util.List; - -import static junit.framework.Assert.*; - -/** - * Test for - * @see {@link org.apache.streams.converter.TypeConverterProcessor} - */ -public class TypeConverterProcessorTest { - - private static final String DATASIFT_JSON = "{\"demographic\":{\"gender\":\"female\"},\"interaction\":{\"schema\":{\"version\":3},\"source\":\"Twitter for Android\",\"author\":{\"username\":\"ViiOLeee\",\"name\":\"Violeta Anguita\",\"id\":70931384,\"avatar\":\"http://pbs.twimg.com/profile_images/378800000851401229/bbf480cde2e9923a1d20acd393da0212_normal.jpeg\",\"link\":\"http://twitter.com/ViiOLeee\",\"language\":\"en\"},\"type\":\"twitter\",\"created_at\":\"Tue, 27 May 2014 22:38:15 +0000\",\"received_at\":1.401230295658E9,\"content\":\"RT @AliiAnguita: \\\"@Pharrell: Loved working with @edsheeran on Sing. He's a genius. https://t.co/wB2qKyJMRw\\\" @ViiOLeee look at this!\",\"id\":\"1e3e5ef97532a580e0741841f5746728\",\"link\":\"http://twitter.com/ViiOLeee/status/471420141989666817\",\"mentions\":[\"Pharrell\",\"edsheeran\",\"ViiOLeee\",\"AliiAnguita\"],\"mention_ids\":[338084918,85452649,70931384]},\"klout\":{\"score\":34},\"language\":{\"tag\":\"en\",\"tag_extended\":\"en\",\ "confidence\":98},\"links\":{\"code\":[200],\"created_at\":[\"Tue, 27 May 2014 14:28:06 +0000\"],\"meta\":{\"charset\":[\"UTF-8\"],\"content_type\":[\"text/html\"],\"description\":[\"Official Video for Ed Sheeran's track SING Get this track on iTunes: http://smarturl.it/EdSing Pre-order 'x' on iTunes and get 'One' instantly: http://smartu...\"],\"keywords\":[[\"ed sheeran\",\"ed sheeran sing\",\"ed sheeran new album\",\"Ed Sheeran (Musical Artist)\",\"ed sheeran one\",\"ed sheeran fault in our stars\",\"ed sheeran all of the stars\",\"s...\"]],\"lang\":[\"en\"],\"opengraph\":[{\"site_name\":\"YouTube\",\"url\":\"http://www.youtube.com/watch?v=tlYcUqEPN58\",\"title\":\"Ed Sheeran - SING [Official Video]\",\"image\":\"https://i1.ytimg.com/vi/tlYcUqEPN58/maxresdefault.jpg\",\"description\":\"Official Video for Ed Sheeran's track SING Get this track on iTunes: http://smarturl.it/EdSing Pre-order 'x' on iTunes and get 'One' instantly: http://smartu ...\",\"type\":\"video\"}],\"twitter\":[{\"card\":\"player\",\"site\":\"@youtube\",\"url\":\"http://www.youtube.com/watch?v=tlYcUqEPN58\",\"title\":\"Ed Sheeran - SING [Official Video]\",\"description\":\"Official Video for Ed Sheeran's track SING Get this track on iTunes: http://smarturl.it/EdSing Pre-order 'x' on iTunes and get 'One' instantly: http://smartu...\",\"image\":\"https://i1.ytimg.com/vi/tlYcUqEPN58/maxresdefault.jpg\",\"app\":{\"iphone\":{\"name\":\"YouTube\",\"id\":\"544007664\",\"url\":\"vnd.youtube://watch/tlYcUqEPN58\"},\"ipad\":{\"name\":\"YouTube\",\"id\":\"544007664\",\"url\":\"vnd.youtube://watch/tlYcUqEPN58\"},\"googleplay\":{\"name\":\"YouTube\",\"id\":\"com.google.android.youtube\",\"url\":\"http://www.youtube.com/watch?v=tlYcUqEPN58\"}},\"player\":\"https://www.youtube.com/embed/tlYcUqEPN58\",\"player_width\":\"1280\",\"player_height\":\"720\"}]},\"normalized_url\":[\"https://youtube.com/watch?v=tlYcUqEPN58\"],\"retweet_count\":[0],\"tit le\":[\"Ed Sheeran - SING [Official Video] - YouTube\"],\"url\":[\"https://www.youtube.com/watch?v=tlYcUqEPN58\"]},\"twitter\":{\"id\":\"471420141989666817\",\"retweet\":{\"text\":\"\\\"@Pharrell: Loved working with @edsheeran on Sing. He's a genius. https://t.co/wB2qKyJMRw\\\" @ViiOLeee look at this!\",\"id\":\"471420141989666817\",\"user\":{\"name\":\"Violeta Anguita\",\"description\":\"La vida no seria la fiesta que todos esperamos, pero mientras estemos aqui debemos BAILAR!!! #ErasmusOnceErasmusForever\",\"location\":\"Espanhaa..Olaa!\",\"statuses_count\":5882,\"followers_count\":249,\"friends_count\":1090,\"screen_name\":\"ViiOLeee\",\"profile_image_url\":\"http://pbs.twimg.com/profile_images/378800000851401229/bbf480cde2e9923a1d20acd393da0212_normal.jpeg\",\"profile_image_url_https\":\"https://pbs.twimg.com/profile_images/378800000851401229/bbf480cde2e9923a1d20acd393da0212_normal.jpeg\",\"lang\":\"en\",\"time_zone\":\"Madrid\",\"utc_offset\":7200,\"listed_count\":1,\"id\":709 31384,\"id_str\":\"70931384\",\"geo_enabled\":false,\"verified\":false,\"favourites_count\":275,\"created_at\":\"Wed, 02 Sep 2009 10:19:59 +0000\"},\"source\":\"<a href=\\\"http://twitter.com/download/android\\\" rel=\\\"nofollow\\\">Twitter for Android</a>\",\"count\":1,\"created_at\":\"Tue, 27 May 2014 22:38:15 +0000\",\"mentions\":[\"Pharrell\",\"edsheeran\",\"ViiOLeee\",\"AliiAnguita\"],\"mention_ids\":[338084918,85452649,70931384],\"links\":[\"https://www.youtube.com/watch?v=tlYcUqEPN58\"],\"display_urls\":[\"youtube.com/watch?v=tlYcUq���\"],\"domains\":[\"www.youtube.com\"],\"lang\":\"en\"},\"retweeted\":{\"id\":\"471419867078209536\",\"user\":{\"name\":\"Alicia Anguita \",\"description\":\"Estudiante de Ingenieria de la Edificaci��n en Granada.\",\"statuses_count\":371,\"followers_count\":185,\"friends_count\":404,\"screen_name\":\"AliiAnguita\",\"profile_image_url\":\"http://pbs.twimg.com/profile_images/424248659677442048/qCPZL8c9_normal.jpeg\",\"profile_image_url_ https\":\"https://pbs.twimg.com/profile_images/424248659677442048/qCPZL8c9_normal.jpeg\",\"lang\":\"es\",\"listed_count\":0,\"id\":561201891,\"id_str\":\"561201891\",\"geo_enabled\":false,\"verified\":false,\"favourites_count\":17,\"created_at\":\"Mon, 23 Apr 2012 13:11:44 +0000\"},\"source\":\"<a href=\\\"http://twitter.com/download/android\\\" rel=\\\"nofollow\\\">Twitter for Android</a>\",\"created_at\":\"Tue, 27 May 2014 22:37:09 +0000\"}}}"; - - public static final String DATASIFT_FORMAT = "EEE, dd MMM yyyy HH:mm:ss Z"; - - @Test - public void testTypeConverterStringToString() { - final String ID = "1"; - StreamsProcessor processor = new TypeConverterProcessor(String.class, Lists.newArrayList(DATASIFT_FORMAT)); - processor.prepare(null); - StreamsDatum datum = new StreamsDatum(DATASIFT_JSON, ID); - List<StreamsDatum> result = processor.process(datum); - assertNotNull(result); - assertEquals(1, result.size()); - StreamsDatum resultDatum = result.get(0); - assertNotNull(resultDatum); - assertNotNull(resultDatum.getDocument()); - assertTrue(resultDatum.getDocument() instanceof String); - assertEquals(ID, resultDatum.getId()); - } - - @Test - public void testTypeConverterStringToObjectNode() { - final String ID = "1"; - StreamsProcessor processor = new TypeConverterProcessor(ObjectNode.class, Lists.newArrayList(DATASIFT_FORMAT)); - processor.prepare(null); - StreamsDatum datum = new StreamsDatum(DATASIFT_JSON, ID); - List<StreamsDatum> result = processor.process(datum); - assertNotNull(result); - assertEquals(1, result.size()); - StreamsDatum resultDatum = result.get(0); - assertNotNull(resultDatum); - assertNotNull(resultDatum.getDocument()); - assertTrue(resultDatum.getDocument() instanceof ObjectNode); - assertEquals(ID, resultDatum.getId()); - } - - @Test - public void testTypeConverterObjectNodeToString() throws IOException { - final String ID = "1"; - StreamsProcessor processor = new TypeConverterProcessor(String.class, Lists.newArrayList(DATASIFT_FORMAT)); - processor.prepare(null); - ObjectMapper mapper = StreamsJacksonMapper.getInstance(DATASIFT_FORMAT); - ObjectNode node = mapper.readValue(DATASIFT_JSON, ObjectNode.class); - StreamsDatum datum = new StreamsDatum(node, ID); - List<StreamsDatum> result = processor.process(datum); - assertNotNull(result); - assertEquals(1, result.size()); - StreamsDatum resultDatum = result.get(0); - assertNotNull(resultDatum); - assertNotNull(resultDatum.getDocument()); - assertTrue(resultDatum.getDocument() instanceof String); - assertEquals(ID, resultDatum.getId()); - } -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-http/README.md ---------------------------------------------------------------------- diff --git a/streams-components/streams-http/README.md b/streams-components/streams-http/README.md index 1322dff..62dd4c1 100644 --- a/streams-components/streams-http/README.md +++ b/streams-components/streams-http/README.md @@ -12,14 +12,5 @@ Example SimpleHTTPGetProcessor configuration: "resourceUri": "1/urls/count.json" } -Example SimpleHTTPPostPersistWriter configuration: - - "http": { - "protocol": "http", - "hostname": "localhost", - "port": 7474, - "resourceUri": "db/data/cypher" - } - http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-http/pom.xml ---------------------------------------------------------------------- diff --git a/streams-components/streams-http/pom.xml b/streams-components/streams-http/pom.xml index 4011862..f549729 100644 --- a/streams-components/streams-http/pom.xml +++ b/streams-components/streams-http/pom.xml @@ -78,23 +78,6 @@ <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-all</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-api-mockito</artifactId> - </dependency> </dependencies> <build> http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-http/src/main/java/org/apache/streams/components/http/HttpConfigurator.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-http/src/main/java/org/apache/streams/components/http/HttpConfigurator.java b/streams-components/streams-http/src/main/java/org/apache/streams/components/http/HttpConfigurator.java index ae17dbe..979a680 100644 --- a/streams-components/streams-http/src/main/java/org/apache/streams/components/http/HttpConfigurator.java +++ b/streams-components/streams-http/src/main/java/org/apache/streams/components/http/HttpConfigurator.java @@ -59,17 +59,4 @@ public class HttpConfigurator { return httpProcessorConfiguration; } - public static HttpPersistWriterConfiguration detectPersistWriterConfiguration(Config config) { - - HttpPersistWriterConfiguration httpPersistWriterConfiguration = null; - - try { - httpPersistWriterConfiguration = mapper.readValue(config.root().render(ConfigRenderOptions.concise()), HttpPersistWriterConfiguration.class); - } catch (Exception e) { - e.printStackTrace(); - LOGGER.warn("Could not parse http configuration", e.getMessage()); - } - return httpPersistWriterConfiguration; - } - } http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-http/src/main/java/org/apache/streams/components/http/persist/SimpleHTTPPostPersistWriter.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-http/src/main/java/org/apache/streams/components/http/persist/SimpleHTTPPostPersistWriter.java b/streams-components/streams-http/src/main/java/org/apache/streams/components/http/persist/SimpleHTTPPostPersistWriter.java deleted file mode 100644 index 8dd4e4d..0000000 --- a/streams-components/streams-http/src/main/java/org/apache/streams/components/http/persist/SimpleHTTPPostPersistWriter.java +++ /dev/null @@ -1,192 +0,0 @@ -package org.apache.streams.components.http.persist; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; -import org.apache.http.HttpEntity; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.utils.URIBuilder; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.util.EntityUtils; -import org.apache.streams.components.http.HttpConfigurator; -import org.apache.streams.components.http.HttpPersistWriterConfiguration; -import org.apache.streams.config.StreamsConfigurator; -import org.apache.streams.core.StreamsDatum; -import org.apache.streams.core.StreamsPersistWriter; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Map; - -/** - * Created by steve on 11/12/14. - */ -public class SimpleHTTPPostPersistWriter implements StreamsPersistWriter { - - private final static String STREAMS_ID = "SimpleHTTPPostPersistWriter"; - - private final static Logger LOGGER = LoggerFactory.getLogger(SimpleHTTPPostPersistWriter.class); - - protected ObjectMapper mapper; - - protected URIBuilder uriBuilder; - - protected CloseableHttpClient httpclient; - - protected HttpPersistWriterConfiguration configuration; - - public SimpleHTTPPostPersistWriter() { - this(HttpConfigurator.detectPersistWriterConfiguration(StreamsConfigurator.config.getConfig("http"))); - } - - public SimpleHTTPPostPersistWriter(HttpPersistWriterConfiguration configuration) { - this.configuration = configuration; - } - - - @Override - public void write(StreamsDatum entry) { - - //TODO: use streams-converters to add support for String and Activity - Preconditions.checkArgument(entry.getDocument() instanceof ObjectNode); - - ObjectNode payload = preparePayload(entry); - - Map<String, String> params = prepareParams(entry); - - URI uri = prepareURI(params); - - HttpPost httppost = prepareHttpPost(uri, payload); - - ObjectNode result = executePost(httppost); - - try { - LOGGER.debug(mapper.writeValueAsString(result)); - } catch (JsonProcessingException e) { - LOGGER.warn("Non-json response", e.getMessage()); - } - } - - /** - Override this to alter request URI - */ - protected URI prepareURI(Map<String, String> params) { - URI uri = null; - for( Map.Entry<String,String> param : params.entrySet()) { - uriBuilder = uriBuilder.setParameter(param.getKey(), param.getValue()); - } - try { - uri = uriBuilder.build(); - } catch (URISyntaxException e) { - LOGGER.error("URI error {}", uriBuilder.toString()); - } - return uri; - } - - /** - Override this to add parameters to the request - */ - protected Map<String, String> prepareParams(StreamsDatum entry) { - - return Maps.newHashMap(); - } - - /** - Override this to alter json payload on to the request - */ - protected ObjectNode preparePayload(StreamsDatum entry) { - - return (ObjectNode) entry.getDocument(); - } - - /** - Override this to add headers to the request - */ - public HttpPost prepareHttpPost(URI uri, ObjectNode payload) { - HttpPost httppost = new HttpPost(uri); - httppost.addHeader("content-type", this.configuration.getContentType()); -// TODO: add support for authentication -// if( !Strings.isNullOrEmpty(authHeader)) -// httpget.addHeader("Authorization", String.format("Basic %s", authHeader)); - try { - String entity = mapper.writeValueAsString(payload); - httppost.setEntity(new StringEntity(entity)); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return httppost; - } - - protected ObjectNode executePost(HttpPost httpPost) { - - Preconditions.checkNotNull(httpPost); - - ObjectNode result = null; - - CloseableHttpResponse response = null; - - String entityString = null; - try { - response = httpclient.execute(httpPost); - HttpEntity entity = response.getEntity(); - // TODO: handle retry - if (response.getStatusLine() != null && response.getStatusLine().getStatusCode() >= 200 && entity != null) { - entityString = EntityUtils.toString(entity); - result = mapper.readValue(entityString, ObjectNode.class); - } - } catch (IOException e) { - LOGGER.error("IO error:\n{}\n{}\n{}", httpPost.toString(), response, e.getMessage()); - } finally { - try { - response.close(); - } catch (IOException e) {} - } - return result; - } - - @Override - public void prepare(Object configurationObject) { - - mapper = StreamsJacksonMapper.getInstance(); - - uriBuilder = new URIBuilder() - .setScheme(this.configuration.getProtocol()) - .setHost(this.configuration.getHostname()) - .setPort(this.configuration.getPort().intValue()) - .setPath(this.configuration.getResourcePath()); - - httpclient = HttpClients.createDefault(); - - } - - @Override - public void cleanUp() { - - LOGGER.info("shutting down SimpleHTTPPostPersistWriter"); - try { - httpclient.close(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - httpclient.close(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - httpclient = null; - } - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-http/src/main/java/org/apache/streams/components/http/processor/SimpleHTTPGetProcessor.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-http/src/main/java/org/apache/streams/components/http/processor/SimpleHTTPGetProcessor.java b/streams-components/streams-http/src/main/java/org/apache/streams/components/http/processor/SimpleHTTPGetProcessor.java index 18ba157..b8c957c 100644 --- a/streams-components/streams-http/src/main/java/org/apache/streams/components/http/processor/SimpleHTTPGetProcessor.java +++ b/streams-components/streams-http/src/main/java/org/apache/streams/components/http/processor/SimpleHTTPGetProcessor.java @@ -154,7 +154,16 @@ public class SimpleHTTPGetProcessor implements StreamsProcessor { Map<String, String> params = prepareParams(entry); - URI uri = prepareURI(params); + URI uri; + for( Map.Entry<String,String> param : params.entrySet()) { + uriBuilder = uriBuilder.setParameter(param.getKey(), param.getValue()); + } + try { + uri = uriBuilder.build(); + } catch (URISyntaxException e) { + LOGGER.error("URI error {}", uriBuilder.toString()); + return result; + } HttpGet httpget = prepareHttpGet(uri); @@ -199,23 +208,6 @@ public class SimpleHTTPGetProcessor implements StreamsProcessor { } /** - Override this to alter request URI - */ - protected URI prepareURI(Map<String, String> params) { - - URI uri = null; - for( Map.Entry<String,String> param : params.entrySet()) { - uriBuilder = uriBuilder.setParameter(param.getKey(), param.getValue()); - } - try { - uri = uriBuilder.build(); - } catch (URISyntaxException e) { - LOGGER.error("URI error {}", uriBuilder.toString()); - } - return uri; - } - - /** Override this to add parameters to the request */ protected Map<String, String> prepareParams(StreamsDatum entry) { @@ -223,12 +215,6 @@ public class SimpleHTTPGetProcessor implements StreamsProcessor { return Maps.newHashMap(); } - /** - Override this to set a payload on the request - */ - protected ObjectNode preparePayload(StreamsDatum entry) { - return null; - } public HttpGet prepareHttpGet(URI uri) { HttpGet httpget = new HttpGet(uri); http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-http/src/main/jsonschema/org/apache/streams/components/http/HttpPersistWriterConfiguration.json ---------------------------------------------------------------------- diff --git a/streams-components/streams-http/src/main/jsonschema/org/apache/streams/components/http/HttpPersistWriterConfiguration.json b/streams-components/streams-http/src/main/jsonschema/org/apache/streams/components/http/HttpPersistWriterConfiguration.json deleted file mode 100644 index 14b8015..0000000 --- a/streams-components/streams-http/src/main/jsonschema/org/apache/streams/components/http/HttpPersistWriterConfiguration.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "object", - "$schema": "http://json-schema.org/draft-03/schema", - "id": "#", - "javaType" : "org.apache.streams.components.http.HttpPersistWriterConfiguration", - "javaInterfaces": ["java.io.Serializable"], - "extends": { "$ref": "HttpConfiguration.json" }, - "properties": { - "resourcePostfixPattern": { - "type": "string", - "description": "Pattern for supplying final path for write", - "required" : false - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-components/streams-http/src/test/java/SimpleHTTPPostPersistWriterTest.java ---------------------------------------------------------------------- diff --git a/streams-components/streams-http/src/test/java/SimpleHTTPPostPersistWriterTest.java b/streams-components/streams-http/src/test/java/SimpleHTTPPostPersistWriterTest.java deleted file mode 100644 index 1733b43..0000000 --- a/streams-components/streams-http/src/test/java/SimpleHTTPPostPersistWriterTest.java +++ /dev/null @@ -1,119 +0,0 @@ -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpUriRequest; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.streams.components.http.HttpPersistWriterConfiguration; -import org.apache.streams.components.http.persist.SimpleHTTPPostPersistWriter; -import org.apache.streams.core.StreamsDatum; -import org.apache.streams.jackson.StreamsJacksonMapper; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; - -import static org.mockito.Matchers.any; - -/** - * Created by steve on 11/22/14. - */ -@RunWith(PowerMockRunner.class) -@PrepareForTest({HttpClients.class, CloseableHttpResponse.class, CloseableHttpResponse.class}) -public class SimpleHTTPPostPersistWriterTest { - - private ObjectMapper mapper = StreamsJacksonMapper.getInstance(); - - /** - * test port. - */ - private static final int PORT = 18080; - - /** - * test hosts. - */ - private static final String HOSTNAME = "localhost"; - - /** - * test protocol. - */ - private static final String PROTOCOL = "http"; - - /** - * HttpClients mock. - */ - private HttpClients httpClients; - - /** - * CloseableHttpClient mock. - */ - private CloseableHttpClient client; - - /** - * CloseableHttpClient mock. - */ - private CloseableHttpResponse response = Mockito.mock(CloseableHttpResponse.class); - - /** - * Our output. - */ - private ByteArrayOutputStream output; - - /** - * Our input. - */ - private ByteArrayInputStream input; - - /** - * Instance under tests. - */ - private SimpleHTTPPostPersistWriter writer; - - @Before - public void setUp() throws Exception - { - this.httpClients = PowerMockito.mock(HttpClients.class); - this.client = PowerMockito.mock(CloseableHttpClient.class); - - PowerMockito.mockStatic(HttpClients.class); - - PowerMockito.when(HttpClients.createDefault()) - .thenReturn(client); - - PowerMockito.when(client.execute(any(HttpUriRequest.class))) - .thenReturn(response); - - Mockito.when(response.getEntity()).thenReturn(null); - Mockito.doNothing().when(response).close(); - - } - - @Test - public void testPersist() throws Exception - { - HttpPersistWriterConfiguration configuration = new HttpPersistWriterConfiguration(); - configuration.setProtocol(PROTOCOL); - configuration.setHostname(HOSTNAME); - configuration.setPort(new Long(PORT)); - configuration.setResourcePath("/"); - - this.writer = new SimpleHTTPPostPersistWriter(configuration); - - this.writer.prepare(null); - - StreamsDatum testDatum = new StreamsDatum(mapper.readValue("{\"message\":\"ping\"}", ObjectNode.class)); - - this.writer.write(testDatum); - - Mockito.verify(this.client).execute(any(HttpUriRequest.class)); - - Mockito.verify(this.response).close(); - - } -} http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/pom.xml ---------------------------------------------------------------------- diff --git a/streams-contrib/pom.xml b/streams-contrib/pom.xml index 0fbbd77..fcec297 100644 --- a/streams-contrib/pom.xml +++ b/streams-contrib/pom.xml @@ -40,7 +40,6 @@ <module>streams-persist-cassandra</module> <module>streams-persist-console</module> <module>streams-persist-elasticsearch</module> - <module>streams-persist-graph</module> <module>streams-persist-hbase</module> <module>streams-persist-hdfs</module> <module>streams-persist-kafka</module> @@ -48,6 +47,7 @@ <module>streams-amazon-aws</module> <!--<module>streams-processor-lucene</module>--> <!--<module>streams-processor-tika</module>--> + <module>streams-processor-jackson</module> <module>streams-processor-json</module> <module>streams-processor-urls</module> <module>streams-processor-peoplepattern</module> http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/streams-contrib/streams-persist-graph/README.md ---------------------------------------------------------------------- diff --git a/streams-contrib/streams-persist-graph/README.md b/streams-contrib/streams-persist-graph/README.md deleted file mode 100644 index 086f5b5..0000000 --- a/streams-contrib/streams-persist-graph/README.md +++ /dev/null @@ -1,44 +0,0 @@ -streams-persist-graph -===================== - -Build graph index of stream - -Example Neo4J configuration: - - { - "graph": { - "type": "neo4j", - "protocol": "http", - "hostname": "localhost", - "port": 7474, - "graph": "data" - "vertices": { - "verbs": [ - "post", - "share", - "tweet" - ], - "objectType": "page" - } - }, - } - -Example Rexster configuration: - - { - "graph": { - "type": "rexster", - "protocol": "http", - "hostname": "localhost", - "port": 8182, - "graph": "data", - "vertices": { - "verbs": [ - "post", - "share", - "tweet" - ], - "objectType": "page" - } - }, - } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/7afd6e0a/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 deleted file mode 100644 index 86458a5..0000000 --- a/streams-contrib/streams-persist-graph/pom.xml +++ /dev/null @@ -1,96 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<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"> - <parent> - <artifactId>streams-contrib</artifactId> - <groupId>org.apache.streams</groupId> - <version>0.1-SNAPSHOT</version> - </parent> - <modelVersion>4.0.0</modelVersion> - - <artifactId>streams-persist-graph</artifactId> - <name>streams-persist-graph</name> - - <dependencies> - <dependency> - <groupId>org.apache.streams</groupId> - <artifactId>streams-config</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.typesafe</groupId> - <artifactId>config</artifactId> - <version>1.2.0</version> - </dependency> - <dependency> - <groupId>org.apache.streams</groupId> - <artifactId>streams-core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.streams</groupId> - <artifactId>streams-pojo</artifactId> - <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-http</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.antlr</groupId> - <artifactId>stringtemplate</artifactId> - <version>4.0.2</version> - </dependency> - </dependencies> - <build> - <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-source</goal> - </goals> - <configuration> - <sources> - <source>target/generated-sources/jsonschema2pojo</source> - </sources> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <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.graph.pojo</targetPackage> - <useLongIntegers>true</useLongIntegers> - <useJodaDates>true</useJodaDates> - </configuration> - <executions> - <execution> - <goals> - <goal>generate</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> \ No newline at end of file