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.

    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>
  • 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

...