浏览代码

initial import; shell script and pom only

Grega Bremec 3 年之前
当前提交
729cd551dd
共有 5 个文件被更改,包括 592 次插入0 次删除
  1. 5 0
      .gitignore
  2. 31 0
      COPYING
  3. 6 0
      curl-client.conf
  4. 457 0
      curl-client.sh
  5. 93 0
      pom.xml

+ 5 - 0
.gitignore

@@ -0,0 +1,5 @@
+.project
+.classpath
+.settings
+.*.swp
+target

+ 31 - 0
COPYING

@@ -0,0 +1,31 @@
+This software is being published under terms and conditions set forth
+by the BSD License.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of P0F.NET nor the names of contributors may
+      be used to endorse or promote products derived from this
+      software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+

+ 6 - 0
curl-client.conf

@@ -0,0 +1,6 @@
+# Simple config for the lab RHPAM server.
+API_ENDPOINT=http://localhost:8080/kie-server/services/rest/server
+API_USER=rhpamAdmin
+API_PASS=jboss#1!
+KIE_CONTAINER=pam-simple-process_1.0.0-SNAPSHOT
+PROCESS_MODEL=pam-simple-process.StartStopStart

+ 457 - 0
curl-client.sh

@@ -0,0 +1,457 @@
+#!/bin/bash
+#
+# A simple curl client to RHPAM.
+#
+# Requires:
+# - jq
+# - curl-client.conf to load the configuration from
+#
+# Variables in curl-client.conf:
+#
+#   API_ENDPOINT=   base URL to REST endpoints (http://.../services/rest/server)
+#   API_USER=	    some username with rest-server role
+#   API_PASS=	    the password for the above user
+#   KIE_CONTAINER=  the name of the KIE container to work with
+#   PROCESS_MODEL=  the ID of the process model to work with
+#
+#  All of the above can be overriden. Use with --help or -h to see the command line options and commands.
+#
+# NOTE: YOU MUST ALWAYS FIRST SPECIFY OPTIONS, THE COMMAND MUST BE LAST!
+#
+# Base variables:
+MYNAME="$(basename $0 .sh)"
+WORKDIR="$(cd $(dirname $0) && pwd)"
+CONFIG="${WORKDIR}/${MYNAME}.conf"
+
+# Version function.
+version() {
+    cat <<EOF
+${MYNAME}, version 1.0, copyright 2021, Grega Bremec <gregab@p0f.net>
+
+A simple curl client to RHPAM.
+
+Requires:
+- jq
+- curl-client.conf to load the configuration from
+EOF
+}
+
+# Usage function.
+usage() {
+    cat <<EOF
+Usage: ${MYNAME}.sh [-h][-v][-c <cf>][-e <ep>][-u <usr>][-P <pw>][-k <kc>][-p <pm>][-i <id>][-x <id>][-s <sig>][-d <data>] <command>
+
+Where:
+ -h         displays this message and exits successfully
+ -v         displays program version and exits successfully
+ -c <cf>    is the location (and name) of the configuration file
+ -e <ep>    is the API endpoint base URL (API_ENDPOINT cfg)
+ -u <usr>   is an API user with rest-server role (API_USER cfg)
+ -P <pw>    is the password for the above user (API_PASS cfg)
+ -k <kc>    is the name of the KieContainer to work with (KIE_CONTAINER cfg)
+ -p <pm>    is the process model ID to work with (PROCESS_MODEL cfg)
+ -i <id>    is the process instance ID to work with
+ -x <id>    is the process correlation ID (XID) to work with
+ -s <sig>   is the name of the signal to work with
+ -d <data>  is the request payload, if operation requires some data
+
+Note that ALL command line options override config file values.
+
+And <command> is one of (required parameters in parentheses):
+
+    listContainers     lists available KieContainer names
+    listModels         lists process model definitions for a KieContainer (-k)
+    listVariables      lists all variables defined in a process model (-k, -p)
+    listInstances      lists running process instances for a model (-p)
+    listCompleted      lists completed process instances for a model (-p)
+    listAborted        lists aborted process instances for a model (-p)
+    listXidMatches     lists process instances with a given correlation ID (-x)
+    getInstanceInfo    displays basic information about a process instance (-k, -i)
+    getInstanceSignals displays all signals available for a process instance (-k, -i)
+    getInstanceVars    displays all variables currently set in an process instance (-k, -i)
+    start              starts a process instance from a model (-k, -p, optionally -d)
+    sendSignal         sends a signal (with optional payload) to an instance (-k, -i, -s, optionally -d)
+    sendSignalByXid    sends a signal (with optional payload) to an instance matching XID (-k, -x, -s, optionally -d)
+    abort              aborts a specified process instance (-k, -i)
+
+EOF
+}
+
+# Parse command-line options:
+SHCNT=0
+while getopts ":hve:u:P:c:k:p:i:x:s:d:" OPTION; do
+    case ${OPTION} in
+	h)
+	    version
+	    echo
+	    usage
+	    exit 0
+	    ;;
+	v)
+	    version
+	    exit 0
+	    ;;
+	e)
+	    tEP="${OPTARG}"
+	    SHCNT=$((SHCNT + 2))
+	    ;;
+	u)
+	    tAU="${OPTARG}"
+	    SHCNT=$((SHCNT + 2))
+	    ;;
+	P)
+	    tAP="${OPTARG}"
+	    SHCNT=$((SHCNT + 2))
+	    ;;
+	c)
+	    CONFIG="${OPTARG}"
+	    SHCNT=$((SHCNT + 2))
+	    ;;
+	k)
+	    tKC="${OPTARG}"
+	    SHCNT=$((SHCNT + 2))
+	    ;;
+	p)
+	    tPM="${OPTARG}"
+	    SHCNT=$((SHCNT + 2))
+	    ;;
+	i)
+	    tII="${OPTARG}"
+	    SHCNT=$((SHCNT + 2))
+	    ;;
+	x)
+	    tXI="${OPTARG}"
+	    SHCNT=$((SHCNT + 2))
+	    ;;
+	s)
+	    tSG="${OPTARG}"
+	    SHCNT=$((SHCNT + 2))
+	    ;;
+	d)
+	    tDT="${OPTARG}"
+	    SHCNT=$((SHCNT + 2))
+	    ;;
+	:)
+	    echo "FATAL: Missing parameter to option -${OPTARG}" >&2
+	    echo >&2
+	    usage >&2
+	    exit 1
+	    ;;
+	\?)
+	    echo "FATAL: Unknown option: -${OPTARG}" >&2
+	    echo >&2
+	    usage >&2
+	    exit 1
+	    ;;
+    esac
+done
+
+# Remove parameters from the command line:
+shift ${SHCNT}
+if [ -z "$*" ]; then
+    echo "FATAL: Missing command." >&2
+    echo >&2
+    usage >&2
+fi
+
+# Try loading the config file:
+if [ ! -e "${CONFIG}" ]; then
+    echo "FATAL: Config file does not exist!" >&2
+    exit 1
+fi
+if [ ! -r "${CONFIG}" ]; then
+    echo "FATAL: Config file is not readable!" >&2
+    exit 1
+fi
+if [ ! -f "${CONFIG}" ]; then
+    echo "FATAL: Config file is not a regular file!" >&2
+    exit 1
+fi
+#echo -n "Loading configuration from ${CONFIG}... "
+. ${CONFIG}
+#echo "done."
+
+# Use the command-line overrides, if present:
+[ -n "${tEP}" ] && API_ENDPOINT="${tEP}" && unset tEP
+[ -n "${tAU}" ] && API_USER="${tAU}" && unset tAU
+[ -n "${tAP}" ] && API_PASS="${tAP}" && unset tAP
+[ -n "${tKC}" ] && KIE_CONTAINER="${tKC}" && unset tKC
+[ -n "${tPM}" ] && PROCESS_MODEL="${tPM}" && unset tPM
+[ -n "${tII}" ] && INSTANCE_ID="${tII}" && unset tII
+[ -n "${tXI}" ] && CORRELATION_ID="${tXI}" && unset tXI
+[ -n "${tSG}" ] && SIGNAL_NAME="${tSG}" && unset tSG
+[ -n "${tDT}" ] && REQUEST_DATA="${tDT}" && unset tDT
+
+# See to it that we recognise the command and all parameters are there:
+COMMAND="$*"
+case ${COMMAND} in
+    listContainers)
+	true
+	;;
+    listModels)
+	if [ -z "${KIE_CONTAINER}" ]; then
+	    echo "FATAL: ${COMMAND} requires -k option to be set." >&2
+	    echo >&2
+	    usage >&2
+	    exit 1
+	fi
+	;;
+    listInstances|listCompleted|listAborted)
+	if [ -z "${PROCESS_MODEL}" ]; then
+	    echo "FATAL: ${COMMAND} requires -p option to be set." >&2
+	    echo >&2
+	    usage >&2
+	    exit 1
+	fi
+	;;
+    listXidMatches)
+	if [ -z "${CORRELATION_ID}" ]; then
+	    echo "FATAL: ${COMMAND} requires -x option to be set." >&2
+	    echo >&2
+	    usage >&2
+	    exit 1
+	fi
+	;;
+    listVariables|start)
+	ERRORS=0
+	if [ -z "${KIE_CONTAINER}" ]; then
+	    echo "FATAL: ${COMMAND} requires -k option to be set." >&2
+	    ERRORS=1
+	fi
+	if [ -z "${PROCESS_MODEL}" ]; then
+	    echo "FATAL: ${COMMAND} requires -p option to be set." >&2
+	    ERRORS=1
+	fi
+	if [ ${ERRORS} -gt 0 ]; then
+	    echo >&2
+	    usage >&2
+	    exit 1
+	fi
+	;;
+    getInstanceInfo|getInstanceSignals|getInstanceVars|abort)
+	ERRORS=0
+	if [ -z "${KIE_CONTAINER}" ]; then
+	    echo "FATAL: ${COMMAND} requires -k option to be set." >&2
+	    ERRORS=1
+	fi
+	if [ -z "${INSTANCE_ID}" ]; then
+	    echo "FATAL: ${COMMAND} requires -i option to be set." >&2
+	    ERRORS=1
+	fi
+	if [ ${ERRORS} -gt 0 ]; then
+	    echo >&2
+	    usage >&2
+	    exit 1
+	fi
+	;;
+    sendSignal)
+	ERRORS=0
+	if [ -z "${KIE_CONTAINER}" ]; then
+	    echo "FATAL: ${COMMAND} requires -k option to be set." >&2
+	    ERRORS=1
+	fi
+	if [ -z "${INSTANCE_ID}" ]; then
+	    echo "FATAL: ${COMMAND} requires -i option to be set." >&2
+	    ERRORS=1
+	fi
+	if [ -z "${SIGNAL_NAME}" ]; then
+	    echo "FATAL: ${COMMAND} requires -s option to be set." >&2
+	    ERRORS=1
+	fi
+	if [ ${ERRORS} -gt 0 ]; then
+	    echo >&2
+	    usage >&2
+	    exit 1
+	fi
+	;;
+    sendSignalByXid)
+	ERRORS=0
+	if [ -z "${KIE_CONTAINER}" ]; then
+	    echo "FATAL: ${COMMAND} requires -k option to be set." >&2
+	    ERRORS=1
+	fi
+	if [ -z "${CORRELATION_ID}" ]; then
+	    echo "FATAL: ${COMMAND} requires -x option to be set." >&2
+	    ERRORS=1
+	fi
+	if [ -z "${SIGNAL_NAME}" ]; then
+	    echo "FATAL: ${COMMAND} requires -s option to be set." >&2
+	    ERRORS=1
+	fi
+	if [ ${ERRORS} -gt 0 ]; then
+	    echo >&2
+	    usage >&2
+	    exit 1
+	fi
+	;;
+    *)
+	echo "FATAL: Unrecognised command: \"$*\"" >&2
+	echo >&2
+	usage >&2
+	exit 1
+	;;
+esac
+
+# Show what would have happened:
+echo
+echo "Executing the following operation: ${COMMAND}"
+echo
+echo "    API_ENDPOINT   = ${API_ENDPOINT}"
+echo "    API_USER       = ${API_USER}"
+echo "    API_PASS       = ${API_PASS//?/*}"
+
+CURL_CMD="curl -s -u'${API_USER}:${API_PASS}' -H 'Accept: application/json' -H 'Content-Type: application/json'"
+
+# Do the job
+case ${COMMAND} in
+    listContainers)
+	echo
+	echo "Available containers:"
+	echo
+	eval ${CURL_CMD} -XGET ${API_ENDPOINT}/containers | \
+	    jq -r '.result."kie-containers"."kie-container"[]."container-id"' | \
+	    sed 's/^/ - /'
+	echo
+	;;
+    listModels)
+	echo "    KIE_CONTAINER  = ${KIE_CONTAINER}"
+	echo
+	echo "Available process model definitions:"
+	echo
+	eval ${CURL_CMD} -XGET ${API_ENDPOINT}/containers/${KIE_CONTAINER}/processes | \
+	    jq -r '.processes[]."process-id"' | \
+	    sed 's/^/ - /'
+	echo
+	;;
+    listVariables)
+	echo "    KIE_CONTAINER  = ${KIE_CONTAINER}"
+	echo "    PROCESS_MODEL  = ${PROCESS_MODEL}"
+	echo
+	echo "Available variables in process model definition of ${PROCESS_MODEL}:"
+	echo
+	eval ${CURL_CMD} -XGET ${API_ENDPOINT}/containers/${KIE_CONTAINER}/processes/definitions/${PROCESS_MODEL}/variables | \
+	    jq -r '.variables' | \
+	    grep -v '^[\{\}]' | \
+	    sed 's/^[[:space:]]*//; s/^/ - /; s/"//g'
+	echo
+	;;
+    listInstances|listCompleted|listAborted)
+	case ${COMMAND} in
+	    listInstances)
+		STATE=1
+		WORD=active
+		;;
+	    listCompleted)
+		STATE=2
+		WORD=completed
+		;;
+	    listAborted)
+		STATE=3
+		WORD=aborted
+		;;
+	esac
+	echo "    PROCESS_MODEL  = ${PROCESS_MODEL}"
+	echo
+	echo "Available ${WORD} process instances of ${PROCESS_MODEL}:"
+	echo
+	eval ${CURL_CMD} -XGET ${API_ENDPOINT}/queries/processes/${PROCESS_MODEL}/instances?status=${STATE} | \
+	    jq -r '."process-instance"[]."process-instance-id"' | \
+	    sed 's/^/ - /'
+	echo
+	;;
+    listXidMatches)
+	echo "    CORRELATION_ID = ${CORRELATION_ID}"
+	echo
+	echo "Available process instances with XID of ${CORRELATION_ID}:"
+	echo
+	eval ${CURL_CMD} -XGET ${API_ENDPOINT}/queries/processes/instance/correlation/${CORRELATION_ID} | \
+	    jq -r '"ID \(."process-instance-id"), model \(."process-id"), version \(."process-version"), state \(."process-instance-state"), XID \(."correlation-key")"' | \
+	    sed 's/^/ - /'
+	echo
+	;;
+    getInstanceInfo)
+	echo "    KIE_CONTAINER  = ${KIE_CONTAINER}"
+	echo "    INSTANCE_ID    = ${INSTANCE_ID}"
+	echo
+	echo -n "Process instance ID ${INSTANCE_ID} details: "
+	eval ${CURL_CMD} -XGET ${API_ENDPOINT}/containers/${KIE_CONTAINER}/processes/instances/${INSTANCE_ID} | \
+	    jq -r '"model \(."process-id"), version \(."process-version"), state \(."process-instance-state"), XID \(."correlation-key")"'
+	echo
+	;;
+    getInstanceSignals)
+	echo "    KIE_CONTAINER  = ${KIE_CONTAINER}"
+	echo "    INSTANCE_ID    = ${INSTANCE_ID}"
+	echo
+	echo "Process instance ID ${INSTANCE_ID} signals:"
+	echo
+	eval ${CURL_CMD} -XGET ${API_ENDPOINT}/containers/${KIE_CONTAINER}/processes/instances/${INSTANCE_ID}/signals | \
+	    jq -r '.[]' | \
+	    sed 's/^/ - /'
+	echo
+	;;
+    getInstanceVars)
+	echo "    KIE_CONTAINER  = ${KIE_CONTAINER}"
+	echo "    INSTANCE_ID    = ${INSTANCE_ID}"
+	echo
+	echo "Process instance ID ${INSTANCE_ID} variables:"
+	echo
+	eval ${CURL_CMD} -XGET ${API_ENDPOINT}/containers/${KIE_CONTAINER}/processes/instances/${INSTANCE_ID}/variables | \
+	    jq -r '.' | \
+	    grep -v '^[\{\}]' | \
+	    sed 's/^[[:space:]]*//; s/^/ - /; s/"//g'
+	echo
+	;;
+    start)
+	echo "    KIE_CONTAINER  = ${KIE_CONTAINER}"
+	echo "    PROCESS_MODEL  = ${PROCESS_MODEL}"
+	echo "    REQUEST_DATA   = \"${REQUEST_DATA}\""
+	echo
+	echo -n "Starting a new instance of process model ${PROCESS_MODEL}... "
+	if [ -n "${REQUEST_DATA}" ]; then
+	    CURL_CMD="${CURL_CMD} -d '${REQUEST_DATA}'"
+	fi
+	NEW_ID=$(eval ${CURL_CMD} -XPOST ${API_ENDPOINT}/containers/${KIE_CONTAINER}/processes/${PROCESS_MODEL}/instances)
+	echo "done."
+	echo "New instance ID is ${NEW_ID}."
+	echo
+	;;
+    sendSignal)
+	echo "    KIE_CONTAINER  = ${KIE_CONTAINER}"
+	echo "    INSTANCE_ID    = ${INSTANCE_ID}"
+	echo "    SIGNAL_NAME    = ${SIGNAL_NAME}"
+	echo "    REQUEST_DATA   = \"${REQUEST_DATA}\""
+	echo
+	echo -n "Sending signal ${SIGNAL_NAME} to process instance ID ${INSTANCE_ID}... "
+	if [ -n "${REQUEST_DATA}" ]; then
+	    CURL_CMD="${CURL_CMD} -d '${REQUEST_DATA}'"
+	fi
+	eval ${CURL_CMD} -w \''HTTP response %{http_code}... '\' -XPOST ${API_ENDPOINT}/containers/${KIE_CONTAINER}/processes/instances/${INSTANCE_ID}/signal/${SIGNAL_NAME}
+	echo "done."
+	echo
+	;;
+    sendSignalByXid)
+	echo "    KIE_CONTAINER  = ${KIE_CONTAINER}"
+	echo "    CORRELATION_ID = ${CORRELATION_ID}"
+	echo "    SIGNAL_NAME    = ${SIGNAL_NAME}"
+	echo "    REQUEST_DATA   = \"${REQUEST_DATA}\""
+	echo
+	echo -n "Sending signal ${SIGNAL_NAME} to process instance with XID of ${CORRELATION_ID}... "
+	if [ -n "${REQUEST_DATA}" ]; then
+	    CURL_CMD="${CURL_CMD} -d '${REQUEST_DATA}'"
+	fi
+	eval ${CURL_CMD} -w \''HTTP response %{http_code}... '\' -XPOST ${API_ENDPOINT}/containers/${KIE_CONTAINER}/processes/instances/correlation/${CORRELATION_ID}/signal/${SIGNAL_NAME}
+	echo "done."
+	echo
+	;;
+    abort)
+	echo "    KIE_CONTAINER  = ${KIE_CONTAINER}"
+	echo "    INSTANCE_ID    = ${INSTANCE_ID}"
+	echo
+	echo -n "Aborting instance ID ${INSTANCE_ID}... "
+	eval ${CURL_CMD} -w \''HTTP response %{http_code}... '\' -XDELETE ${API_ENDPOINT}/containers/${KIE_CONTAINER}/processes/instances/${INSTANCE_ID}
+	echo "done."
+	echo
+	;;
+esac
+
+# End of curl-client.sh

+ 93 - 0
pom.xml

@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<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/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<groupId>net.p0f.samples.rhpam-fuse-integration</groupId>
+	<artifactId>consume-rhpam-rest-api</artifactId>
+	<version>1.0.0</version>
+	<packaging>war</packaging>
+
+	<properties>
+		<maven.compiler.source>1.8</maven.compiler.source>
+		<maven.compiler.target>1.8</maven.compiler.target>
+		<version.maven.compiler.plugin>3.8.0</version.maven.compiler.plugin>
+		<version.maven.war.plugin>3.0.0</version.maven.war.plugin>
+		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>org.jboss.bom</groupId>
+				<artifactId>jboss-eap-javaee7-with-tools</artifactId>
+				<version>7.1.6.GA</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.jboss.redhat-fuse</groupId>
+				<artifactId>fuse-eap-bom</artifactId>
+				<version>7.9.0.fuse-sb2-790065-redhat-00001</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+	<dependencies>
+		<dependency>
+			<groupId>javax.enterprise</groupId>
+			<artifactId>cdi-api</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.spec.javax.ejb</groupId>
+			<artifactId>jboss-ejb-api_3.2_spec</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.spec.javax.ws.rs</groupId>
+			<artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-core</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-cdi</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-cxf</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jbpm</artifactId>
+			<version>3.7.0.fuse-800004-redhat-00001</version>
+		</dependency>
+		<dependency>
+			<groupId>net.p0f.samples.rhpam-fuse-integration</groupId>
+			<artifactId>shared-data-model</artifactId>
+			<version>1.0.0</version>
+		</dependency>
+	</dependencies>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-war-plugin</artifactId>
+				<version>${version.maven.war.plugin}</version>
+				<configuration>
+					<failOnMissingWebXml>false</failOnMissingWebXml>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>