Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • The directory sos has to be created



  • The following .jar files have to be copied from a JS7 Agent installation's ./lib/sos directory to the sos directory of the Maven project. The example makes use of release 2.6.1, users should check for a current release.
    • com.sos-berlin.js7.engine.js7-base-<version>.jar
    • com.sos-berlin.js7.engine.js7-data-for-java-<version>.jar
    • com.sos-berlin.js7.engine.js7-launcher-for-java-<version>.jar
      • Note: Since release 2.6.4, the three jar files mentioned above have been combined into one jar file
      • com.sos-berlin.js7.engine.js7-engine-2.6.4
    • sos-commons-exception-<version>.jar
    • sos-commons-util-<version>.jar
    • sos-js7-job-<version>.jar
  • The following pom.xml file can be used as a base in the Maven project for release < 2.6.4.
Code Block
languagexml
titlepom.xml
collapsetrue
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.sos-berlin</groupId>
	<artifactId>js7jobs</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<properties>
		<!-- release version of js7 jars -->
		<sos.js7.version>2.

...

5.

...

5</sos.js7.version>
		<!-- 3rd party versions -->
		<scala.library.version>2.13.11</scala.library.version>
		<slf4j.version>1.7.36</slf4j.version>
		<io.vavr.version>0.10.4</io.vavr.version>

		<!-- groupId and artifactIds of js7 jars -->
		<sos.js7.groupId>com.sos-berlin</sos.js7.groupId>
		<sos.js7.job.artifactId>sos-js7-job</sos.js7.job.artifactId>
		<sos.js7.commons.util.artifactId>sos-commons-util</sos.js7.commons.util.artifactId>
		<sos.js7.commons.exception.artifactId>sos-commons-exception</sos.js7.commons.exception.artifactId>
		<sos.js7.commons.httpclient.artifactId>sos-commons-httpclient</sos.js7.commons.httpclient.artifactId>

		<sos.js7.engine.groupId>com.sos-berlin.js7.engine</sos.js7.engine.groupId>
		<sos.js7.launcher.artifactId>js7-launcher-for-java</sos.js7.launcher.artifactId>
		<sos.js7.data-for-java.artifactId>js7-data-for-java</sos.js7.data-for-java.artifactId>
		<sos.js7.base.artifactId>js7-base</sos.js7.base.artifactId>

		<!-- directories with js7 jars to install the local project repository -->
		<sos.js7.external.srcdir>${project.basedir}/sos</sos.js7.external.srcdir>
	</properties>

	<repositories>

		<!-- public repository for 3rd party jars -->
		<repository>
			<id>central</id>
			<name>Central Repository</name>
			<url>https://repo1.maven.org/maven2</url>
			<snapshots>
				<enabled>false</enabled>
				<updatePolicy>never</updatePolicy>
			</snapshots>
		</repository>
	</repositories>

	<dependencies>
		<dependency>
			<groupId>${sos.js7.engine.groupId}</groupId>
			<artifactId>${sos.js7.launcher.artifactId}</artifactId>
			<version>${sos.js7.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>${sos.js7.engine.groupId}</groupId>
			<artifactId>${sos.js7.data-for-java.artifactId}</artifactId>
			<version>${sos.js7.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>${sos.js7.engine.groupId}</groupId>
			<artifactId>${sos.js7.base.artifactId}</artifactId>
			<version>${sos.js7.version}</version>
			<scope>provided</scope>
		</dependency>

...

         <dependency>
            <groupId>${sos.js7.groupId}</groupId>

...

            <artifactId>${sos.js7.job.artifactId}</artifactId>

...

            <version>${sos.js7.version}</version>

...

            <scope>provided</scope>

...

        </dependency>
		<dependency>
			<groupId>${sos.js7.groupId}</groupId>
			<artifactId>${sos.js7.commons.util.artifactId}</artifactId>
			<version>${sos.js7.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>${sos.js7.groupId}</groupId>
			<artifactId>${sos.js7.commons.exception.artifactId}</artifactId>
			<version>${sos.js7.version}</version>
			<scope>provided</scope>
		</dependency>
		
		<!-- Example for a custom dependency -->
		<dependency>
			<groupId>${sos.js7.groupId}</groupId>
			<artifactId>${sos.js7.commons.httpclient.artifactId}</artifactId>
			<version>${sos.js7.version}</version>
			<scope>provided</scope>
		</dependency>

		<!-- 3rd Party -->
		<dependency>
			<groupId>org.scala-lang</groupId>
			<artifactId>scala-library</artifactId>
			<version>${scala.library.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>io.vavr</groupId>
			<artifactId>vavr</artifactId>
			<version>${io.vavr.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j.version}</version>
			<scope>provided</scope>
		</dependency>

	</dependencies>

	<profiles>
		<profile>
			<id>create-local-repo</id>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-install-plugin</artifactId>
						<version>3.1.0</version>
						<executions>
							<execution>
								<id>install-${sos.js7.launcher.artifactId}</id>
								<goals>
									<goal>install-file</goal>
								</goals>
								<phase>initialize</phase>
								<configuration>
									<file>${sos.js7.external.srcdir}/${sos.js7.engine.groupId}.${sos.js7.launcher.artifactId}-${sos.js7.version}.jar</file>
									<groupId>${sos.js7.engine.groupId}</groupId>
									<artifactId>${sos.js7.launcher.artifactId}</artifactId>
									<version>${sos.js7.version}</version>
									<packaging>jar</packaging>
									

...

<generatePom>true</

...

generatePom> 
								</configuration>
							</execution>
							<execution>
								<id>install-${sos.js7.data-for-java.artifactId}</id>
								<goals>
									<goal>install-file</goal>
								</goals>
								<phase>initialize</phase>
								<configuration>
									<file>${sos.js7.external.srcdir}/${sos.js7.engine.groupId}.${sos.js7.data-for-java.artifactId}-${sos.js7.version}.jar</file>
									<groupId>${sos.js7.engine.groupId}</groupId>
									<artifactId>${sos.js7.data-for-java.artifactId}</artifactId>
									<version>${sos.js7.version}</version>
									<packaging>jar</packaging>
									

...

<generatePom>true</

...

generatePom> 
								</configuration>
							</execution>
							<execution>
								<id>install-${sos.js7.base.artifactId}</id>
								<goals>
									<goal>install-file</goal>
								</goals>
								<phase>initialize</phase>
								<configuration>
									<file>${sos.js7.external.srcdir}/${sos.js7.engine.groupId}.${sos.js7.base.artifactId}-${sos.js7.version}.jar</file>
									<groupId>${sos.js7.engine.groupId}</groupId>
									<artifactId>${sos.js7.base.artifactId}</artifactId>
									<version>${sos.js7.version}</version>
									<packaging>jar</packaging>
									

...

<generatePom>true</

...

generatePom> 
								</configuration>
							</execution>

							<execution>
								<id>install-${sos.js7.job.artifactId}</id>
								<goals>
									<goal>install-file</goal>
								</goals>
								<phase>initialize</phase>
								<configuration>
									<file>${sos.js7.external.srcdir}/${sos.js7.job.artifactId}-${sos.js7.version}.jar</file>
									<groupId>${sos.js7.groupId}</groupId>
									<artifactId>${sos.js7.job.artifactId}</artifactId>
									<version>${sos.js7.version}</version>
									<packaging>jar</packaging>
									

...

<generatePom>true</

...

generatePom> 
								</configuration>
							</execution>
							<execution>
								<id>install-${sos.js7.commons.util.artifactId}</id>
								<goals>
									<goal>install-file</goal>
								</goals>
								<phase>initialize</phase>
								<configuration>
									<file>${sos.js7.external.srcdir}/${sos.js7.commons.util.artifactId}-${sos.js7.version}.jar</file>
									<groupId>${sos.js7.groupId}</groupId>
									<artifactId>${sos.js7.commons.util.artifactId}</artifactId>
									<version>${sos.js7.version}</version>
									<packaging>jar</packaging>
									

...

<generatePom>true</

...

generatePom> 
								</configuration>
							</execution>

							<execution>
								<id>install-${sos.js7.commons.httpclient.artifactId}</id>
								<goals>
									<goal>install-file</goal>
								</goals>
								<phase>initialize</phase>
								<configuration>
									<file>${sos.js7.external.srcdir}/${sos.js7.commons.httpclient.artifactId}-${sos.js7.version}.jar</file>
									<groupId>${sos.js7.groupId}</groupId>
									<artifactId>${sos.js7.commons.httpclient.artifactId}</artifactId>
									<version>${sos.js7.version}</version>
									<packaging>jar</packaging>								
									

...

<generatePom>true</

...

generatePom> 
								</configuration>
							</execution>
							<execution>
								<id>install-${sos.js7.commons.exception.artifactId}</id>
								<goals>
									<goal>install-file</goal>
								</goals>
								<phase>initialize</phase>
								<configuration>
									<file>${sos.js7.external.srcdir}/${sos.js7.commons.exception.artifactId}-${sos.js7.version}.jar</file>
									<groupId>${sos.js7.groupId}</groupId>
									<artifactId>${sos.js7.commons.exception.artifactId}</artifactId>
									<version>${sos.js7.version}</version>
									<packaging>jar</packaging>
									<localRepositoryPath>${sos.js7.local.repodir}</localRepositoryPath>
									

...

<generatePom>true</

...

generatePom> 
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.10.1</version>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
						<optimize>true</optimize>
						<showDeprecation>true</showDeprecation>
						<showWarnings>true</showWarnings>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

...

  • The following pom.xml file contains a profile create-local-repo that must be executed once after copying the jar files. It updates the users local .m2 repository with the jars from the sos folder. The dependencies to the .jar files are in scope provided as these jars are needed at compile time, but are already present in the agent environmentcan be used as a base in the Maven project for release since 2.6.4.
Code Block
language

...

> mvn initialize -Pcreate-local-repo -U
xml
titlepom.xml
collapsetrue
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>ur</groupId>
    <artifactId>js7</artifactId>
    <version>0.0.1-SNAPSHOT</version>
 
    <properties>
        <!-- release version of js7 jars -->
        <sos.js7.version>2.6.4</sos.js7.version>
        <!-- 3rd party versions -->
        <scala.library.version>2.13.11</scala.library.version>
        <slf4j.version>1.7.36</slf4j.version>
        <io.vavr.version>0.10.4</io.vavr.version>
 
        <!-- groupId and artifactIds of js7 jars -->
        <sos.js7.groupId>com.sos-berlin</sos.js7.groupId>
        <sos.js7.job.artifactId>sos-js7-job</sos.js7.job.artifactId>
        <sos.js7.commons.util.artifactId>sos-commons-util</sos.js7.commons.util.artifactId>
        <sos.js7.commons.exception.artifactId>sos-commons-exception</sos.js7.commons.exception.artifactId>
        <sos.js7.commons.httpclient.artifactId>sos-commons-httpclient</sos.js7.commons.httpclient.artifactId>
 
        <sos.js7.engine.groupId>com.sos-berlin.js7.engine</sos.js7.engine.groupId>
        <sos.js7.js7-engine.artifactId>js7-engine</sos.js7.js7-engine.artifactId>
 
        <!-- directories with js7 jars to install the local project repository -->
        <sos.js7.external.srcdir>${project.basedir}/sos</sos.js7.external.srcdir>
    </properties>
 
    <repositories>
 
        <!-- public repository for 3rd party jars -->
        <repository>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
                <updatePolicy>never</updatePolicy>
            </snapshots>
        </repository>
    </repositories>
 
    <dependencies>
        <dependency>
            <groupId>${sos.js7.engine.groupId}</groupId>
            <artifactId>${sos.js7.js7-engine.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
        
 
         <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.job.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.commons.util.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.commons.exception.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
         
        <!-- Example for a custom dependency -->
        <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.commons.httpclient.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
 
        <!-- 3rd Party -->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.library.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>io.vavr</groupId>
            <artifactId>vavr</artifactId>
            <version>${io.vavr.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <scope>provided</scope>
        </dependency>
 
    </dependencies>
 
    <profiles>
        <profile>
            <id>create-local-repo</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-install-plugin</artifactId>
                        <version>3.1.0</version>
                        <executions>
                            <execution>
                                <id>install-${sos.js7.js7-engine.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.engine.groupId}.${sos.js7.js7-engine.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.engine.groupId}</groupId>
                                    <artifactId>${sos.js7.js7-engine.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>
                                    <generatePom>true</generatePom>
                                </configuration>
                            </execution>
                             
                           
 
                            <execution>
                                <id>install-${sos.js7.job.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.job.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.job.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>
                                    <generatePom>true</generatePom>
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-${sos.js7.commons.util.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.commons.util.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.commons.util.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>
                                    <generatePom>true</generatePom>
                                </configuration>
                            </execution>
 
                            <execution>
                                <id>install-${sos.js7.commons.httpclient.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.commons.httpclient.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.commons.httpclient.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>                             
                                    <generatePom>true</generatePom>
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-${sos.js7.commons.exception.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.commons.exception.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.commons.exception.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>
                                    <localRepositoryPath>${sos.js7.local.repodir}</localRepositoryPath>
                                    <generatePom>true</generatePom>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
 
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.10.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <optimize>true</optimize>
                        <showDeprecation>true</showDeprecation>
                        <showWarnings>true</showWarnings>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>



  • groupId, artifactId and version should be adjusted.
  • The pom.xml file contains a profile create-local-repo that must be executed once after copying the jar files. It updates the users local .m2 repository with the jars from the sos folder. The dependencies to the .jar files are in scope provided as these jars are needed at compile time, but are already present in the agent environment.

    Code Block
    languagepowershell
    > mvn initialize -Pcreate-local-repo -U

Activating JUnit Tests and Debugging for JS7 Java Jobs

  • The following

Activating JUnit Tests and Debugging for JS7 Java Jobs

  • The following .jar files have to be copied additionally from a JS7 Agent installation ./lib/sos directory to the sos directory of the Maven project. The additional .jar files are required in scope test for use with full debugging. The example makes use of release 2.6.1, users should check for a current release.
    • com.sos-berlin.js7.engine.js7-data-<version>.jar
    • sos-js7-job-<version>.jar
    • sos-commons-hibernate-<version>.jar
    • sos-commons-sign-<version>.jar
    • sos-commons-vfs-<version>.jar

...

Code Block
languagexml
titlePOM with JUNIT test and debugging JS7 Jobs
collapsetrue
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.sos-berlin</groupId>
    <artifactId>js7jobs</artifactId>
    <version>0.0.1-SNAPSHOT</version>
 
    <properties>
        <!-- release version of js7 jars -->
        <sos.js7.version>2.6.1</sos.js7.version>
        <!-- 3rd party versions -->
        <scala.library.version>2.13.11</scala.library.version>
        <slf4j.version>1.7.36</slf4j.version>
        <io.vavr.version>0.10.4</io.vavr.version>
        <!-- JS7 3rd party test versions -->
        <javax.json.version>1.0.2</javax.json.version>
        <log4j.version>2.20.0</log4j.version>
        <junit.version>4.8.2</junit.version>
        <sourcecode.version>0.3.0</sourcecode.version>
        <circe.version>0.14.3</circe.version>
        <jackson.databind.version>2.14.2</jackson.databind.version>
        
        <!-- JS7 3rd party SOSApiRestclient versions --> 
        <!--
        <httpclient.version>4.5.13</httpclient.version>
        <httpcore.version>4.4.16</httpcore.version>
        <jakarta.api.version>3.0.0</jakarta.api.version>
        -->

        <!-- groupId and artifactIds of js7 jars -->
        <sos.js7.groupId>com.sos-berlin</sos.js7.groupId>
        <sos.js7.job.artifactId>sos-js7-job</sos.js7.job.artifactId>
        <sos.js7.commons.util.artifactId>sos-commons-util</sos.js7.commons.util.artifactId>
        <sos.js7.commons.exception.artifactId>sos-commons-exception</sos.js7.commons.exception.artifactId>
        <sos.js7.commons.httpclient.artifactId>sos-commons-httpclient</sos.js7.commons.httpclient.artifactId>
 
        <sos.js7.engine.groupId>com.sos-berlin.js7.engine</sos.js7.engine.groupId>
        <sos.js7.launcher.artifactId>js7-launcher-for-java</sos.js7.launcher.artifactId>
        <sos.js7.data-for-java.artifactId>js7-data-for-java</sos.js7.data-for-java.artifactId>
        <sos.js7.base.artifactId>js7-base</sos.js7.base.artifactId>
        <!-- sos jars for tests -->
        <sos.js7.commons.hibernate.artifactId>sos-commons-hibernate</sos.js7.commons.hibernate.artifactId>
        <sos.js7.commons.vfs.artifactId>sos-commons-vfs</sos.js7.commons.vfs.artifactId>
        <sos.js7.commons.sign.artifactId>sos-commons-sign</sos.js7.commons.sign.artifactId>
        <sos.js7.data.artifactId>js7-data</sos.js7.data.artifactId>
          
        <!-- directories with js7 jars to install the local project repository -->
        <sos.js7.external.srcdir>${project.basedir}/sos</sos.js7.external.srcdir>
    </properties>
 
    <repositories>
 
        <!-- public repository for 3rd party jars -->
        <repository>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
                <updatePolicy>never</updatePolicy>
            </snapshots>
        </repository>
    </repositories>
 
    <dependencies>
        <!-- SOS dependencies -->
        <dependency>
            <groupId>${sos.js7.engine.groupId}</groupId>
            <artifactId>${sos.js7.launcher.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>${sos.js7.engine.groupId}</groupId>
            <artifactId>${sos.js7.data-for-java.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>${sos.js7.engine.groupId}</groupId>
            <artifactId>${sos.js7.base.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.job.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.commons.util.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.commons.exception.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
         
        <!-- Example for a custom dependency -->
        <!--
          <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.commons.httpclient.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>provided</scope>
        </dependency>
        
        
        -->
 
        <!-- SOS test dependencies -->
        <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.commons.hibernate.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.commons.vfs.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>${sos.js7.groupId}</groupId>
            <artifactId>${sos.js7.commons.sign.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>${sos.js7.engine.groupId}</groupId>
            <artifactId>${sos.js7.data.artifactId}</artifactId>
            <version>${sos.js7.version}</version>
            <scope>test</scope>
        </dependency>
                 
        <!-- 3rd Party -->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.library.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>io.vavr</groupId>
            <artifactId>vavr</artifactId>
            <version>${io.vavr.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <scope>provided</scope>
        </dependency>
         
        <!-- 3rd party test dependencies -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>${log4j.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.circe</groupId>
            <artifactId>circe-core_2.13</artifactId>
            <version>${circe.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.circe</groupId>
            <artifactId>circe-generic_2.13</artifactId>
            <version>${circe.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.lihaoyi</groupId>
            <artifactId>sourcecode_2.13</artifactId>
            <version>${sourcecode.version}</version>
            <scope>test</scope>
        </dependency>
  		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
            <version>${jackson.databind.version}</version>
            <scope>test</scope>
		</dependency>        
		
        <!-- JS7 3rd party SOSApiRestclient dependencies --> 
        <!--
  		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
            <version>${httpclient.version}</version>
            <scope>test</scope>
		</dependency>        
  		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
            <version>${httpcore.version}</version>
            <scope>test</scope>
		</dependency>        
  		<dependency>
			<groupId>jakarta.ws.rs</groupId>
			<artifactId>jakarta.ws.rs-api</artifactId>
            <version>${jakarta.api.version}</version>
            <scope>test</scope>
		</dependency>     
		-->   
    </dependencies>
 
    <profiles>
        <profile>
            <id>create-local-repo</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-install-plugin</artifactId>
                        <version>3.1.0</version>
                        <executions>
                            <execution>
                                <id>install-${sos.js7.launcher.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.engine.groupId}.${sos.js7.launcher.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.engine.groupId}</groupId>
                                    <artifactId>${sos.js7.launcherengine.artifactIdgroupId}</artifactId>groupId>
                                    <version>$<artifactId>${sos.js7.launcher.versionartifactId}</version>artifactId>
                                    <packaging>jar</packaging><version>${sos.js7.version}</version>
                                    <createChecksum>true</createChecksum><packaging>jar</packaging>
									<generatePom>true</generatePom> 
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-${sos.js7.data-for-java.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.engine.groupId}.${sos.js7.data-for-java.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.engine.groupId}</groupId>
                                    <artifactId>${sos.js7.data-for-java.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>
                                    <createChecksum>true</createChecksum>									<generatePom>true</generatePom> 
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-${sos.js7.base.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.engine.groupId}.${sos.js7.base.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.engine.groupId}</groupId>/file>
                                    <artifactId>$<groupId>${sos.js7.baseengine.artifactIdgroupId}</artifactId>groupId>
                                    <version>$<artifactId>${sos.js7.versionbase.artifactId}</version>artifactId>
                                    <packaging>jar</packaging><version>${sos.js7.version}</version>
                                    <createChecksum>true</createChecksum><packaging>jar</packaging>
									<generatePom>true</generatePom> 
                                </configuration>
                            </execution>
 
                            <execution>
                                <id>install-${sos.js7.job.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.job.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.job.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>
                                    <createChecksum>true</createChecksum>									<generatePom>true</generatePom> 
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-${sos.js7.commons.util.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.commons.util.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.commons.util.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>
                                    <createChecksum>true</createChecksum>									<generatePom>true</generatePom> 
                                </configuration>
                            </execution>
 
                            <!-- JS7 copy Jar for SOSApiRestclient --> 
                            <!--

                            <execution>
                                <id>install-${sos.js7.commons.httpclient.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.commons.httpclient.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.commons.httpclient.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>                             
                                    <createChecksum>true</createChecksum>									<generatePom>true</generatePom> 
                                </configuration>
                            </execution>
                            -->
                            <execution>
                                <id>install-${sos.js7.commons.exception.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.commons.exception.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.commons.exception.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>
                                    <localRepositoryPath>${sos.js7.local.repodir}</localRepositoryPath>
                                    <createChecksum>true</createChecksum>									<generatePom>true</generatePom> 
                                </configuration>
                            </execution>
 
                            <!-- SOS Jars for testing-->
                            <execution>
                                <id>install-${sos.js7.commons.hibernate.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.commons.hibernate.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.commons.hibernate.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>/version>
                                    <localRepositoryPath>${sos.js7.local.repodir}</localRepositoryPath><packaging>jar</packaging>
                                    <createChecksum>true</createChecksum><localRepositoryPath>${sos.js7.local.repodir}</localRepositoryPath>
									<generatePom>true</generatePom> 
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-${sos.js7.commons.sign.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.commons.sign.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.commons.sign.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>
                                    <localRepositoryPath>${sos.js7.local.repodir}</localRepositoryPath>
                                    <createChecksum>true</createChecksum>									<generatePom>true</generatePom> 
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-${sos.js7.commons.vfs.artifactId}</id>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <file>${sos.js7.external.srcdir}/${sos.js7.commons.vfs.artifactId}-${sos.js7.version}.jar</file>
                                    <groupId>${sos.js7.groupId}</groupId>
                                    <artifactId>${sos.js7.commons.vfs.artifactId}</artifactId>
                                    <version>${sos.js7.version}</version>
                                    <packaging>jar</packaging>
                                    <localRepositoryPath>${sos.js7.local.repodir}</localRepositoryPath>
                                    <createChecksum>true</createChecksum>									<generatePom>true</generatePom> 
                                </configuration>
                            </execution>
 
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
 
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.10.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <optimize>true</optimize>
                        <showDeprecation>true</showDeprecation>
                        <showWarnings>true</showWarnings>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

...