...
Scope
- This documentation explains how to download and compile the sources for the JobScheduler Engine and all its components.
In case that you wanted to build exclusively YADE, see How to build YADE from the sources. - The sources have to be downloaded from the Git repositories. JobScheduler is available from https://github.com/sos-berlin
- Additional tools will be referenced in this documentation if required to compile the sources.
Prerequisites
As mentioned above, additional tools have to be downloaded and configured following the below order:
Git
- You can find the Git download and documentation here.
- SOS uses Git 1.87.9.42. You can download the latest release from here.
Anchor | ||||
---|---|---|---|---|
|
- To compile individual JobScheduler releases, different Java versions are required:
- SOS uses the 1.7.0.76 build of the Java JDK to build JobScheduler releases before 1.9.0.SOS uses the 1.8.0.31 _74 build of the Java JDK to build JobScheduler release 1.9.0 and above.
- To build the engine for a 64-bit system, the corresponding 64-bit version of JDK has to be used for compiling. Analogously for 32-bit compilation.
- The JDK version in use will define the correct C++ compiler properties. For example, if you are using a 64-bit JDK, even using Visual Studio Express (32-bit), a 64-bit JobScheduler version would be compiled.
- To compile the
scheduler-engine
for the correct target platform:- check if the system variable
%JAVA$JAVA_HOME%HOME
is set to the installation path of you your JDK installation. - check if %JAVA_HOME%\if
$JAVA_HOME/bin
is in your%PATH%
$PATH
global variable.
- check if the system variable
Maven
- You can find the Maven documentation here.
- SOS uses Maven 3.23.19. You You can download the latest Release from here.
- Maven's
/bin
folder has to be added to the global variable "variablePATH
" in in order to take effect. - No further configuration is required for Maven in order to compile. If further configuration is wanted, for example to receive certain 3rd Party libraries from an official Maven2 repository, e.g. http://repo1.maven.org/maven2, then you have to configure the settings.xml file.
Perl
- Perl 5.10 or above (SOS uses Perl , starting from 5.18)12.
- You can find the downloads here.
- No further configuration is required for Perl.
Strawberry Perl (for Windows platforms)
- Find the download here.Strawberry Perls'
/bin
folder has to be added to the global variable "PATH
" in order to take effect.Consider the comprehensive guide for Strawberry Perl in http://wiht.link/perl-resourcesAnchor |
---|
- Find the download here.
- Cygwins'
/bin
folder has to be added to the global variable "PATH
" in order to take effect. - No further configuration is required for Cygwin. As well as for the JDK, to build the engine for a 64-bit system, the corresponding 64-bit version of Cygwin has to be used. Analogously for 32-bit compilation.
Anchor | |||
---|---|---|---|
|
Set up a development environment for Linux
and Windows.. You will need the following packages:
gcc
- GNU Compiler, starting with from version 4.18.35- zlib-devel
- binutils (version corresponding to
gcc
)SOS uses Visual Studio Express 2010 for Windows platforms
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 in your Git Shell:
Code Block | ||
---|---|---|
| ||
git clone git@github.com:sos-berlin/scheduler-engine-doc.git |
to download the project "scheduler-engine-doc
" into the folder or use a tool like, e.g. GitExtensions (for Windows).
Repository for the JobScheduler Engine
Execute the following command in your Git Shell:
Code Block | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
git clone --recursive git@github.com:sos-berlin/all.git |
to download the aggregator project "all
" and its submodules.
Info | |||||
---|---|---|---|---|---|
| |||||
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:
in which |
Tip | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
To be able to build an already released version , like the maintainance (e.g. release 1.910.2, 3) you have to check out the tag like that:
To be able to build a non-released version or a release under construction (e.g. release 1.10.4) you check out the branch like this:
|
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:
ojdbc6
webdavclient4j-core
- hostware (or use the version from an existing JobScheduler (x86) installation)
To publish these libraries to your local Maven repository ( %USERPROFILE%\.m2\
or $HOME/.m2/
) use the goal install-file
from the maven-install-plugin
.
Command for ojdbc6:
Code Block | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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:
scheduler-engine-doc
scheduler-engine
all
Compile the JobScheduler Engine Documentation
Switch to the folder you have downloaded the scheduler-engine-doc
project into, which might look like C:\MY_GIT_REPOS\scheduler-engine-doc\
or /home/MY_ACCOUNT/<PATH_TO_MY_GIT_REPOSREPOS>/scheduler-engine-doc/
.
Type mvn clean install
on 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. If these tests are not relevant for youTo 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: -Pwindows-x64
- For x86 versions, add the following profile to the Maven commands below: -Pwindows-x86
Compile the JobScheduler Engine
Switch to the folder you have downloaded the scheduler-engine
project to, which might look like C:\MY_GIT_REPOS\scheduler-engine\
or /home/MY_ACCOUNT/<PATH_TO_MY_GIT_REPOSREPOS>/scheduler-engine/.
Type the Maven command for installing on 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. If these tests are not relevant for you, compile it the following way:
Code Block |
---|
mvn clean install - |
Compile all JobScheduler Components (JID, JOE, JITL, YADE)
Switch to the folder you downloaded the all
project to, which might look like C:\MY_GIT_REPOS\all\
or /home/MY_ACCOUNT/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. If these tests are not relevant for you, compile it the following way: mvn clean install -DskipTests.
Tip | ||
---|---|---|
| ||
In case you just wanted to compile YADE but not JobScheduler, then switch to the folder that you downloaded the Type |
Psolaris |
In order to check if JobScheduler can be compiled, you can use a first compilation without tests, use the following command:
Code Block |
---|
mvn clean install -Psolaris -DskipTests |
In order to compile with tests completely even though some tests failed, use the following command:
Code Block |
---|
mvn clean install -Psolaris -D maven.test.failure.ignore=true | tee maven.log |
This last command after the pipe "tee maven.log" will write a log file in order to see which tests failed when compiling.
Generated libraries location
After the build has completed you find all created .jar
files files in
- the target folder under each project and subproject.
- the local ./m2 repository in your home folder (
%USERPROFILE%\.m2\repository\com\sos-berlin
or$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:
Windows-x64 in.\scheduler-engine\engine-setup\target\setup\scheduler.windows-x64\bin
jobscheduler-engine.dll
scheduler- Windows-x86 in
.\scheduler-engine\engine-setup\target\setup\scheduler.windows-x86\bin
spidermonkey.dll
scheduler.exe
- Linux-x64 in .
/scheduler-engine/engine-setup/target/setup/scheduler.linux-
x64***/bin
scheduler
setuid
./scheduler-engine/engine-setup/target/setup/scheduler.linux-
x64/libLinux-x86 in./scheduler-engine/engine-setup/target/setup/scheduler.linux-x86/bin
javavscript
scheduler
setuid
./scheduler-engine/engine-setup/target/setup/scheduler.linux-x86libjobscheduler-engine
.solibspidermonkey.so
.
exe***/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/Build Process Forum
Note |
---|
Note: no service levels are guaranteed including response times and resolution times. |
Troubleshooting
Error: "cannot run program bash"
Error: "
MSB4019: Das importierte Projekt "C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Default.props" was not found"Expand |
---|
This error occurs when a Java JDK 32-bit is installed on a 64-bit system, or when the global variable "JAVA_HOME" is either not set or not properly set. Please see Java explanations for resolving this problem. |
Error: "File zlib-xxx was not found
"
Expand |
---|
This error occurs when zlib-devel is not installed (Linux machine). Please see C++ compiler explanations for resolving this problem. |