#!/bin/bash
#
# Kompiliert den Mail2FaxBlock für STARFACE Module Designer
#

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"

echo "========================================"
echo " Mail2FaxBlock Kompilierung"
echo "========================================"
echo ""

# JavaMail Bibliothek herunterladen falls nicht vorhanden
DEPS_DIR="libs/deps"
mkdir -p "$DEPS_DIR"

if [ ! -f "$DEPS_DIR/javax.mail.jar" ]; then
    echo "Lade JavaMail Bibliothek herunter..."
    curl -sL -o "$DEPS_DIR/javax.mail.jar" \
        "https://repo1.maven.org/maven2/com/sun/mail/javax.mail/1.6.2/javax.mail-1.6.2.jar"
    echo "  javax.mail.jar heruntergeladen"
fi

if [ ! -f "$DEPS_DIR/activation.jar" ]; then
    echo "Lade Activation Framework herunter..."
    curl -sL -o "$DEPS_DIR/activation.jar" \
        "https://repo1.maven.org/maven2/javax/activation/activation/1.1.1/activation-1.1.1.jar"
    echo "  activation.jar heruntergeladen"
fi

echo ""

# Classpath zusammenbauen - STARFACE JARs
CLASSPATH=""
for jar in libs/starface/*.jar; do
    if [ -f "$jar" ]; then
        CLASSPATH="$CLASSPATH:$jar"
    fi
done

# Zusätzliche Dependencies hinzufügen
for jar in libs/deps/*.jar; do
    if [ -f "$jar" ]; then
        CLASSPATH="$CLASSPATH:$jar"
    fi
done

CLASSPATH="${CLASSPATH:1}"

if [ -z "$CLASSPATH" ]; then
    echo "FEHLER: Keine STARFACE JARs gefunden in libs/starface/"
    echo "Führe zuerst aus: ../fetch-starface-libs.sh <starface-ip>"
    exit 1
fi

echo "Kompiliere Mail2FaxBlock.java..."
javac -source 21 -target 21 \
    -cp "$CLASSPATH" \
    -proc:none \
    Mail2FaxBlock.java

echo "Kompiliere Mail2FaxCleanup.java..."
javac -source 21 -target 21 \
    -cp "$CLASSPATH" \
    -proc:none \
    Mail2FaxCleanup.java

if [ -f "Mail2FaxBlock.class" ] && [ -f "Mail2FaxCleanup.class" ]; then
    echo ""
    echo "========================================"
    echo " Erfolgreich!"
    echo "========================================"
    echo ""
    echo "Dateien:"
    ls -lh Mail2FaxBlock.class Mail2FaxCleanup.class
    echo ""
    echo "WICHTIG: Die JavaMail-Bibliothek muss auch auf der STARFACE sein!"
    echo "Falls Fehler auftreten, kopiere javax.mail.jar nach STARFACE:"
    echo "  scp libs/deps/javax.mail.jar root@<starface>:/opt/tomcat/webapps/localhost/starface/WEB-INF/lib/"
    echo ""
    echo "Nächste Schritte:"
    echo "1. STARFACE Admin öffnen"
    echo "2. Module → Module Designer → Neues Modul"
    echo "3. Unter 'Ressourcen' BEIDE .class Dateien hochladen:"
    echo "   - Mail2FaxBlock.class"
    echo "   - Mail2FaxCleanup.class"
    echo "4. Zwei Funktionsbausteine erstellen:"
    echo "   - Mail2FaxBlock (Hauptfunktion für Timer)"
    echo "   - Mail2FaxCleanup (für 'activate' Entrypoint)"
    echo "5. Timer-Baustein für Mail2FaxBlock hinzufügen"
    echo "6. Entrypoint 'activate' mit Mail2FaxCleanup verknüpfen"
    echo ""
else
    echo "FEHLER: Kompilierung fehlgeschlagen"
    exit 1
fi
