Author: tobr
Date: Fri Dec 14 09:30:23 2012
New Revision: 1421765
URL: http://svn.apache.org/viewvc?rev=1421765&view=rev
Log:
added tests to show how easy it is to use droids
Added:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/FileNameParser.java
(with props)
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/Parser.java
(with props)
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/resources/logback.xml
(with props)
Removed:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/Parser.java
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/AbstractDroid.java
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/ContentEntity.java
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/Droid.java
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/handle/SysoutHandler.java
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/FilterFactory.java
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/HandlerFactory.java
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/ParserFactory.java
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/ProtocolFactory.java
incubator/droids/branches/0.2.x-cleanup/droids-crawler/src/main/java/org/apache/droids/crawler/CrawlingWorker.java
incubator/droids/branches/0.2.x-cleanup/droids-walker/pom.xml
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/main/java/org/apache/droids/walker/FileWorker.java
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/main/java/org/apache/droids/walker/SimpleWalkingDroid.java
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/java/org/apache/droids/walker/WalkingDroidTest.java
incubator/droids/branches/0.2.x-cleanup/pom.xml
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/AbstractDroid.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/AbstractDroid.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/AbstractDroid.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/AbstractDroid.java
Fri Dec 14 09:30:23 2012
@@ -21,6 +21,9 @@ import org.apache.droids.helper.factorie
import org.apache.droids.helper.factories.ParserFactory;
import org.apache.droids.helper.factories.ProtocolFactory;
import org.apache.droids.filter.Filter;
+import org.apache.droids.parse.Parser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.Queue;
@@ -37,18 +40,19 @@ public abstract class AbstractDroid<T ex
protected FilterFactory<T> filterFactory;
protected HandlerFactory handlerFactory;
+ protected final static Logger logger =
LoggerFactory.getLogger(AbstractDroid.class);
+
public AbstractDroid() {
- this.queue = new SimpleTaskQueueWithHistory<T>();
- this.taskMaster = new MultiThreadedTaskMaster<T>();
- this.protocolFactory = new ProtocolFactory();
- this.parserFactory = new ParserFactory();
- this.filterFactory = new FilterFactory();
- this.handlerFactory = new HandlerFactory();
+ this(new SimpleTaskQueueWithHistory<T>(), new
MultiThreadedTaskMaster<T>());
}
public AbstractDroid(Queue<T> queue, TaskMaster<T> taskMaster) {
this.queue = queue;
this.taskMaster = taskMaster;
+ this.protocolFactory = new ProtocolFactory();
+ this.parserFactory = new ParserFactory();
+ this.filterFactory = new FilterFactory();
+ this.handlerFactory = new HandlerFactory();
}
@Override
@@ -81,24 +85,28 @@ public abstract class AbstractDroid<T ex
return this.filterFactory.filter(task);
}
+ @Override
public void addParsers(Parser... parsers) {
for (Parser parser : parsers) {
this.parserFactory.addParser(parser);
}
}
+ @Override
public void addProtocols(Protocol... protocols) {
for (Protocol protocol : protocols) {
this.protocolFactory.addProtocol(protocol);
}
}
+ @Override
public void addHandlers(Handler... handlers) {
for (Handler handler : handlers) {
this.handlerFactory.addHandler(handler);
}
}
+ @Override
public void addFilters(Filter<T>... filters) {
for (Filter<T> filter : filters) {
this.filterFactory.addFilter(filter);
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/ContentEntity.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/ContentEntity.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/ContentEntity.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/ContentEntity.java
Fri Dec 14 09:30:23 2012
@@ -27,5 +27,8 @@ public class ContentEntity {
this.data.put(key, value);
}
+ public Map<String, Object> getData() {
+ return data;
+ }
}
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/Droid.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/Droid.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/Droid.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/Droid.java
Fri Dec 14 09:30:23 2012
@@ -16,6 +16,9 @@
*/
package org.apache.droids.core;
+import org.apache.droids.filter.Filter;
+import org.apache.droids.parse.Parser;
+
import java.io.IOException;
/**
@@ -52,6 +55,14 @@ public interface Droid<T extends Task> {
*/
public Worker<T> getNewWorker();
+ public void addParsers(Parser... parsers);
+
+ public void addProtocols(Protocol... protocols);
+
+ public void addHandlers(Handler... handlers);
+
+ public void addFilters(Filter<T>... filters);
+
/**
* Parse the task
*
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/handle/SysoutHandler.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/handle/SysoutHandler.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/handle/SysoutHandler.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/handle/SysoutHandler.java
Fri Dec 14 09:30:23 2012
@@ -16,46 +16,44 @@
*/
package org.apache.droids.handle;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.Reader;
-import java.io.Writer;
-
-import org.apache.droids.core.ContentEntity;
import org.apache.droids.core.DroidsException;
import org.apache.droids.core.Handler;
import org.apache.droids.core.Task;
-import org.apache.droids.exception.InvalidTaskException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.*;
/**
* Handler that write the stream to the sysout. Mostly added for debugging
* reasons.
- *
+ *
* @version 1.0
- *
*/
public class SysoutHandler extends WriterHandler implements Handler {
+ private static final Logger logger =
LoggerFactory.getLogger(SysoutHandler.class);
+
+ private static void writeOutput(InputStream stream) throws IOException {
+ Reader reader = new InputStreamReader(stream);
+ Writer output = new OutputStreamWriter(System.out);
+ pipe(reader, output);
+ }
- private static void writeOutput(InputStream stream) throws IOException {
- Reader reader = new InputStreamReader(stream);
- Writer output = new OutputStreamWriter(System.out);
- pipe(reader, output);
- }
-
- @Override
- public void handle(Task task) throws IOException, DroidsException {
- InputStream instream;
- if (task.getContentEntity().getValue(ContentEntity.CONTENT) instanceof
InputStream) {
- instream =
(InputStream)task.getContentEntity().getValue(ContentEntity.CONTENT);
- } else
- throw new InvalidTaskException("no inputstream available");
- try {
- writeOutput(instream);
- } finally {
- instream.close();
+ @Override
+ public void handle(Task task) throws IOException, DroidsException {
+ for (String key : task.getContentEntity().getData().keySet()) {
+ if (task.getContentEntity().getValue(key) instanceof InputStream) {
+ InputStream instream = (InputStream)
task.getContentEntity().getValue(key);
+ try {
+ logger.info(key + ": ");
+ writeOutput(instream);
+ } finally {
+ instream.close();
+ }
+ } else {
+ logger.info(key + ": " +
task.getContentEntity().getValue(key).toString());
+ }
+ }
}
- }
}
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/FilterFactory.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/FilterFactory.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/FilterFactory.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/FilterFactory.java
Fri Dec 14 09:30:23 2012
@@ -19,6 +19,7 @@ package org.apache.droids.helper.factori
import org.apache.droids.core.Task;
import org.apache.droids.filter.Filter;
+import java.util.HashSet;
import java.util.Set;
/**
@@ -26,16 +27,20 @@ import java.util.Set;
*
* @version 1.0
*/
-public class FilterFactory<T extends Task> {
+public class FilterFactory {
private Set<Filter> filters;
+ public FilterFactory() {
+ this.filters = new HashSet<Filter>();
+ }
+
public <T extends Task> void addFilter(Filter<T> filter) {
filters.add(filter);
}
public <T extends Task> T filter(T task) {
for (Filter<T> filter : filters) {
- // task =
+ task = filter.filter(task);
}
return task;
}
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/HandlerFactory.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/HandlerFactory.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/HandlerFactory.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/HandlerFactory.java
Fri Dec 14 09:30:23 2012
@@ -17,6 +17,7 @@
package org.apache.droids.helper.factories;
import java.io.IOException;
+import java.util.HashSet;
import java.util.Set;
import org.apache.droids.core.DroidsException;
@@ -32,6 +33,10 @@ import org.apache.droids.core.Task;
public class HandlerFactory {
private Set<Handler> handlers;
+ public HandlerFactory() {
+ this.handlers = new HashSet<Handler>();
+ }
+
public void addHandler(Handler handler) {
handlers.add(handler);
}
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/ParserFactory.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/ParserFactory.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/ParserFactory.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/ParserFactory.java
Fri Dec 14 09:30:23 2012
@@ -17,10 +17,11 @@
package org.apache.droids.helper.factories;
import org.apache.droids.core.DroidsException;
-import org.apache.droids.core.Parser;
+import org.apache.droids.parse.Parser;
import org.apache.droids.core.Task;
import java.io.IOException;
+import java.util.HashSet;
import java.util.Set;
/**
@@ -31,6 +32,10 @@ import java.util.Set;
public class ParserFactory {
private Set<Parser> parsers;
+ public ParserFactory() {
+ this.parsers = new HashSet<Parser>();
+ }
+
public void addParser(Parser parser) {
this.parsers.add(parser);
}
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/ProtocolFactory.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/ProtocolFactory.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/ProtocolFactory.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/ProtocolFactory.java
Fri Dec 14 09:30:23 2012
@@ -20,6 +20,7 @@ import org.apache.droids.core.Protocol;
import org.apache.droids.exception.ProtocolNotFoundException;
import java.net.URI;
+import java.util.HashSet;
import java.util.Set;
/**
@@ -30,6 +31,10 @@ import java.util.Set;
public class ProtocolFactory {
private Set<Protocol> protocols;
+ public ProtocolFactory() {
+ this.protocols = new HashSet<Protocol>();
+ }
+
public void addProtocol(Protocol protocol) {
protocols.add(protocol);
}
Added:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/FileNameParser.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/FileNameParser.java?rev=1421765&view=auto
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/FileNameParser.java
(added)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/FileNameParser.java
Fri Dec 14 09:30:23 2012
@@ -0,0 +1,23 @@
+package org.apache.droids.parse;
+
+import org.apache.droids.core.DroidsException;
+import org.apache.droids.core.Task;
+
+import java.io.IOException;
+
+/**
+ *
+ *
+ *
+ */
+public class FileNameParser implements Parser {
+
+ public static final String FILENAME = "filename";
+
+
+ @Override
+ public void parse(Task task) throws DroidsException, IOException {
+ String path = task.getURI().getPath();
+ task.getContentEntity().put(FILENAME,
path.substring(path.lastIndexOf('/') + 1));
+ }
+}
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/FileNameParser.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/FileNameParser.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/FileNameParser.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/Parser.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/Parser.java?rev=1421765&view=auto
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/Parser.java
(added)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/Parser.java
Fri Dec 14 09:30:23 2012
@@ -0,0 +1,39 @@
+/*
+ * 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.droids.parse;
+
+import java.io.IOException;
+
+import org.apache.droids.core.DroidsException;
+import org.apache.droids.core.Task;
+
+/**
+ * Simple parser that is only forcing to return a parse object.
+ *
+ * @version 1.0
+ *
+ */
+public interface Parser {
+ /**
+ * Creates the parse for some content.
+ *
+ * @param task
+ * the task that correspond to the stream
+ * @return the parse object
+ */
+ public void parse(Task task) throws DroidsException, IOException;
+}
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/Parser.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/Parser.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/parse/Parser.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-crawler/src/main/java/org/apache/droids/crawler/CrawlingWorker.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-crawler/src/main/java/org/apache/droids/crawler/CrawlingWorker.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-crawler/src/main/java/org/apache/droids/crawler/CrawlingWorker.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-crawler/src/main/java/org/apache/droids/crawler/CrawlingWorker.java
Fri Dec 14 09:30:23 2012
@@ -29,7 +29,7 @@ import org.apache.droids.core.Worker;
import org.apache.droids.helper.factories.HandlerFactory;
import org.apache.droids.helper.factories.URLFiltersFactory;
import org.apache.droids.parse.Parse;
-import org.apache.droids.core.Parser;
+import org.apache.droids.parse.Parser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: incubator/droids/branches/0.2.x-cleanup/droids-walker/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-walker/pom.xml?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
--- incubator/droids/branches/0.2.x-cleanup/droids-walker/pom.xml (original)
+++ incubator/droids/branches/0.2.x-cleanup/droids-walker/pom.xml Fri Dec 14
09:30:23 2012
@@ -11,7 +11,7 @@
</parent>
<artifactId>droids-walker</artifactId>
- <name>droids-walker</name>
+ <name>APACHE DROIDS WALKER</name>
<dependencies>
<dependency>
@@ -28,7 +28,7 @@
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
- <version>1.0.7</version>
+ <version>${logback.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/main/java/org/apache/droids/walker/FileWorker.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-walker/src/main/java/org/apache/droids/walker/FileWorker.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/main/java/org/apache/droids/walker/FileWorker.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/main/java/org/apache/droids/walker/FileWorker.java
Fri Dec 14 09:30:23 2012
@@ -16,36 +16,41 @@
*/
package org.apache.droids.walker;
-import java.io.File;
-
+import org.apache.droids.core.DroidsException;
import org.apache.droids.core.Worker;
-import org.apache.droids.exception.InvalidTaskException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.io.IOException;
+
public class FileWorker implements Worker<FileTask> {
- private final Logger logger = LoggerFactory.getLogger(FileWorker.class);
- final WalkingDroid droid;
+ private final Logger logger = LoggerFactory.getLogger(FileWorker.class);
+ final WalkingDroid droid;
- public FileWorker(WalkingDroid droid) {
- this.droid = droid;
- }
-
- @Override
- public void execute(FileTask task) throws InvalidTaskException {
- File file = task.getFile();
- if (file.isDirectory()) {
- File[] files = file.listFiles();
- if (files != null) {
- for (File f : files) {
- droid.add(new FileTask(f,
task.getDepth() + 1));
- }
- }
- } else {
- if (logger.isInfoEnabled()) {
- logger.info("FILE: " + file.getAbsolutePath());
- }
- }
- }
+ public FileWorker(WalkingDroid droid) {
+ this.droid = droid;
+ }
+
+ @Override
+ public void execute(FileTask task) throws IOException, DroidsException {
+ File file = task.getFile();
+ if (file.isDirectory()) {
+ File[] files = file.listFiles();
+ if (files != null) {
+ for (File f : files) {
+ FileTask newTask = droid.filter(new FileTask(f,
task.getDepth() + 1));
+ if (newTask != null)
+ droid.add(newTask);
+ }
+ }
+ } else {
+ if (logger.isDebugEnabled()) {
+ logger.debug("FILE: " + file.getAbsolutePath());
+ }
+ droid.parse(task);
+ droid.handle(task);
+ }
+ }
}
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/main/java/org/apache/droids/walker/SimpleWalkingDroid.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-walker/src/main/java/org/apache/droids/walker/SimpleWalkingDroid.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/main/java/org/apache/droids/walker/SimpleWalkingDroid.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/main/java/org/apache/droids/walker/SimpleWalkingDroid.java
Fri Dec 14 09:30:23 2012
@@ -16,54 +16,52 @@
*/
package org.apache.droids.walker;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.concurrent.TimeUnit;
-
import com.google.common.base.Preconditions;
-import java.util.LinkedList;
-import java.util.Queue;
-
import org.apache.droids.core.AbstractDroid;
-import org.apache.droids.core.MultiThreadedTaskMaster;
import org.apache.droids.core.TaskMaster;
-import org.apache.droids.exception.InvalidTaskException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.util.Collection;
+import java.util.Queue;
+
public class SimpleWalkingDroid extends AbstractDroid<FileTask> implements
WalkingDroid {
private Collection<File> initialFiles;
private static Logger logger =
LoggerFactory.getLogger(SimpleWalkingDroid.class);
- public SimpleWalkingDroid(Queue<FileTask> queue, TaskMaster<FileTask>
taskMaster) {
- super(queue, taskMaster);
- }
-
- @Override
- public void setInitialFiles(Collection<File> initialFiles) {
- this.initialFiles = initialFiles;
- }
-
- @Override
- public void start() {
- Preconditions.checkState(initialFiles != null,
- "FileSystemWalker requires at least one
starting file");
- Preconditions.checkState(!initialFiles.isEmpty(),
- "FileSystemWalker requires at least one
starting file");
- for (File file : initialFiles) {
- queue.add(new FileTask(file, 0));
- }
+ public SimpleWalkingDroid() {
+
+ }
+
+ public SimpleWalkingDroid(Queue<FileTask> queue, TaskMaster<FileTask>
taskMaster) {
+ super(queue, taskMaster);
+ }
+
+ @Override
+ public void setInitialFiles(Collection<File> initialFiles) {
+ this.initialFiles = initialFiles;
+ }
+
+ @Override
+ public void start() {
+ Preconditions.checkState(initialFiles != null,
+ "FileSystemWalker requires at least one starting file");
+ Preconditions.checkState(!initialFiles.isEmpty(),
+ "FileSystemWalker requires at least one starting file");
+ for (File file : initialFiles) {
+ queue.add(new FileTask(file, 0));
+ }
super.start();
- }
+ }
- @Override
- public void finished() {
- logger.info("FINISHED!!!");
- }
-
- @Override
- public FileWorker getNewWorker() {
- return new FileWorker(this);
- }
+ @Override
+ public void finished() {
+ logger.info("FINISHED!!!");
+ }
+
+ @Override
+ public FileWorker getNewWorker() {
+ return new FileWorker(this);
+ }
}
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/java/org/apache/droids/walker/WalkingDroidTest.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/java/org/apache/droids/walker/WalkingDroidTest.java?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/java/org/apache/droids/walker/WalkingDroidTest.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/java/org/apache/droids/walker/WalkingDroidTest.java
Fri Dec 14 09:30:23 2012
@@ -1,32 +1,61 @@
package org.apache.droids.walker;
+import org.apache.droids.core.SequentialTaskMaster;
+import org.apache.droids.core.TaskMaster;
+import org.apache.droids.filter.RegexURLFilter;
+import org.apache.droids.handle.SysoutHandler;
+import org.apache.droids.parse.FileNameParser;
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
import java.io.File;
import java.util.Collection;
import java.util.LinkedList;
import java.util.Queue;
-import org.apache.droids.core.SequentialTaskMaster;
-import org.apache.droids.core.TaskMaster;
-import org.apache.droids.exception.InvalidTaskException;
-import org.junit.Test;
-
public class WalkingDroidTest {
@Test
- public void testWalkingDroid() throws InvalidTaskException {
+ public void testWalkingDroid() throws NullPointerException {
Queue<FileTask> queue = new LinkedList<FileTask>();
TaskMaster<FileTask> taskMaster = new
SequentialTaskMaster<FileTask>();
-
+
Collection<File> initialFiles = new LinkedList<File>();
- try {
- initialFiles.add(new
File(this.getClass().getClassLoader().getResource("docs").getFile()));
- } catch (NullPointerException npe) {
- npe.printStackTrace();
- }
+
+ initialFiles.add(new
File(this.getClass().getClassLoader().getResource("docs").getFile()));
+
SimpleWalkingDroid droid = new SimpleWalkingDroid(queue,
taskMaster);
droid.setInitialFiles(initialFiles);
-
+ droid.addParsers(new FileNameParser());
+ droid.addHandlers(new SysoutHandler());
+
droid.start();
-
- }
+
+ assertEquals(19, taskMaster.getCompletedTasks());
+ }
+
+ @Test
+ public void testFilteredWalkingDroid() {
+ Queue<FileTask> queue = new LinkedList<FileTask>();
+ TaskMaster<FileTask> taskMaster = new SequentialTaskMaster<FileTask>();
+
+ Collection<File> initialFiles = new LinkedList<File>();
+
+ initialFiles.add(new
File(this.getClass().getClassLoader().getResource("docs").getFile()));
+
+ SimpleWalkingDroid droid = new SimpleWalkingDroid(queue, taskMaster);
+ droid.setInitialFiles(initialFiles);
+ droid.addParsers(new FileNameParser());
+ droid.addHandlers(new SysoutHandler());
+
+ RegexURLFilter filter = new RegexURLFilter();
+ filter.addRule(false, ".*(\\.pdf)");
+ filter.addRule(true, ".*");
+ droid.addFilters(filter);
+ droid.start();
+
+ assertEquals(10, taskMaster.getCompletedTasks());
+
+
+ }
}
Added:
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/resources/logback.xml
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/resources/logback.xml?rev=1421765&view=auto
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/resources/logback.xml
(added)
+++
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/resources/logback.xml
Fri Dec 14 09:30:23 2012
@@ -0,0 +1,17 @@
+<configuration>
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <!-- encoders are assigned the type
+ ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
%msg%n</pattern>
+ </encoder>
+ </appender>
+
+ <logger name="org.apache.droids" level="info"/>
+
+
+ <root level="error">
+ <appender-ref ref="STDOUT" />
+ </root>
+</configuration>
\ No newline at end of file
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/resources/logback.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/resources/logback.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-walker/src/test/resources/logback.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Modified: incubator/droids/branches/0.2.x-cleanup/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/pom.xml?rev=1421765&r1=1421764&r2=1421765&view=diff
==============================================================================
--- incubator/droids/branches/0.2.x-cleanup/pom.xml (original)
+++ incubator/droids/branches/0.2.x-cleanup/pom.xml Fri Dec 14 09:30:23 2012
@@ -183,6 +183,7 @@
<httpclient.version>4.2</httpclient.version>
<nekohtml.version>1.9.15</nekohtml.version>
<slf4j.version>1.6.4</slf4j.version>
+ <logback.version>1.0.7</logback.version>
<junit.version>4.10</junit.version>
</properties>