Eine Sparte anlegen

Im folgenden wird beschrieben, wie beim Anlegen einer neuen Sparte in IOS vorgegangen werden sollte.

Im IOS Mustercontent ist das hier beschriebene Vorgehen und die vorgeschlagene Strukturierung der Module umgesetzt.

Für die Integration der IOS-Standardkomponenten ist es notwendig ein sogenanntes Parent-POM aufzusetzen, in dem die projektspezifischen Einstellungen bzw. die Abhängigkeiten zu anderen Bibliotheken definiert werden.

Im folgenden Beispiel für die Sparte Unfall.

Module anlegen

Es wird empfohlen die Anwendungslogik und die Spartenlogik voneinander zu trennen und in zwei seperaten Modulen zu implementieren.

Generell empfehlen wir für neue Module folgenden semantischen Aufbau:

Submodul Beschreibung

business

Business-Logik der jew. Sparte bzw. des Moduls

verkaufsprodukte

Konfiguration der Verkaufsprodukte und Produktvarianten für die jew. Sparte

extsrvices

REST-Endpoint und Logik der externen Services der jew. Sparte

web

UI-Implementierungen für die jew. Sparte

Dabei sind die Module business, extservices und web Java-Projekte und das Modul verkaufsprodukte ist ein Faktor-IPS-Projekt.

Sparten Parent anlegen

In einer übergreifenden pom.xml werden die Untermodule hinzugefügt und die Abhängigkeiten im dependencyManagement vordefiniert.

Beispiel für Unfall

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>de.faktorzehn.commons</groupId>
        <artifactId>f10-suite-starter-spring</artifactId>
        <version>25.1.0</version>
    </parent>

    <artifactId>ios-expert-unfall</artifactId>
    <name>Faktor-IOS-Expert Unfall</name>
    <version>25.7.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
      <ios-core.version>25.1.0</ios-core.version>
      <ios-basis.version>25.1.0</ios4versicherungsmodell.version>

    	<!-- Weitere F10 Dependencies -->
      <versicherungsmodell.version>25.1.0</versicherungsmodell.version>

      <!-- F10 Dependencies Mustercontent -->
      <vm-shu-privat.version>25.7.0-SNAPSHOT</vm-shu-privat.version>
    </properties>

    <modules>
        <module>verkaufsprodukte</module>
        <module>business</module>
        <module>web</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>de.faktorzehn.versicherungsmodell</groupId>
                <artifactId>vm-bom</artifactId>
                <version>${versicherungsmodell.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>de.faktorzehn.muster.shu-privat</groupId>
                <artifactId>vm-muster-shu-privat-bom</artifactId>
                <version>${vm-shu-privat.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

Index

  1. Verkaufsprodukte
  2. Business
  3. Extservices
  4. Web