You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »


Introduction

JS7 offers a number of JS7 - Job Classes including JS7 - Shell JobsJS7 - JavaScript Jobs and Java Jobs.

  • Java Jobs are operated in the Java Virtual Machine of the JS7 Agent
  • Java Jobs are loaded on start-up of the JS7 Agent, this means there is zero latency when starting Java Jobs.

JS7 offers the JS7 - Job API to Java Jobs that serves the purpose of

  • accessing arguments available to the job from various sources such as JS7 - Order Variables, job and node arguments, JS7 - Job Resources,
  • allowing to specify the outcome of a job including return values that are passed to subsequent jobs from order variables.

Java jobs are available starting from the following releases:

FEATURE AVAILABILITY STARTING FROM RELEASE 2.5.4

FEATURE AVAILABILITY STARTING FROM RELEASE 2.6.1

Implementation

Implementing a basic Job

A Java Job extends the class com.sos.js7.job.Job like this:

Example for implementation of a HelloWorld job with Java
import com.sos.js7.job.Job;
import com.sos.js7.job.JobArguments;
import com.sos.js7.job.OrderProcessStep;

public class HelloWorld extends Job<JobArguments> {

	@Override
	public void processOrder(OrderProcessStep<JobArguments> step) throws Exception {
		
		step.getLogger().info("Hello World!");
		
	}

}


Explanation:

  • The extension of the class com.sos.js7.job.Job is required.
  • The processOrder() method is required to be implemented by the job.
    • The method is parameterized by the OrderProcessStep object provided by the Job API.
    • The OrderProcessStep object is used with its getLogger() method to write output to the job's log.

Accessing Arguments

A Java Job can access arguments from a number of sources, see JS7 - Job API

  • The straightforward way how to read arguments is explained from the next chapter.

Example: Reading specific Arguments

Example for implementation of a Job with Java
import java.util.List;

import com.sos.js7.job.Job;
import com.sos.js7.job.JobArgument;
import com.sos.js7.job.OrderProcessStep;
import com.sos.js7.job.OrderProcessStepOutcome;

public class JobWithParams extends Job<MyJobArguments> {

	@Override
	public void processOrder(OrderProcessStep<MyJobArguments> step) throws Exception {
		
		// reading all arguments with "getAllArgumentsAsNameValueMap"
		step.getAllArgumentsAsNameValueMap().forEach((name, value) -> {
			step.getLogger().info("argument: " + name + "=" + value);
		});
		
		// reading all arguments with "getAllArguments"
		step.getAllArguments().forEach((name, jobArgument) -> {
			step.getLogger().info("argument: " + name + "=" + jobArgument.getValue());
		});
        
        MyJobArguments myArgs = step.getDeclaredArguments();
		
		// reading job-specific argument: myString
		JobArgument<String> myString = myArgs.getMyString();
		step.getLogger().info(myString.getName() + "=" + myString.getValue());
		
		// reading job-specific argument: myBool
		JobArgument<Boolean> myBool = myArgs.getMyBool();
		step.getLogger().info(myBool.getName() + "=" + myBool.getValue());
		
		// reading job-specific argument: myList
		JobArgument<List<String>> myList = myArgs.getMyList();
		step.getLogger().info(myList.getName() + "=" + myList.getValue());
		
		// return values
		OrderProcessStepOutcome outcome = step.getOutcome();
		outcome.putVariable(myString.getName(), "hello world");
		outcome.putVariable("myInteger", 42);
	}

}


Explanation:

  • The getAllArgumentsAsNameValueMap() method provides a map of all argument values.
  • The getAllArguments() method provides a map of argument objects.
  • The OrderProcessStep object is here typed by MyJobArguments that is a class with job-specific declared arguments.
    • A class with job specific declared arguments extends com.sos.js7.job.JobArguments

      Example of a class of the job-specific declared arguments
      import java.util.List;
      
      import com.sos.js7.job.JobArgument;
      import com.sos.js7.job.JobArguments;
      
      public class MyJobArguments extends JobArguments {
      	
      	private JobArgument<String> myString = new JobArgument<String>("myString", false);
          private JobArgument<List<String>> myList = new JobArgument<>("myList", false);
          private JobArgument<Boolean> myBool = new JobArgument<>("test", false, true);
      
          public JobArgument<String> getMyString() {
              return myString;
          }
      
          public JobArgument<List<String>> getMyList() {
              return myList;
          }
      
          public JobArgument<Boolean> getMyBool() {
              return myBool;
          }
      }
  • For further methods to access arguments see JS7 - Job API

Creating a Maven project in the development environment

The classes com.sos.js7.job.Job, com.sos.js7.job.JobArguments etc. are not available in a public Maven repository, so a local repository must be created in the Maven project.

  • The directory sos has to be created



  • The following .jar files have to be copied from a JS7 Agent installation ./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
    • 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.

    pom.xml
    <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>
    									<createChecksum>true</createChecksum>
    								</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>
    								</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>
    									<createChecksum>true</createChecksum>
    								</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>
    								</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>
    								</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>								
    									<createChecksum>true</createChecksum>
    								</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>
    								</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.

    > mvn initialize -Pcreate-local-repo -U

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

Rerun the profile create-local-repo to copy the jar files to the local Maven m2 repository. 


> mvn initialize -Pcreate-local-repo -U


The following pom.xml file can be used as a base in the Maven project with JUNIT testing and debugging.

POM with JUNIT test and debugging JS7 Jobs
<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>
		<!-- 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>

		<!-- 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>
	</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>
									<createChecksum>true</createChecksum>
								</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>
								</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>
									<createChecksum>true</createChecksum>
								</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>
								</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>
								</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>								
									<createChecksum>true</createChecksum>
								</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>
								</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>
									<localRepositoryPath>${sos.js7.local.repodir}</localRepositoryPath>
									<createChecksum>true</createChecksum>
								</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>
								</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>
								</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>



Adding other sos-berlin jar files to the repository


There two options to install files to the local .m2 maven repository. Please use one of these options. 

  • Using the pom.xml file
    • Is recommended when you want to make the configuration portable and should be possible to repeat execution on different environments.
  • Using  command line
    • E.g. for testing purposes on one local machine.

Using the pom.xml file

Add an execution element to the pom.xml file for each jar file that has to be added. Adjust the values for file, version and artifactId

<execution>
	    <id>install-${sos.js7.commons.exception.artifactId}</id>
	    <goals>
	         <goal>install-file</goal>
	    </goals>
	    <phase>initialize</phase>
	    <configuration>
	        <file>[filePath]</file>
	        <groupId>${sos.js7.groupId}</groupId>
			<artifactId>[artefactId]</artifactId>
	        <version>${sos.js7.version}</version>
	        <packaging>jar</packaging>
	        <createChecksum>true</createChecksum>
	   </configuration>
</execution>


Using  command line

Open a command shell and call 

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

Example:
mvn install:install-file -Dfile=/sos/sos-commons-httpclient-2.5.5.jar -DgroupId=com.sos-berlin -DartifactId=sos-commons-httpclient -Dversion=2.5.5 -Dpackaging=jar

Further Resources

Features

Articles

Pages


 
 

Navigation



  • No labels