diff --git a/src/main/java/com/epita/guereza/App.java b/src/main/java/com/epita/guereza/App.java index df18d7f..aa44be5 100644 --- a/src/main/java/com/epita/guereza/App.java +++ b/src/main/java/com/epita/guereza/App.java @@ -3,6 +3,7 @@ import com.epita.eventbus.EventBusClient; import com.epita.eventbus.EventMessage; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,4 +49,13 @@ protected void retryIn(final int seconds, Runnable consumer) { executor.schedule(consumer, seconds, TimeUnit.SECONDS); executor.shutdownNow(); } + + protected Object mappingObject(EventBusClient.Message message) { + try { + Class c = ClassLoader.getSystemClassLoader().loadClass(message.getMessageType()); + return new ObjectMapper().readValue(message.getContent(), c); + } catch (Exception e) { + return null; + } + } } diff --git a/src/main/java/com/epita/guereza/CrawlerApp.java b/src/main/java/com/epita/guereza/CrawlerApp.java index 825c064..679fad8 100644 --- a/src/main/java/com/epita/guereza/CrawlerApp.java +++ b/src/main/java/com/epita/guereza/CrawlerApp.java @@ -41,17 +41,13 @@ private void storeUrls(final String[] urls) { public void run() { eventBus.subscribe(subscribeUrl, msg -> { if (msg != null) { - try { - Class c = ClassLoader.getSystemClassLoader().loadClass(msg.getMessageType()); - String url = (String)new ObjectMapper().readValue(msg.getContent(), c); + String url = (String)mappingObject(msg); + if (url != null) { LOGGER.info("Receive url: {}", url); final String[] urls = crawlAndExtract(url); storeUrls(urls); - } catch (Exception e) { - e.printStackTrace(); } - requestNextUrl(); } else { retryIn(30, this::requestNextUrl); diff --git a/src/main/java/com/epita/guereza/IndexerApp.java b/src/main/java/com/epita/guereza/IndexerApp.java index e26f38b..96f942a 100644 --- a/src/main/java/com/epita/guereza/IndexerApp.java +++ b/src/main/java/com/epita/guereza/IndexerApp.java @@ -50,8 +50,11 @@ private void requestNextUrl() { public void run() { eventBus.subscribe(subscribeUrl, msg -> { if (msg != null) { - LOGGER.info("Receive url: {}", msg.getContent()); - indexAndPublish(msg.getContent()); + String url = (String)mappingObject(msg); + if (url != null) { + LOGGER.info("Receive url: {}", url); + indexAndPublish(url); + } requestNextUrl(); } else {