added a debug test for outlook mail, upgraded docker image

This commit is contained in:
Ralph Soika 2025-03-16 18:15:12 +01:00
parent 47d90c8655
commit 0b20c10c0a
7 changed files with 250 additions and 149 deletions

View file

@ -1,4 +1,5 @@
FROM imixs/imixs-office-workflow:5.1.0 FROM imixs/imixs-office-workflow:5.1.1-SNAPSHOT-wildfly-27.0.1.Final-jdk17
#FROM imixs/imixs-office-workflow:5.1.0
# Setup debug configuration # Setup debug configuration
# COPY ./docker/configuration/standalone-debug.xml /opt/jboss/wildfly/standalone/configuration/ # COPY ./docker/configuration/standalone-debug.xml /opt/jboss/wildfly/standalone/configuration/

View file

@ -1,4 +1,5 @@
FROM imixs/imixs-office-workflow:5.1.0 FROM imixs/imixs-office-workflow:5.1.1-SNAPSHOT-wildfly-27.0.1.Final-jdk17
#FROM imixs/imixs-office-workflow:5.1.0
# Deploy artefact # Deploy artefact
RUN rm -r /opt/jboss/wildfly/standalone/deployments/* RUN rm -r /opt/jboss/wildfly/standalone/deployments/*

View file

@ -1,153 +1,159 @@
# Versionen # Versionen
### 1.3.1 (Development - Office-Workflow 5.0.4 ) ### 1.3.3 (Development)
- Mulit Currecy Feature für Ausgangsrechnungen - Imixs-Archive 3.1.1. Compactor Sevrvice
- Neue Analyse Boards
- Neue SOA
- Neues Mahnwesen
Migration:
set ARCHIVE_SNAPSHOT_GRACE_PERIOD= 5
set ARCHIVE_SNAPSHOT_COMPACTOR= enabled
### 1.3.2
- Posteingang Worklfow - timeout logic
- added lucene client to docker image
- added optional oidc profile
### 1.3.1
- Imixs-Office-Workflow 5.0.4
- Mulit Currecy Feature für Ausgangsrechnungen
- Neue Analyse Boards
- Neue SOA
- Neues Mahnwesen
### 1.3.0 ### 1.3.0
- Migration auf Imixs-Office-Workflow 5.0.2 - Migration auf Imixs-Office-Workflow 5.0.2
- Upgrade Imixs-Workflow 6.7 - Upgrade Imixs-Workflow 6.7
- Beim XML Invoice Import wird nun auch die Sprache für das Mahnwesen ermittelt (fehlte) - Beim XML Invoice Import wird nun auch die Sprache für das Mahnwesen ermittelt (fehlte)
- Währungsunabhängigkeit - Währungsunabhängigkeit
- Lucene Index: item 'cdtr.name' und 'document.company' wurde in den index aufgenommen wegen AI Examples Adapter - Lucene Index: item 'cdtr.name' und 'document.company' wurde in den index aufgenommen wegen AI Examples Adapter
- Fix Fälligkeit in maske - Fix Fälligkeit in maske
- Fix XML Schnittstelle Cargosoft Sammelgutschrift - Fix XML Schnittstelle Cargosoft Sammelgutschrift
- Zahlungseingang kann nun korrigiert werden. => modell update 'zahlungseingang-de-1.0.5' und 'rechnungsausgang-de-1.0.13' - Zahlungseingang kann nun korrigiert werden. => modell update 'zahlungseingang-de-1.0.5' und 'rechnungsausgang-de-1.0.13'
- fix Zahlungseingangs Formular - fix Zahlungseingangs Formular
**Migration** **Migration**
1. Parameter Pflegen 1. Parameter Pflegen
a) Währungen pflegen a) Währungen pflegen
- DE = EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD - DE = EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
- PL = PLN;EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD - PL = PLN;EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
- DWC = AED; EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD - DWC = AED; EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
b) Mandant ID b) Mandant ID
2. OP Listen Template im Textbaustein aktualisieren 2. OP Listen Template im Textbaustein aktualisieren
3. Alle Workflow Modelle erneuern
3. Alle Workflow Modelle erneuern
### 1.2.21 (Draft) ### 1.2.21 (Draft)
- Beim XML Invoice Import wird nun auch die Sprache für das Mahnwesen ermittelt (fehlte) - Beim XML Invoice Import wird nun auch die Sprache für das Mahnwesen ermittelt (fehlte)
- Währungsunabhängigkeit - Währungsunabhängigkeit
**Migration** **Migration**
1. Paramter Pflegen 1. Paramter Pflegen
a) Währungen pflegen a) Währungen pflegen
- DE = EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD - DE = EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
- PL = PLN;EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD - PL = PLN;EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
- DWC = AED; EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD - DWC = AED; EUR;CHF;SEK;RUB;NOK;GBP;USD;CAD
b) Mandant ID b) Mandant ID
2. OP Listen Template im Textbausteein aktualisieren 2. OP Listen Template im Textbausteein aktualisieren
3. Alle Workflow Modelle erneuern 3. Alle Workflow Modelle erneuern
### 1.2.20 (Development) ### 1.2.20 (Development)
- Optimierung OP-Liste nach KW - Optimierung OP-Liste nach KW
- Fix Fälligkeit in maske - Fix Fälligkeit in maske
- Fix XML Schnittstelle Cargosoft Sammelgutschrift - Fix XML Schnittstelle Cargosoft Sammelgutschrift
### 1.2.19 ### 1.2.19
- Neue XML Invoice Schnittstelle - Neue XML Invoice Schnittstelle
- Mahnwesen englisch - Mahnwesen englisch
### 1.2.18 ### 1.2.18
- Fix in Archiv Suche CustomSearchController.java - requestscoped - Fix in Archiv Suche CustomSearchController.java - requestscoped
### 1.2.17 ### 1.2.17
- neue Archive suche - neue Archive suche
- invoice.exchangerate Input ersetzt nun . durch , und locale='de' damit der Wert richtig gespeichert wird!! - invoice.exchangerate Input ersetzt nun . durch , und locale='de' damit der Wert richtig gespeichert wird!!
### 1.2.16 ### 1.2.16
- Upgrade Imixs-Archive auf 2.4.2 - verbesserter IMAP Import - Upgrade Imixs-Archive auf 2.4.2 - verbesserter IMAP Import
- Upgarde Imixs-Adapters 2.3.3-SNAPSHOT - Upgarde Imixs-Adapters 2.3.3-SNAPSHOT
- Umstellung auf neue Imixs-Archive Backup Technik - Umstellung auf neue Imixs-Archive Backup Technik
- Neuer manueller SEPA Lauf mit version: - Neuer manueller SEPA Lauf mit version:
- rechnungseingang-de-1.2.35, - rechnungseingang-de-1.2.35,
- rechnungseingang_sachrechnung-de-1.0.21, - rechnungseingang_sachrechnung-de-1.0.21,
- rechungseingang-sachrechnung-pl-1.0.1 - rechungseingang-sachrechnung-pl-1.0.1
- sepa-export-manual-3.0.0 - sepa-export-manual-3.0.0
- sepa-export-manual-pl-3.0.1 - sepa-export-manual-pl-3.0.1
**Achtung**: Kubernetes Deploymets müssen angepasst werden (siehe AGL Polen) **Achtung**: Kubernetes Deploymets müssen angepasst werden (siehe AGL Polen)
### 1.2.15 ### 1.2.15
- kleinere Layout Anpassungen in den Formualren und input Feldern (Positionstabelle, Sachbearbeiter Auswahl...)
- invoice.exchangerate Input ersetzt nun , durch . damit der Wert richtig gespeichert wird. - kleinere Layout Anpassungen in den Formualren und input Feldern (Positionstabelle, Sachbearbeiter Auswahl...)
- Fix Cargosoft DATEV Import - Korektur des Rechnungsdatums / Jahr - invoice.exchangerate Input ersetzt nun , durch . damit der Wert richtig gespeichert wird.
- Neuer Rest Service für Korrektur von Cargsoft Ausgangsrechnungen - Fix Cargosoft DATEV Import - Korektur des Rechnungsdatums / Jahr
- Neuer Rest Service für Korrektur von Cargsoft Ausgangsrechnungen
https://alexander-logistics.office-workflow.de/api/cargosoft/fix/100 https://alexander-logistics.office-workflow.de/api/cargosoft/fix/100
### 1.2.14 ### 1.2.14
- Internationalisierung - Internationalisierung
### 1.2.13 ### 1.2.13
- Payment Statistik - Payment Statistik
- Neue Indexfelder 'invoice.date' 'payment.date' - Neue Indexfelder 'invoice.date' 'payment.date'
**WICHTIG:** Es muss nach dem Update einmal der Index neu berechnet werden. **WICHTIG:** Es muss nach dem Update einmal der Index neu berechnet werden.
### 1.2.12 ### 1.2.12
- Neue Debitoren/Kreditoren Verwaltung - Zusätzliche E-Mail - Neue Debitoren/Kreditoren Verwaltung - Zusätzliche E-Mail
Realisiert über neue Custom Feld 'textlist' Realisiert über neue Custom Feld 'textlist'
- validierung e-mail erfolgt über Adapter und Workflow Rule - validierung e-mail erfolgt über Adapter und Workflow Rule
### 1.2.10 ### 1.2.10
Inkasso Workflow Inkasso Workflow
### 1.2.8 ### 1.2.8
Neue KI Version Neue KI Version
Rechnungasausgangsworkflow + Mahnwesen + OP Rechnungasausgangsworkflow + Mahnwesen + OP
Zalungsavis für SEPA Rechnungen freigeschaltet
Zalungsavis für SEPA Rechnungen freigeschaltet
### 1.2.7 ### 1.2.7
Erweiterte Kreditoren Verwaltung. Es können bis zu 4 IBAN/BIC Kombinationen pro Kreditor erfasst werden. Erweiterte Kreditoren Verwaltung. Es können bis zu 4 IBAN/BIC Kombinationen pro Kreditor erfasst werden.
Wenn vom Benutezr bei der Rechnungserfassugn eine Kombination eingegeben wird die noch nicht gespeichert war, Wenn vom Benutezr bei der Rechnungserfassugn eine Kombination eingegeben wird die noch nicht gespeichert war,
wird diese aufgenomen und die anderen rutschen nach unten. wird diese aufgenomen und die anderen rutschen nach unten.
### 1.2.6 ### 1.2.6
Übernahme von IBAN BIC aus kreditoren verwaltung Übernahme von IBAN BIC aus kreditoren verwaltung
### 1.1.1 ### 1.1.1
- Cargosoft Splitbuchungen - Es können zu einer Rechnung mehrere Cargosoft Exporte erzeugt werden. Die Sub Rechnungsnummern stehen im Feld numsequencenumber_sub - Cargosoft Splitbuchungen - Es können zu einer Rechnung mehrere Cargosoft Exporte erzeugt werden. Die Sub Rechnungsnummern stehen im Feld numsequencenumber_sub
- Neue Modellversion rechnungseingnag-de-1.2.0 und posteingang-de-1.0.4 - Neue Modellversion rechnungseingnag-de-1.2.0 und posteingang-de-1.0.4
- Das Modell rechnungseingnag-de-1.1.3 kann nach einigen Wochen entfernt werden - Das Modell rechnungseingnag-de-1.1.3 kann nach einigen Wochen entfernt werden

View file

@ -56,54 +56,54 @@ services:
############################################### ###############################################
# Tika OCR Service # Tika OCR Service
############################################### ###############################################
tika: # tika:
#image: apache/tika:latest # #image: apache/tika:latest
#image: apache/tika:1.24.1-full # #image: apache/tika:1.24.1-full
image: apache/tika:2.4.1-full # image: apache/tika:2.4.1-full
environment: # environment:
TZ: "Europe/Berlin" # TZ: "Europe/Berlin"
ports: # ports:
- "9998:9998" # - "9998:9998"
################## ##################
# Exporter Service # Exporter Service
################## ##################
imixsexporter-app: # imixsexporter-app:
image: imixs/imixs-archive-exporter # image: imixs/imixs-archive-exporter
environment: # environment:
# EXAMPLE SETUP # # EXAMPLE SETUP
WORKFLOW_SERVICE_ENDPOINT: "http://app:8080/api" # WORKFLOW_SERVICE_ENDPOINT: "http://app:8080/api"
WORKFLOW_SERVICE_USER: "admin" # WORKFLOW_SERVICE_USER: "admin"
WORKFLOW_SERVICE_PASSWORD: "adminadmin" # WORKFLOW_SERVICE_PASSWORD: "adminadmin"
WORKFLOW_SERVICE_AUTHMETHOD: "form" # WORKFLOW_SERVICE_AUTHMETHOD: "form"
METRICS_ENDPOINT: "http://localhost:9991/metrics" # METRICS_ENDPOINT: "http://localhost:9991/metrics"
HEALTH_ENDPOINT: "http://localhost:9991/health" # HEALTH_ENDPOINT: "http://localhost:9991/health"
EXPORT_PATH: "/agl/dwc-test" # EXPORT_PATH: "/agl/dwc-test"
EXPORT_FTP_HOST: "u248962.your-storagebox.de" # EXPORT_FTP_HOST: "u248962.your-storagebox.de"
EXPORT_FTP_PORT: "21" # EXPORT_FTP_PORT: "21"
EXPORT_FTP_USER: "u248962-sub4" # EXPORT_FTP_USER: "u248962-sub4"
EXPORT_FTP_PASSWORD: "en4g3f1Jw0WlQ9Yb" # EXPORT_FTP_PASSWORD: "en4g3f1Jw0WlQ9Yb"
ports: # ports:
- "8081:8080" # - "8081:8080"
- "8788:8787" # - "8788:8787"
############################################### ###############################################
# Imixs-Admin # Imixs-Admin
############################################### ###############################################
imixsadmin: # imixsadmin:
image: imixs/imixs-admin # image: imixs/imixs-admin
ports: # ports:
- "8888:8080" # - "8888:8080"
############################################### ###############################################
# Mailgateway # Mailgateway
############################################### ###############################################
mailgateway: # mailgateway:
image: imixs/exim4 # image: imixs/exim4
environment: # environment:
EXIM_SMARTHOST: "www149.your-server.de:25" # EXIM_SMARTHOST: "www149.your-server.de:25"
EXIM_PASSWORD: "www149.your-server.de:webmaster@imixs.com:$MAILPASSWORD" # EXIM_PASSWORD: "www149.your-server.de:webmaster@imixs.com:$MAILPASSWORD"
EXIM_ALLOWED_SENDERS: "10.0.0.0/8:172.18.0.0/12:192.168.0.0/16" # EXIM_ALLOWED_SENDERS: "10.0.0.0/8:172.18.0.0/12:192.168.0.0/16"
# prometheus: # prometheus:
# image: prom/prometheus:latest # image: prom/prometheus:latest

View file

@ -6,7 +6,7 @@
<parent> <parent>
<artifactId>office-alexander-logistics</artifactId> <artifactId>office-alexander-logistics</artifactId>
<groupId>com.alexander-logistics</groupId> <groupId>com.alexander-logistics</groupId>
<version>1.3.2</version> <version>1.3.3</version>
</parent> </parent>
<artifactId>office-alexander-logistics-app</artifactId> <artifactId>office-alexander-logistics-app</artifactId>
<packaging>war</packaging> <packaging>war</packaging>

View file

@ -8,17 +8,6 @@ import java.io.StringWriter;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeBodyPart;
import org.apache.http.client.ClientProtocolException; import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost;
@ -27,14 +16,25 @@ import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader; import org.apache.http.message.BasicHeader;
import org.eclipse.angus.mail.imap.IMAPFolder;
import org.imixs.archive.importer.mail.IMAPImportHelper; import org.imixs.archive.importer.mail.IMAPImportHelper;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.sun.mail.imap.IMAPFolder;
import jakarta.mail.Address;
import jakarta.mail.BodyPart;
import jakarta.mail.Folder;
import jakarta.mail.Message;
import jakarta.mail.MessagingException;
import jakarta.mail.Multipart;
import jakarta.mail.Part;
import jakarta.mail.Session;
import jakarta.mail.Store;
import jakarta.mail.internet.MimeBodyPart;
import jakarta.mail.internet.MimeUtility;
import junit.framework.Assert; import junit.framework.Assert;
/** /**
@ -92,6 +92,99 @@ public class TestIMAPOutlookOAuth {
} }
/**
* Debug reading first mail....
*/
@Test
@Ignore
public void TestMailboxImixsDebug() {
Store store = null;
String token = null;
try {
// try to connect...
token = getAuthToken();
Assert.assertNotNull(token);
store = connect(token, "imixs@alexander-logistics.com");
Assert.assertNotNull(store);
if (!store.isConnected()) {
// not connected!
} else {
// read inbox....
IMAPFolder inbox = (IMAPFolder) store.getFolder("INBOX");
inbox.open(Folder.READ_WRITE);
// fetches all messages from the INBOX...
Message[] messages = inbox.getMessages();
System.out.println("..." + messages.length + " new messages found");
for (Message message : messages) {
Address[] fromAddress = null;
String subject = null;
// if we can not open the mail (messaging Exception) than we simply skipp this
// mail see Issue #175
try {
System.out.println("...try to open first message...");
fromAddress = message.getFrom();
subject = message.getSubject();
} catch (MessagingException me) {
System.out.println("...Failed to read message from inbox: " + me.getMessage());
Assert.fail();
}
System.out.println("......received mail from: " + fromAddress[0].toString());
System.out.println("......subject = " + subject);
Object contentObject = message.getContent();
if (contentObject instanceof Multipart) {
System.out.println("......found multipart");
// here we are save to cast the content to Mulipart
Multipart multiPart = (Multipart) message.getContent();
System.out.println("......multipartcount = " + multiPart.getCount());
for (int i = 0; i < multiPart.getCount(); i++) {
BodyPart bodyPart = multiPart.getBodyPart(i);
if (bodyPart instanceof MimeBodyPart) {
MimeBodyPart mimeBodyPart = (MimeBodyPart) multiPart.getBodyPart(i);
if (Part.ATTACHMENT.equalsIgnoreCase(mimeBodyPart.getDisposition())) {
String fileName = mimeBodyPart.getFileName();
if (fileName == null) {
System.out.println("...skip detaching file, because of missing filename");
continue; // skip this attachment
}
// decode filename (issue #202)
fileName = MimeUtility.decodeText(fileName);
System.out.println("... filename = " + fileName);
// detach only add PDF files?
// add this attachment
InputStream input = mimeBodyPart.getInputStream();
byte[] content = IMAPImportHelper.readAllBytes(input);
String contentType = mimeBodyPart.getContentType();
System.out.println("mimetype=" + contentType);
System.out.println("content size=" + content.length);
}
}
}
}
break;
}
}
} catch (IOException e) {
e.printStackTrace();
Assert.fail();
} catch (MessagingException e) {
e.printStackTrace();
Assert.fail();
}
}
@Test @Test
public void TestMailboxImixsBHV() { public void TestMailboxImixsBHV() {
Store store = null; Store store = null;

View file

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.alexander-logistics</groupId> <groupId>com.alexander-logistics</groupId>
<artifactId>office-alexander-logistics</artifactId> <artifactId>office-alexander-logistics</artifactId>
<version>1.3.2</version> <version>1.3.3</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>Imixs Office Workflow - Custom Build</name> <name>Imixs Office Workflow - Custom Build</name>
@ -32,7 +32,7 @@
<!-- 3.0.2 --> <!-- 3.0.2 -->
<org.imixs.archive.version>3.1.1-SNAPSHOT</org.imixs.archive.version> <org.imixs.archive.version>3.1.1-SNAPSHOT</org.imixs.archive.version>
<org.imixs.adapters.version>3.0.3</org.imixs.adapters.version> <org.imixs.adapters.version>3.0.3</org.imixs.adapters.version>
<org.imixs.melman.version>2.0.2</org.imixs.melman.version> <org.imixs.melman.version>2.1.1-SNAPSHOT</org.imixs.melman.version>
<microprofile.version>6.0</microprofile.version> <microprofile.version>6.0</microprofile.version>
<net.sf.saxon.version>9.9.1-4</net.sf.saxon.version> <net.sf.saxon.version>9.9.1-4</net.sf.saxon.version>
<apache.pdfbox.version>2.0.26</apache.pdfbox.version> <apache.pdfbox.version>2.0.26</apache.pdfbox.version>