Versions Compared

Key

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

...

Anchor
cpp-compiler
cpp-compiler
C++ Compiler

Set up a development environment for Linux and Windows. You will need the following packages:

  • gcc - GNU Compiler, starting with version 4.1.3  update (since JobScheduler 1.10.x version 4.8.5 of gnu c++ is recommended) 
  • zlib-devel
  • binutils (version corresponding to gcc)

 

Download from the Source Repositories

Prepare a folder in your file system where you can clone the repositories to and change into this folder.

Repository for the JobScheduler Engine Documentation

Execute the following command:

Code Block
languagebash
git clone git@github.com:sos-berlin/scheduler-engine-doc.git

to download the project "scheduler-engine-doc" into the folder.

Repository for the JobScheduler Engine

Execute the following command in your Git Shell:

Code Block
languagebash
git clone git@github.com:sos-berlin/scheduler-engine.git

to download the project "scheduler-engine".

Repositories for the JobScheduler Components (JID, JOE, JITL, YADE)

Execute the following command in your Git Shell:

Code Block
languagebash
git clone --recursive git@github.com:sos-berlin/all.git

to download the aggregator project "all" and its submodules.

Info
titleHint

After you download the project "all" and all its submodules, the submodules are in a state called "detached Head", which means that references to the submodules point to a commit, which is not the latest in the current branch. To make sure to point to the latest commit of the current branch execute the following commands in your Git Shell:

Code Block
languagebash
git checkout origin/master
git submodule foreach "git checkout origin/master"

in which master is the name of the local branch and origin/master is the name of the remote branch with the latest development version of the components. Other available branches are e.g. release/1.9release/1.8release/1.7.

Tip
titleDownloading a released version

To be able to build an already released version, like the maintainance release 1.9.2, you have to check out the tag like that:

Code Block
languagebash
git checkout v1.9.2
git submodule foreach "git checkout v1.9.2"

 

Building the Projects

Preparation

Before you can start to build the projects you have to make sure that some required libraries are available for the build, which are not available from official public Maven repositories.

You can download the jar files and have to publish them to your local Maven repository in order to make these libraries available for the build.

The libraries to download are:

To publish these libraries to your local Maven repository ( $HOME/.m2/) use the goal install-file from the maven-install-plugin.

Command for ojdbc6:

Code Block
languagetext
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.1.0.7.0-Production -Dpackaging=jar -Dfile=<path-to-the-downloaded-library>/ojdbc6.jar -DlocalRepositoryPath=<path-to-your-local-maven-repository>

Command for webdavclient4j-core:

Code Block
languagetext
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file -DgroupId=webdavclient4j -DartifactId=webdavclient4j-core -Dversion=0.92 -Dpackaging=jar -Dfile=<path-to-the-downloaded-library>/webdavclient4j-core-0.92.jar -DlocalRepositoryPath=<path-to-your-local-maven-repository>

Command for hostware:

Code Block
languagetext
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file -DgroupId=sos -DartifactId=hostware -Dversion=1.0.0 -Dpackaging=jar -Dfile=<path-to-the-downloaded-library>/hostware-1.0.0.jar -DlocalRepositoryPath=<path-to-your-local-maven-repository>

The values for groupId, artifactId and version parameters in the above examples are those that are already defined in the build configuration. When publishing the libraries with these values, the libraries will be found in your local Maven repository and can be used without modifying the configuration.

Build order

Since the projects depend on each other, you have to make sure that the projects are built in the proper order:

  1. scheduler-engine-doc
  2. scheduler-engine
  3. all

Compile the JobScheduler Engine Documentation

Switch to the folder you have downloaded the scheduler-engine-doc project into, which might look like <PATH_TO_MY_GIT_REPOS>/scheduler-engine-doc

Type mvn clean install on the command line for building the project including all internal tests - these are tests developed by SOS that check the functionalities of the compiled sources. To compile without the tests, compile it the following way: mvn clean install -DskipTests.

Decide the platform to build for

For the two compilations below it is required to indicate a profile to build the sources for the desired platform:

  • For x64 versions, add the following profile to the Maven commands below: -Plinux-x64
  • For x86 versions, add the following profile to the Maven commands below: -Plinux-x86

Compile the JobScheduler Engine

Switch to the folder you have downloaded the scheduler-engine project to, which might look like <PATH_TO_MY_GIT_REPOS>/scheduler-engine.

Type mvn clean install on the command line for building the project including all internal tests - these are tests developed by SOS that check the functionalities of the compiled sources. To compile without the tests, compile it the following way: mvn clean install -DskipTests.

Compile all JobScheduler Components (JID, JOE, JITL, YADE)

Switch to the folder you downloaded the all project to, which might look like <PATH_TO_MY_GIT_REPOS>/all

Type mvn clean install on the command line for building the project including all internal tests - these are tests developed by SOS that check the functionalities of the compiled sources. To compile without the tests, compile it the following way: mvn clean install -DskipTests.

Anchor
compile-jade
compile-jade

Tip
titleCompile YADE

In case you just wanted to compile YADE but not JobScheduler, then switch to the folder that you downloaded the all/jade project to, which might look like <PATH_TO_MY_GIT_REPOS>/all/jade

Type mvn clean install on the command line for building the project including all internal tests - these are tests developed by SOS that check the functionalities of the compiled sources. To compile without the tests, compile it the following way: mvn clean install -DskipTests.

Note

You have to compile all three projects at least once before you can compile YADE on its own. This is required for the YADE build to be able to resolve its dependencies from your local maven repository.

Generated libraries location

After the build has completed you find all created .jar files in

  1. the target folder under each project and subproject.
  2. the local ./m2 repository in your home folder ($HOME/.m2/repository/com/sos-berlin)

At this point you already have all the library files to update an exisiting JobScheduler installation in your system.

You can find the specific libraries for the different platform in the target folder of the engine-setup:

  1. Linux-x64 in 
    1. ./scheduler-engine/engine-setup/target/setup/scheduler.linux-x64/bin
      • scheduler
      • setuid
    2. ./scheduler-engine/engine-setup/target/setup/scheduler.linux-x64/lib
  2. Linux-x86 in 
    1. ./scheduler-engine/engine-setup/target/setup/scheduler.linux-x86/bin
      • javavscript
      • scheduler
      • setuid
    2. ./scheduler-engine/engine-setup/target/setup/scheduler.linux-x86/lib

Support 

Commercial License

If you purchased a Commercial License with the Service Request Support Option, then the build process will be supported by our Support Team should you face problems. The applicable service level is the same as for severity level "minor", see Product Maintenance.

Open Source License

If you use the Open Source License then the build process will be supported by using our Community Resources. A forum for build issues is available at SourceForge, see https://sourceforge.net/p/jobscheduler/discussion/bp/

Note
Note: no service levels are guaranteed including response times and resolution times.

Troubleshooting

Error: "File zlib-xxx was not found"

Expand

This error occurs when zlib-devel is not installed. Please see C++ compiler explanations for resolving this problem.

 

...