Faktor-IPS Produktdaten in der Datenbank

Deployment der Produktdaten

Maven-Plugin

Wird ein Produktprojekt mit Maven gebaut, kann auch das Deployment in die Datenbank darüber erfolgen. Dazu muss das productdata-jpa-deployment-maven-plugin in der pom.xml eingebunden werden.

<pluginManagement> (1)
    <plugins>
        <plugin>
            <groupId>org.faktorips.runtimejpa</groupId>
            <artifactId>productdata-jpa-deployment-maven-plugin</artifactId>
            <version>${project.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>deploy</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <serviceURL>${product.deployment.service.url}</serviceURL>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>
1 Das Plugin-Management kann für alle Projekte im Parent POM eingestellt werden. Alternativ kann diese Konfiguration mit der folgenden direkt im Produkt-Projekt erfolgen.
<plugins>
    <plugin>
        <groupId>org.faktorips.runtimejpa</groupId>
        <artifactId>productdata-jpa-deployment-maven-plugin</artifactId>
        <configuration>
            <tocName>sample-products</tocName>
            <comment>Deployed by Maven</comment>
        </configuration>
    </plugin>
</plugins>

Die Parameter serviceURL, tocName und comment entsprechen dabei den Parametern, die dem Client-Builder übergeben werden. Sie können wie im Beispiel über Properties in der pom.xml definiert und/oder beim Aufruf mitgegeben werden. Auch die Parameter tocPath, modelVersion, version und user können explizit angegeben werden, werden aber üblicherweise aus dem gebauten Projekt ausgelesen:

  • tocPath wird aus der .ipsproject-Datei gelesen

  • version wird direkt aus der Maven-Property ${project.version} übernommen

  • modelVersion wird wie unter Modell-Versionen beschrieben aus den in der <toc-path>.model.properties-Datei verzeichneten Modell-ToCs gelesen. Dazu müssen die Modell-Projekte als Dependency im POM eingetragen sein.

  • user wird aus der Maven-Property ${user.name} übernommen

  • pd-deployuser und pd-deploypassword werden zur Authentifizierung gegen die REST-API genutzt

productdata-jpa-deployment:deploy

Mit dem Goal productdata-jpa-deployment:deploy werden alle im Table of Contents verzeichneten Produktdaten (Produktbausteine, Tabellen- und Aufzählungsinhalte) eingespielt. Es wird auch im Rahmen des regulären Maven-Goals deploy ausgeführt.

productdata-jpa-deployment:status

Das Goal productdata-jpa-deployment:status entspricht dem Client-Befehl updateStatus und benötigt den Namen eines Status-Übergangs als Parameter transition:

mvn productdata-jpa-deployment:status -Dtransition=ACTIVATE

productdata-jpa-deployment:delete

Das Goal productdata-jpa-deployment:delete entspricht dem Client-Befehl delete. Der optionale Statusfilter kann mit dem Parameter status angegeben werden:

mvn productdata-jpa-deployment:delete -Dstatus=HISTORIC

Aufruf ohne pom.xml

Die Maven-Goals status und delete können auch ohne pom.xml aufgerufen werden. Sie benötigen dann aber alle Parameter auf der Kommandozeile und müssen voll qualifiziert aufgerufen werden:

mvn org.faktorips.runtimejpa:productdata-jpa-deployment-maven-plugin:3.21.0:status -DserviceURL=http://localhost:8080/productdata-jpa-deployment -DtocName=sample-products -DmodelVersion=1.2.3 -Dversion=4.5 -Dtransition=DEACTIVATE

mvn org.faktorips.runtimejpa:productdata-jpa-deployment-maven-plugin:3.21.0:delete -DserviceURL=http://localhost:8080/productdata-jpa-deployment -DtocName=sample-products -DmodelVersion=1.2.3 -Dversion=4.5

pd-deployuser und pd-deploypassword können ebenfalls als properties gesetzt werden.