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


Reply via email to