Author: tobr
Date: Fri Feb 1 12:55:23 2013
New Revision: 1441432
URL: http://svn.apache.org/viewvc?rev=1441432&view=rev
Log:
made changes to generic types
added a FragmentFilter
Added:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/FragmentFilter.java
(with props)
incubator/droids/branches/0.2.x-cleanup/droids-core/src/test/java/org/apache/droids/filter/
incubator/droids/branches/0.2.x-cleanup/droids-core/src/test/java/org/apache/droids/filter/FragmentsFilterTest.java
(with props)
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/Task.java
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/handle/ReportHandler.java
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/helper/factories/FilterFactory.java
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=1441432&r1=1441431&r2=1441432&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 Feb 1 12:55:23 2013
@@ -70,7 +70,7 @@ public abstract class AbstractDroid<T ex
*
* @param fetcher the fetcher
*/
- public void setFetcher(Fetcher fetcher) {
+ public void setFetcher(Fetcher<T> fetcher) {
this.fetcher = fetcher;
}
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/Task.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/Task.java?rev=1441432&r1=1441431&r2=1441432&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/Task.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/core/Task.java
Fri Feb 1 12:55:23 2013
@@ -74,5 +74,5 @@ public interface Task extends Serializab
* @param uri URI
* @return Task
*/
- public Task createTask(URI uri);
+ public <T extends Task> T createTask(URI uri);
}
Added:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/FragmentFilter.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/FragmentFilter.java?rev=1441432&view=auto
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/FragmentFilter.java
(added)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/FragmentFilter.java
Fri Feb 1 12:55:23 2013
@@ -0,0 +1,32 @@
+package org.apache.droids.filter;
+
+import org.apache.droids.core.Task;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ * Filter for removing the Fragments (#) from an URI.
+ * Fragments are often used to jump to anchors in pages.
+ * This can create unnecessary tasks.
+ *
+ * @version 1.0
+ */
+public class FragmentFilter<T extends Task> implements Filter<T> {
+ private static final Logger logger =
LoggerFactory.getLogger(FragmentFilter.class);
+
+ @Override
+ public T filter(T task) {
+ if (task != null) {
+ URI u = task.getURI();
+ try {
+ return task.createTask(new URI(u.getScheme(), null,
u.getHost(), -1, u.getPath(), u.getQuery(), null));
+ } catch (URISyntaxException e) {
+ logger.error(e.getMessage());
+ }
+ }
+ return null;
+ }
+}
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/FragmentFilter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/FragmentFilter.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/FragmentFilter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/handle/ReportHandler.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/handle/ReportHandler.java?rev=1441432&r1=1441431&r2=1441432&view=diff
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/handle/ReportHandler.java
(original)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/handle/ReportHandler.java
Fri Feb 1 12:55:23 2013
@@ -33,9 +33,9 @@ import org.apache.droids.core.Task;
*/
public class ReportHandler implements Handler {
- private static Set<String> report;
+ private Set<String> report;
- static {
+ public ReportHandler () {
report = Collections.synchronizedSet(new HashSet<String>());
}
@@ -45,11 +45,11 @@ public class ReportHandler implements Ha
report.add(task.getURI().toString());
}
- public static Set<String> getReport() {
+ public Set<String> getReport() {
return report;
}
- public static void recycle() {
+ public void recycle() {
report.clear();
}
}
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=1441432&r1=1441431&r2=1441432&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 Feb 1 12:55:23 2013
@@ -18,6 +18,8 @@ package org.apache.droids.helper.factori
import org.apache.droids.core.Task;
import org.apache.droids.filter.Filter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.HashSet;
import java.util.Set;
@@ -30,6 +32,8 @@ import java.util.Set;
public class FilterFactory {
private Set<Filter> filters;
+ private static final Logger logger =
LoggerFactory.getLogger(FilterFactory.class);
+
public FilterFactory() {
this.filters = new HashSet<Filter>();
}
@@ -39,8 +43,14 @@ public class FilterFactory {
}
public <T extends Task> T filter(T task) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("filter task: " + task.getURI());
+ }
for (Filter<T> filter : filters) {
task = filter.filter(task);
+ if (logger.isDebugEnabled()) {
+ logger.debug(filter.getClass().getSimpleName() + task);
+ }
}
return task;
}
Added:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/test/java/org/apache/droids/filter/FragmentsFilterTest.java
URL:
http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/test/java/org/apache/droids/filter/FragmentsFilterTest.java?rev=1441432&view=auto
==============================================================================
---
incubator/droids/branches/0.2.x-cleanup/droids-core/src/test/java/org/apache/droids/filter/FragmentsFilterTest.java
(added)
+++
incubator/droids/branches/0.2.x-cleanup/droids-core/src/test/java/org/apache/droids/filter/FragmentsFilterTest.java
Fri Feb 1 12:55:23 2013
@@ -0,0 +1,57 @@
+package org.apache.droids.filter;
+
+import org.apache.droids.core.SimpleTask;
+import org.apache.droids.core.Task;
+import org.junit.Test;
+import static org.junit.Assert.*;
+import static org.hamcrest.CoreMatchers.*;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ *
+ *
+ *
+ */
+public class FragmentsFilterTest {
+ private String scheme = "http";
+ private String host = "incubator.apache.org";
+ private String path = "/droids/";
+ private String fragment = "top";
+
+ private Filter<SimpleTask> fragmentFilter = new
FragmentFilter<SimpleTask>();
+
+
+ @Test
+ public void testNullFilter() {
+ assertNull(fragmentFilter.filter(null));
+ }
+
+ @Test
+ public void testFilterFragment() {
+ try {
+ URI uri = new URI(scheme, host, path, fragment);
+
+ Task task = fragmentFilter.filter(new SimpleTask(uri, 0));
+ assertThat(uri, not(task.getURI()));
+ assertThat(new URI(uri.toString().substring(0,
uri.toString().indexOf('#'))), is(task.getURI()));
+ } catch (URISyntaxException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void testEmptyFilterFragment() {
+ try {
+ URI uri = new URI(scheme, host, path, null);
+ Task task = fragmentFilter.filter(new SimpleTask(uri, 0));
+
+ assertThat(uri, is(task.getURI()));
+ } catch (URISyntaxException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+}
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/test/java/org/apache/droids/filter/FragmentsFilterTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/test/java/org/apache/droids/filter/FragmentsFilterTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange:
incubator/droids/branches/0.2.x-cleanup/droids-core/src/test/java/org/apache/droids/filter/FragmentsFilterTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain