diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml
index 96af798..c17c397 100644
--- a/.github/workflows/broken-links.yml
+++ b/.github/workflows/broken-links.yml
@@ -18,7 +18,7 @@ jobs:
- name: Link Checker
id: lychee
- uses: lycheeverse/lychee-action@v1
+ uses: lycheeverse/lychee-action@v2
- name: Find already existing issue
id: find-issue
diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml
index 7824917..b38f0d8 100644
--- a/.github/workflows/sonar.yml
+++ b/.github/workflows/sonar.yml
@@ -11,7 +11,7 @@ on:
- '.idea/**'
- 'assets/**'
pull_request:
- types: [opened, synchronize, reopened]
+ branches: [ develop ]
paths-ignore:
- '**.md'
- '.config/**'
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
index e56bc18..4d624fa 100644
--- a/.mvn/wrapper/maven-wrapper.properties
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -14,4 +14,4 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.8/apache-maven-3.9.8-bin.zip
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b56b5e6..d5a93bb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 1.0.3
+
+* ReportableSellerCreator can now create "Rechtsträger" like a company.
+
# 1.0.2
* The alias for the private key in the keystore is now configurable (
diff --git a/README.md b/README.md
index 5805c73..7ea65eb 100644
--- a/README.md
+++ b/README.md
@@ -8,37 +8,24 @@
# bzst-dip-java-client
-Client for using
-the [Mass data transmission DIP (mass data
-interface)](https://www.bzst.de/EN/Businesses/CESOP/electronic_data_transmission/electronic_data_transmission_node.html#js-toc-entry1).
+Client for using the [Mass data transmission DIP (mass data interface)](https://www.bzst.de/EN/Businesses/CESOP/electronic_data_transmission/electronic_data_transmission_node.html#js-toc-entry1).
-The BZSt (Bundeszentralamt für Steuern / Federal Central Tax Office) provides the Digital Inbox (DIP) as a service
-for payment service providers to transmit financial data.
+The BZSt (Bundeszentralamt für Steuern / Federal Central Tax Office) provides the Digital Inbox (DIP) as a service for payment service providers to transmit financial data.
-Clients need to register / login
-at [BZSt online.portal](https://www.bzst.de/DE/Service/Portalinformation/Massendaten/DIP/dip.html?nn=68828)
-through [Elster](https://www.elster.de/elsterweb/start), [BundID](https://id.bund.de/de)
-or [BZSt Online-Portal (BOP)](https://www.elster.de/bportal/start).
+Clients need to register / login at [BZSt online.portal](https://www.bzst.de/DE/Service/Portalinformation/Massendaten/DIP/dip.html?nn=68828) through [Elster](https://www.elster.de/elsterweb/start), [BundID](https://id.bund.de/de) or [BZSt Online-Portal (BOP)](https://www.elster.de/bportal/start).
-See
-the [BZSt Information](https://www.bzst.de/EN/Service/Portalinformation/Login/login_node.html)
-for more information.
+See the [BZSt Information](https://www.bzst.de/EN/Service/Portalinformation/Login/login_node.html) for more information.
-*Warning*: **BZSt Online-Portal** (deprecated) is different from **BZSt online.portal**.
+> [!NOTE]
+> **BZSt Online-Portal** (deprecated) is different from **BZSt online.portal**.
## Rationale
We created this client to make it as easy as possible for the developer to use the BZSt DIP.
-Through usage of the builder pattern (see [Configuration](#configuration) below), DTOs
-and a typesafe data model we ensure high usability and readability.
+Through usage of the builder pattern (see [Configuration](#configuration) below), DTOs and a typesafe data model we ensure high usability and readability.
-The BZSt
-provides [XSD](https://www.bzst.de/SharedDocs/Downloads/DE/Digitale_Plattformbetreiber/amtlicher_datensatz_entwurf) that
-define the expected XML structure and
-make it possible to generate java
-classes ([BZSt Docs](https://www.bzst.de/DE/Unternehmen/Intern_Informationsaustausch/DAC7/Handbuecher/handbuecher.html?nn=127558#js-toc-entry2)).
-Our library validates each
-request through these XSD find errors before they are sent to the DIP.
+The BZSt provides [XSD](https://www.bzst.de/SharedDocs/Downloads/DE/Digitale_Plattformbetreiber/amtlicher_datensatz_entwurf) that define the expected XML structure and make it possible to generate java classes ([BZSt Docs](https://www.bzst.de/DE/Unternehmen/Intern_Informationsaustausch/DAC7/Handbuecher/handbuecher.html?nn=127558#js-toc-entry2)).
+Our library validates each request through these XSD find errors before they are sent to the DIP.
## Installation
[Installation guide for the latest release](https://github.com/xdev-software/bzst-dip-java-client/releases/latest#Installation)
@@ -51,9 +38,7 @@ See the [examples in the demo package](./bzst-dip-java-client-demo/src/main/java
For authentification at the BZST you have to create a public- and private-key.
-First you have to create a **PEM** file as described on
-the [BZST Website](https://www.bzst.de/SharedDocs/Downloads/DE/EOP_BOP/khb_dip.pdf?__blob=publicationFile&v=9) (see
-1.7).
+First you have to create a **PEM** file as described on the [BZST Website](https://www.bzst.de/DE/Service/Portalinformation/Massendaten/DIP/dip_node.html) (see 1.7).
OpenSSL can be downloaded from their [website](https://www.openssl.org/).
@@ -67,15 +52,13 @@ Next you have to convert that file to a **PKCS12** file.
openssl pkcs12 -export -in cert.pem -inkey key.pem -out certificate.p12 -name "certificate"
```
-The [keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html) is contained in your JDK
-installation.
+The [keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html) is contained in your JDK installation.
```
keytool -importkeystore -srckeystore certificate.p12 -srcstoretype pkcs12 -destkeystore cert.jks
```
-The password you insert here, along with the file itself must be set in the client configuration. See example
-at [app.properties](./bzst-dip-java-client-demo/src/main/resources/app.properties):
+The password you insert here, along with the file itself must be set in the client configuration. See example at [app.properties](./bzst-dip-java-client-demo/src/main/resources/app.properties):
```
certificate.keystore.password=SECRET_PASSWORD
@@ -101,11 +84,7 @@ client.id=abcd1234-ab12-ab12-ab12-abcdef123456
### Configuration
-The client can be configured through a properties file (
-see [app.properties](./bzst-dip-java-client-demo/src/main/resources/app.properties)
-and [ApplicationWithConfigurationFromProperties.java](./bzst-dip-java-client-demo/src/main/java/software/xdev/ApplicationWithConfigurationFromProperties.java))
-or by creating a configuration object (
-see [Application.java](./bzst-dip-java-client-demo/src/main/java/software/xdev/Application.java)).
+The client can be configured through a properties file (see [app.properties](./bzst-dip-java-client-demo/src/main/resources/app.properties) and [ApplicationWithConfigurationFromProperties.java](./bzst-dip-java-client-demo/src/main/java/software/xdev/ApplicationWithConfigurationFromProperties.java)) or by creating a configuration object (see [Application.java](./bzst-dip-java-client-demo/src/main/java/software/xdev/Application.java)).
```java
public static BzstDipConfiguration createConfiguration()
@@ -130,8 +109,7 @@ public static BzstDipConfiguration createConfiguration()
## Support
-If you need support as soon as possible, and you can't wait for any pull request, feel free to
-use [our support](https://xdev.software/en/services/support).
+If you need support as soon as possible, and you can't wait for any pull request, feel free to use [our support](https://xdev.software/en/services/support).
## Contributing
See the [contributing guide](./CONTRIBUTING.md) for detailed instructions on how to get started with our project.
diff --git a/bzst-dip-java-client-demo/pom.xml b/bzst-dip-java-client-demo/pom.xml
index 073d671..89ef458 100644
--- a/bzst-dip-java-client-demo/pom.xml
+++ b/bzst-dip-java-client-demo/pom.xml
@@ -26,7 +26,7 @@
UTF-8
UTF-8
- software.xdev.bzst.dip.client.Application
+ software.xdev.Application
@@ -38,7 +38,7 @@
org.apache.logging.log4j
log4j-slf4j2-impl
- 2.23.1
+ 2.24.1
diff --git a/bzst-dip-java-client/pom.xml b/bzst-dip-java-client/pom.xml
index 496544b..1493fa2 100644
--- a/bzst-dip-java-client/pom.xml
+++ b/bzst-dip-java-client/pom.xml
@@ -115,7 +115,7 @@
org.slf4j
slf4j-api
- 2.0.13
+ 2.0.16
com.opencsv
@@ -138,7 +138,7 @@
org.apache.logging.log4j
log4j-slf4j2-impl
- 2.23.1
+ 2.24.1
test
@@ -177,7 +177,7 @@
org.apache.maven.plugins
maven-project-info-reports-plugin
- 3.6.2
+ 3.8.0
@@ -185,7 +185,7 @@
com.mycila
license-maven-plugin
- 4.5
+ 4.6
${project.organization.url}
@@ -225,7 +225,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.8.0
+ 3.10.1
attach-javadocs
@@ -281,7 +281,7 @@
org.apache.maven.plugins
maven-gpg-plugin
- 3.2.4
+ 3.2.7
sign-artifacts
@@ -324,12 +324,12 @@
org.apache.maven.plugins
maven-checkstyle-plugin
- 3.4.0
+ 3.5.0
com.puppycrawl.tools
checkstyle
- 10.17.0
+ 10.18.2
@@ -355,7 +355,7 @@
org.apache.maven.plugins
maven-pmd-plugin
- 3.24.0
+ 3.25.0
true
true
@@ -367,12 +367,12 @@
net.sourceforge.pmd
pmd-core
- 7.3.0
+ 7.6.0
net.sourceforge.pmd
pmd-java
- 7.3.0
+ 7.6.0
@@ -384,7 +384,7 @@
org.apache.maven.plugins
maven-jxr-plugin
- 3.4.0
+ 3.5.0
diff --git a/bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/model/message/BzstDipCorrectableReportableSellerType.java b/bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/model/message/BzstDipCorrectableReportableSellerType.java
index 9f2151e..ccc6f27 100644
--- a/bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/model/message/BzstDipCorrectableReportableSellerType.java
+++ b/bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/model/message/BzstDipCorrectableReportableSellerType.java
@@ -49,9 +49,11 @@ public CorrectableReportableSellerType toXmlType(final BzstDipConfiguration conf
this.tin.toXmlType(),
this.handelsregisternummer,
this.vat,
- this.firstName,
+ this.firstName == null ? ReportableSellerCreator.NULL_STRING : this.firstName,
this.lastName,
- this.birthDate.format(DateTimeFormatter.ISO_LOCAL_DATE),
+ this.birthDate == null
+ ? ReportableSellerCreator.NULL_STRING
+ : this.birthDate.format(DateTimeFormatter.ISO_LOCAL_DATE),
this.legalAddress.toXmlType(),
this.addressFix.toXmlType(),
this.numberOfActivities.toXmlType(),
diff --git a/bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/xmldocument/ReportableSellerCreator.java b/bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/xmldocument/ReportableSellerCreator.java
index 9c2e1f8..2c89103 100644
--- a/bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/xmldocument/ReportableSellerCreator.java
+++ b/bzst-dip-java-client/src/main/java/software/xdev/bzst/dip/client/xmldocument/ReportableSellerCreator.java
@@ -50,6 +50,7 @@
public class ReportableSellerCreator
{
private static final Logger LOGGER = LoggerFactory.getLogger(ReportableSellerCreator.class);
+ public static final String NULL_STRING = "NULL";
private final BzstDipConfiguration configuration;
public ReportableSellerCreator(final BzstDipConfiguration configuration)
@@ -337,7 +338,7 @@ private static OrganisationPartyType createOrganisationPartyType(
*/
public static boolean isNULLAsString(final String checkNULLString)
{
- return checkNULLString.equals("NULL");
+ return checkNULLString.equals(NULL_STRING);
}
private static OrganisationINType createIN(final String in)
diff --git a/pom.xml b/pom.xml
index 7670b3a..50d5a11 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,12 +40,12 @@
org.apache.maven.plugins
maven-checkstyle-plugin
- 3.4.0
+ 3.5.0
com.puppycrawl.tools
checkstyle
- 10.17.0
+ 10.18.2
@@ -70,7 +70,7 @@
org.apache.maven.plugins
maven-pmd-plugin
- 3.24.0
+ 3.25.0
true
true
@@ -82,12 +82,12 @@
net.sourceforge.pmd
pmd-core
- 7.3.0
+ 7.6.0
net.sourceforge.pmd
pmd-java
- 7.3.0
+ 7.6.0
@@ -99,7 +99,7 @@
org.apache.maven.plugins
maven-jxr-plugin
- 3.4.0
+ 3.5.0