Pārlūkot izejas kodu

fix #1093 apply duplicate host replacement

Shinsuke Sugaya 8 gadi atpakaļ
vecāks
revīzija
fb3cb33fee

+ 10 - 0
src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java

@@ -43,6 +43,7 @@ import org.codelibs.fess.exception.ContainerNotAvailableException;
 import org.codelibs.fess.exception.ContentNotFoundException;
 import org.codelibs.fess.helper.CrawlingConfigHelper;
 import org.codelibs.fess.helper.CrawlingInfoHelper;
+import org.codelibs.fess.helper.DuplicateHostHelper;
 import org.codelibs.fess.helper.IndexingHelper;
 import org.codelibs.fess.helper.SambaHelper;
 import org.codelibs.fess.mylasta.direction.FessConfig;
@@ -263,4 +264,13 @@ public class FessCrawlerThread extends CrawlerThread {
                     url));
         }
     }
+
+    @Override
+    protected void storeChildUrl(final String childUrl, final String parentUrl, final String metaData, final int depth) {
+        if (StringUtil.isNotBlank(childUrl)) {
+            final DuplicateHostHelper duplicateHostHelper = ComponentUtil.getDuplicateHostHelper();
+            final String url = duplicateHostHelper.convert(childUrl);
+            super.storeChildUrl(url, parentUrl, metaData, depth);
+        }
+    }
 }

+ 8 - 0
src/test/java/org/codelibs/fess/helper/DuplicateHostHelperTest.java

@@ -37,6 +37,10 @@ public class DuplicateHostHelperTest extends UnitFessTestCase {
         bar.setRegularName("www.bar.com");
         bar.setDuplicateHostName("mail.bar.com");
         duplicateHostHelper.duplicateHostList.add(bar);
+        DuplicateHost hoge = new DuplicateHost();
+        hoge.setRegularName("www.foo.com");
+        hoge.setDuplicateHostName("www.foo.com:99");
+        duplicateHostHelper.duplicateHostList.add(hoge);
     }
 
     public void test_convert() {
@@ -59,6 +63,10 @@ public class DuplicateHostHelperTest extends UnitFessTestCase {
         result = "http://www.bar.com/";
         assertEquals(result, duplicateHostHelper.convert(url));
 
+        url = "http://www.foo.com:99/";
+        result = "http://www.foo.com/";
+        assertEquals(result, duplicateHostHelper.convert(url));
+
     }
 
     public void test_convert_skip() {