diff --git a/kontor-scripts/read_list.py b/kontor-scripts/read_list.py index 42078f9..1407fd7 100644 --- a/kontor-scripts/read_list.py +++ b/kontor-scripts/read_list.py @@ -4,7 +4,6 @@ read file with URLs and store in DB from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter import logging import json -import stomp from proton import Message, Event from proton.handlers import MessagingHandler from proton.reactor import Container @@ -41,16 +40,19 @@ class AddLinkMessage(MessagingHandler): def on_connection_error(self, event: Event) -> None: self.log.info(f"error: {event}") + def on_disconnected(self, event: Event) -> None: + self.log.debug(f"disconnected: {repr(event)}") + + def on_sendable(self, event: Event): self.log.info("send message") message = Message(body=self.url, address=self.address, content_type="application/json", durable=True) delivery = event.sender.send(message) self.log.info(f"Delivery {delivery} sent") - event.sender.close() - event.connection.close() def on_accepted(self, event: Event) -> None: - self.log.info(f"accepted Delivery: {event.delivery}") + self.log.info(f"accepted Delivery: {event.delivery.remote_state}") + event.connection.close() def on_rejected(self, event: Event) -> None: diff --git a/kontor-spring/src/main/java/de/thpeetz/kontor/integration/routes/AddLinkFromQueue.java b/kontor-spring/src/main/java/de/thpeetz/kontor/integration/routes/AddLinkFromQueue.java new file mode 100644 index 0000000..7a9b5a7 --- /dev/null +++ b/kontor-spring/src/main/java/de/thpeetz/kontor/integration/routes/AddLinkFromQueue.java @@ -0,0 +1,15 @@ +package de.thpeetz.kontor.integration.routes; + +import org.apache.camel.builder.RouteBuilder; +import org.springframework.stereotype.Component; + +@Component +public class AddLinkFromQueue extends RouteBuilder { + @Override + public void configure() throws Exception { + from("jms:queue:add_link_file") + .routeId("read-queue-add-link_file") + .log("${body}") + .to("bean:addLinkService?method=fromQueue"); + } +} diff --git a/kontor-spring/src/main/java/de/thpeetz/kontor/integration/ReadQueueRoute.java b/kontor-spring/src/main/java/de/thpeetz/kontor/integration/routes/ReadQueueRoute.java similarity index 62% rename from kontor-spring/src/main/java/de/thpeetz/kontor/integration/ReadQueueRoute.java rename to kontor-spring/src/main/java/de/thpeetz/kontor/integration/routes/ReadQueueRoute.java index 9e06cff..115fef1 100644 --- a/kontor-spring/src/main/java/de/thpeetz/kontor/integration/ReadQueueRoute.java +++ b/kontor-spring/src/main/java/de/thpeetz/kontor/integration/routes/ReadQueueRoute.java @@ -1,4 +1,4 @@ -package de.thpeetz.kontor.integration; +package de.thpeetz.kontor.integration.routes; import org.apache.camel.builder.RouteBuilder; import org.springframework.stereotype.Component; @@ -9,6 +9,8 @@ public class ReadQueueRoute extends RouteBuilder { @Override public void configure() throws Exception { from("jms:queue:KontorMediaFile") - .log("${body}"); + .routeId("add-link-from-queue") + .trace(true) + .log(">>> ${body}"); } } diff --git a/kontor-spring/src/main/java/de/thpeetz/kontor/integration/services/AddLinkService.java b/kontor-spring/src/main/java/de/thpeetz/kontor/integration/services/AddLinkService.java new file mode 100644 index 0000000..93698e3 --- /dev/null +++ b/kontor-spring/src/main/java/de/thpeetz/kontor/integration/services/AddLinkService.java @@ -0,0 +1,22 @@ +package de.thpeetz.kontor.integration.services; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.HashMap; + +@Service +@Slf4j +public class AddLinkService { + + public void fromQueue(String messageBody) throws JsonProcessingException { + log.info("get body: {}", messageBody); + ObjectMapper objectMapper = new ObjectMapper(); + HashMap myMap = objectMapper.readValue(messageBody, new TypeReference>() {}); + String url = myMap.get("url"); + log.info("found url: {}", url); + } +}