diff --git a/Dockerfile b/Dockerfile
index fa65408..8b0100f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -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
# COPY ./docker/configuration/standalone-debug.xml /opt/jboss/wildfly/standalone/configuration/
diff --git a/Dockerfile-wildfly-debug b/Dockerfile-wildfly-debug
index 434b6ba..2e9c369 100644
--- a/Dockerfile-wildfly-debug
+++ b/Dockerfile-wildfly-debug
@@ -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
RUN rm -r /opt/jboss/wildfly/standalone/deployments/*
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index b37b2c8..8c9dc88 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -1,153 +1,159 @@
# Versionen
-### 1.3.1 (Development - Office-Workflow 5.0.4 )
+### 1.3.3 (Development)
- - Mulit Currecy Feature für Ausgangsrechnungen
- - Neue Analyse Boards
- - Neue SOA
- - Neues Mahnwesen
+- Imixs-Archive 3.1.1. Compactor Sevrvice
+Migration:
+set ARCHIVE_SNAPSHOT_GRACE_PERIOD= 5
+set ARCHIVE_SNAPSHOT_COMPACTOR= enabled
-### 1.3.0
+### 1.3.2
- - Migration auf Imixs-Office-Workflow 5.0.2
- - Upgrade Imixs-Workflow 6.7
- - Beim XML Invoice Import wird nun auch die Sprache für das Mahnwesen ermittelt (fehlte)
- - Währungsunabhängigkeit
- - Lucene Index: item 'cdtr.name' und 'document.company' wurde in den index aufgenommen wegen AI Examples Adapter
- - Fix Fälligkeit in maske
- - Fix XML Schnittstelle Cargosoft Sammelgutschrift
- - Zahlungseingang kann nun korrigiert werden. => modell update 'zahlungseingang-de-1.0.5' und 'rechnungsausgang-de-1.0.13'
- - fix Zahlungseingangs Formular
+- 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
+
+- Migration auf Imixs-Office-Workflow 5.0.2
+- Upgrade Imixs-Workflow 6.7
+- Beim XML Invoice Import wird nun auch die Sprache für das Mahnwesen ermittelt (fehlte)
+- Währungsunabhängigkeit
+- Lucene Index: item 'cdtr.name' und 'document.company' wurde in den index aufgenommen wegen AI Examples Adapter
+- Fix Fälligkeit in maske
+- Fix XML Schnittstelle Cargosoft Sammelgutschrift
+- Zahlungseingang kann nun korrigiert werden. => modell update 'zahlungseingang-de-1.0.5' und 'rechnungsausgang-de-1.0.13'
+- fix Zahlungseingangs Formular
**Migration**
- 1. Parameter Pflegen
- a) Währungen pflegen
- - DE = 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
- b) Mandant ID
+1. Parameter Pflegen
+ a) Währungen pflegen
- 2. OP Listen Template im Textbaustein aktualisieren
+ - DE = 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
+ b) Mandant ID
- 3. Alle Workflow Modelle erneuern
+2. OP Listen Template im Textbaustein aktualisieren
+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)
- - Währungsunabhängigkeit
-
+- Beim XML Invoice Import wird nun auch die Sprache für das Mahnwesen ermittelt (fehlte)
+- Währungsunabhängigkeit
**Migration**
- 1. Paramter Pflegen
- a) Währungen pflegen
- - DE = 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
- b) Mandant ID
+1. Paramter Pflegen
+ a) Währungen pflegen
- 2. OP Listen Template im Textbausteein aktualisieren
+ - DE = 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
+ b) Mandant ID
- 3. Alle Workflow Modelle erneuern
+2. OP Listen Template im Textbausteein aktualisieren
+
+3. Alle Workflow Modelle erneuern
### 1.2.20 (Development)
- - Optimierung OP-Liste nach KW
- - Fix Fälligkeit in maske
- - Fix XML Schnittstelle Cargosoft Sammelgutschrift
+- Optimierung OP-Liste nach KW
+- Fix Fälligkeit in maske
+- Fix XML Schnittstelle Cargosoft Sammelgutschrift
-### 1.2.19
+### 1.2.19
- - Neue XML Invoice Schnittstelle
- - Mahnwesen englisch
+- Neue XML Invoice Schnittstelle
+- 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
+- invoice.exchangerate Input ersetzt nun . durch , und locale='de' damit der Wert richtig gespeichert wird!!
- - neue Archive suche
- - 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
- - Upgarde Imixs-Adapters 2.3.3-SNAPSHOT
- - Umstellung auf neue Imixs-Archive Backup Technik
-
- - Neuer manueller SEPA Lauf mit version:
- - rechnungseingang-de-1.2.35,
- - rechnungseingang_sachrechnung-de-1.0.21,
- - rechungseingang-sachrechnung-pl-1.0.1
- - sepa-export-manual-3.0.0
- - sepa-export-manual-pl-3.0.1
+- Upgrade Imixs-Archive auf 2.4.2 - verbesserter IMAP Import
+- Upgarde Imixs-Adapters 2.3.3-SNAPSHOT
+- Umstellung auf neue Imixs-Archive Backup Technik
+- Neuer manueller SEPA Lauf mit version:
+ - rechnungseingang-de-1.2.35,
+ - rechnungseingang_sachrechnung-de-1.0.21,
+ - rechungseingang-sachrechnung-pl-1.0.1
+ - sepa-export-manual-3.0.0
+ - sepa-export-manual-pl-3.0.1
**Achtung**: Kubernetes Deploymets müssen angepasst werden (siehe AGL Polen)
-### 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.
- - Fix Cargosoft DATEV Import - Korektur des Rechnungsdatums / Jahr
- - Neuer Rest Service für Korrektur von Cargsoft Ausgangsrechnungen
+### 1.2.15
- https://alexander-logistics.office-workflow.de/api/cargosoft/fix/100
+- kleinere Layout Anpassungen in den Formualren und input Feldern (Positionstabelle, Sachbearbeiter Auswahl...)
+- invoice.exchangerate Input ersetzt nun , durch . damit der Wert richtig gespeichert wird.
+- Fix Cargosoft DATEV Import - Korektur des Rechnungsdatums / Jahr
+- Neuer Rest Service für Korrektur von Cargsoft Ausgangsrechnungen
-### 1.2.14
+ https://alexander-logistics.office-workflow.de/api/cargosoft/fix/100
- - Internationalisierung
+### 1.2.14
-
-### 1.2.13
+- Internationalisierung
- - Payment Statistik
- - Neue Indexfelder 'invoice.date' 'payment.date'
+### 1.2.13
+
+- Payment Statistik
+- Neue Indexfelder 'invoice.date' 'payment.date'
**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
- Realisiert über neue Custom Feld 'textlist'
- - validierung e-mail erfolgt über Adapter und Workflow Rule
+- Neue Debitoren/Kreditoren Verwaltung - Zusätzliche E-Mail
+ Realisiert über neue Custom Feld 'textlist'
+ - validierung e-mail erfolgt über Adapter und Workflow Rule
+### 1.2.10
-
-### 1.2.10
-
- Inkasso Workflow
-
+Inkasso Workflow
### 1.2.8
- Neue KI Version
-
- Rechnungasausgangsworkflow + Mahnwesen + OP
-
- Zalungsavis für SEPA Rechnungen freigeschaltet
-
+Neue KI Version
+
+Rechnungasausgangsworkflow + Mahnwesen + OP
+
+Zalungsavis für SEPA Rechnungen freigeschaltet
### 1.2.7
- 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,
- wird diese aufgenomen und die anderen rutschen nach unten.
+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,
+wird diese aufgenomen und die anderen rutschen nach unten.
### 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
- - 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
\ No newline at end of file
+- 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
+- Das Modell rechnungseingnag-de-1.1.3 kann nach einigen Wochen entfernt werden
diff --git a/docker-compose.yml b/docker-compose.yml
index 5c1c8b4..77e21cc 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -56,54 +56,54 @@ services:
###############################################
# Tika OCR Service
###############################################
- tika:
- #image: apache/tika:latest
- #image: apache/tika:1.24.1-full
- image: apache/tika:2.4.1-full
- environment:
- TZ: "Europe/Berlin"
- ports:
- - "9998:9998"
+ # tika:
+ # #image: apache/tika:latest
+ # #image: apache/tika:1.24.1-full
+ # image: apache/tika:2.4.1-full
+ # environment:
+ # TZ: "Europe/Berlin"
+ # ports:
+ # - "9998:9998"
##################
# Exporter Service
##################
- imixsexporter-app:
- image: imixs/imixs-archive-exporter
- environment:
- # EXAMPLE SETUP
- WORKFLOW_SERVICE_ENDPOINT: "http://app:8080/api"
- WORKFLOW_SERVICE_USER: "admin"
- WORKFLOW_SERVICE_PASSWORD: "adminadmin"
- WORKFLOW_SERVICE_AUTHMETHOD: "form"
- METRICS_ENDPOINT: "http://localhost:9991/metrics"
- HEALTH_ENDPOINT: "http://localhost:9991/health"
- EXPORT_PATH: "/agl/dwc-test"
- EXPORT_FTP_HOST: "u248962.your-storagebox.de"
- EXPORT_FTP_PORT: "21"
- EXPORT_FTP_USER: "u248962-sub4"
- EXPORT_FTP_PASSWORD: "en4g3f1Jw0WlQ9Yb"
- ports:
- - "8081:8080"
- - "8788:8787"
+ # imixsexporter-app:
+ # image: imixs/imixs-archive-exporter
+ # environment:
+ # # EXAMPLE SETUP
+ # WORKFLOW_SERVICE_ENDPOINT: "http://app:8080/api"
+ # WORKFLOW_SERVICE_USER: "admin"
+ # WORKFLOW_SERVICE_PASSWORD: "adminadmin"
+ # WORKFLOW_SERVICE_AUTHMETHOD: "form"
+ # METRICS_ENDPOINT: "http://localhost:9991/metrics"
+ # HEALTH_ENDPOINT: "http://localhost:9991/health"
+ # EXPORT_PATH: "/agl/dwc-test"
+ # EXPORT_FTP_HOST: "u248962.your-storagebox.de"
+ # EXPORT_FTP_PORT: "21"
+ # EXPORT_FTP_USER: "u248962-sub4"
+ # EXPORT_FTP_PASSWORD: "en4g3f1Jw0WlQ9Yb"
+ # ports:
+ # - "8081:8080"
+ # - "8788:8787"
###############################################
# Imixs-Admin
###############################################
- imixsadmin:
- image: imixs/imixs-admin
- ports:
- - "8888:8080"
+ # imixsadmin:
+ # image: imixs/imixs-admin
+ # ports:
+ # - "8888:8080"
###############################################
# Mailgateway
###############################################
- mailgateway:
- image: imixs/exim4
- environment:
- EXIM_SMARTHOST: "www149.your-server.de:25"
- 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"
+ # mailgateway:
+ # image: imixs/exim4
+ # environment:
+ # EXIM_SMARTHOST: "www149.your-server.de:25"
+ # 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"
# prometheus:
# image: prom/prometheus:latest
diff --git a/office-alexander-logistics-app/pom.xml b/office-alexander-logistics-app/pom.xml
index e50f971..43cd36a 100644
--- a/office-alexander-logistics-app/pom.xml
+++ b/office-alexander-logistics-app/pom.xml
@@ -6,7 +6,7 @@
office-alexander-logistics
com.alexander-logistics
- 1.3.2
+ 1.3.3
office-alexander-logistics-app
war
diff --git a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPOutlookOAuth.java b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPOutlookOAuth.java
index daef2fb..fc7859e 100644
--- a/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPOutlookOAuth.java
+++ b/office-alexander-logistics-app/src/test/java/com/alexanderlogistics/TestIMAPOutlookOAuth.java
@@ -8,17 +8,6 @@ import java.io.StringWriter;
import java.util.Map;
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.methods.CloseableHttpResponse;
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.HttpClients;
import org.apache.http.message.BasicHeader;
+import org.eclipse.angus.mail.imap.IMAPFolder;
import org.imixs.archive.importer.mail.IMAPImportHelper;
import org.junit.Ignore;
import org.junit.Test;
import com.fasterxml.jackson.databind.JavaType;
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;
/**
@@ -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
public void TestMailboxImixsBHV() {
Store store = null;
diff --git a/pom.xml b/pom.xml
index 1de42dc..ca7f21f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
4.0.0
com.alexander-logistics
office-alexander-logistics
- 1.3.2
+ 1.3.3
pom
Imixs Office Workflow - Custom Build
@@ -32,7 +32,7 @@
3.1.1-SNAPSHOT
3.0.3
- 2.0.2
+ 2.1.1-SNAPSHOT
6.0
9.9.1-4
2.0.26