package org.example.demo.uebung3.aufgabe13;

import jakarta.ejb.ActivationConfigProperty;
import jakarta.ejb.EJB;
import jakarta.ejb.MessageDriven;
import jakarta.jms.JMSException;
import jakarta.jms.Message;
import jakarta.jms.MessageListener;
import jakarta.jms.TextMessage;

@MessageDriven(
activationConfig = {
    @ActivationConfigProperty(
    propertyName = "destinationType",
    propertyValue = "jakarta.jms.Queue"
    ),
    @ActivationConfigProperty(
    propertyName = "destination",
    propertyValue = "java:/jms/queue/MyQueue"
    ),
    @ActivationConfigProperty(
    propertyName = "acknowledgeMode",
    propertyValue = "Auto-acknowledge"
    )
}
)
public class ReceiveQueueMessageAndSendAsMail implements MessageListener {

    @EJB
    private MailsenderLocal mail;

    @Override
    public void onMessage(Message message) {
        try {
            if (message instanceof TextMessage) {
                String text = ((TextMessage) message).getText();
                System.out.printf("=== Empfangene Nachricht: %s ===", text);

                // Konfiguration für E-Mail
                String empfaenger = "linus.nagel@itc-studenten.de";
                String betreff = "JMS-Nachricht empfangen";
                mail.sendMail(empfaenger, betreff, text);

                System.out.printf("E-Mail an %s versendet: %s", empfaenger, text);
            } else {
                System.out.printf("Unerwarteter Nachrichtentyp: %s", message.getClass().getName());
            }
        } catch (JMSException e) {
            System.out.println("Fehler beim Verarbeiten der Nachricht " + e);
        }
    }
}
