Skip to content

Commit

Permalink
Merge branch 'develop' into partial-snapshot-download
Browse files Browse the repository at this point in the history
  • Loading branch information
sfiorani authored Dec 13, 2024
2 parents d32ecad + db6507e commit 4e92ef2
Show file tree
Hide file tree
Showing 71 changed files with 199 additions and 177 deletions.
38 changes: 33 additions & 5 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ node {
stage('Preparation') {
dir("kura") {
checkout scm
sh "touch /tmp/isJenkins.txt"
}
}

Expand All @@ -35,20 +36,47 @@ node {
return
}

stage('Build') {
timeout(time: 2, unit: 'HOURS') {
stage('Build target-platform') {
timeout(time: 1, unit: 'HOURS') {
dir("kura") {
withMaven(jdk: 'adoptopenjdk-hotspot-jdk8-latest', maven: 'apache-maven-3.9.6') {
sh "touch /tmp/isJenkins.txt"
withMaven(jdk: 'temurin-jdk17-latest', maven: 'apache-maven-3.9.6') {
sh "mvn -f target-platform/pom.xml clean install -Pno-mirror -Pcheck-exists-plugin"
sh "mvn -f kura/pom.xml clean install -Pcheck-exists-plugin"
}
}
}
}

stage('Build core') {
timeout(time: 2, unit: 'HOURS') {
dir("kura") {
withMaven(jdk: 'temurin-jdk17-latest', maven: 'apache-maven-3.9.6') {
sh "mvn -f kura/pom.xml -Dsurefire.rerunFailingTestsCount=3 clean install -Pcheck-exists-plugin"
}
}
}
}

stage('Build distrib') {
timeout(time: 1, unit: 'HOURS') {
dir("kura") {
withMaven(jdk: 'temurin-jdk17-latest', maven: 'apache-maven-3.9.6') {
sh "mvn -f kura/distrib/pom.xml clean install -DbuildAll"
}
}
}
}

stage('Build examples') {
timeout(time: 1, unit: 'HOURS') {
dir("kura") {
withMaven(jdk: 'temurin-jdk17-latest', maven: 'apache-maven-3.9.6') {
sh "mvn -f kura/examples/pom.xml clean install -Pcheck-exists-plugin"
}
}
}
}


stage('Generate test reports') {
dir("kura") {
junit 'kura/test/*/target/surefire-reports/*.xml,kura/examples/test/*/target/surefire-reports/*.xml'
Expand Down
13 changes: 5 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Additionally, we provide two channels for reporting any issue you find with the
Install
-------

Eclipse Kura™ is compatible with Java 8 and Java 17.
Eclipse Kura™ is compatible with Java 17.

### Target Gateways Installers
Eclipse Kura™ provides pre-built installers for common development boards. Check the following [link](https://www.eclipse.org/kura/downloads.php) to download the desired installers.
Expand All @@ -66,7 +66,7 @@ Build
### Prerequisites

In order to be able to build Eclipse Kura™ on your development machine, you need to have the following programs installed in your system:
* JDK 1.8
* JDK 17
* Maven 3.5.x

<details>
Expand All @@ -76,7 +76,7 @@ In order to be able to build Eclipse Kura™ on your development machine, you ne

</summary>

To install Java 8, download the JDK tar archive from the [Adoptium Project Repository](https://adoptium.net/releases.html?variant=openjdk8&jvmVariant=hotspot).
To install Java 17, download the JDK tar archive from the [Adoptium Project Repository](https://adoptium.net/en-GB/temurin/releases/?variant=openjdk8&jvmVariant=hotspot&version=17).

Once downloaded, copy the tar archive in `/Library/Java/JavaVirtualMachines/` and cd into it. Unpack the archive with the following command:

Expand All @@ -89,10 +89,7 @@ The tar archive can be deleted afterwards.
Depending on which terminal you are using, edit the profiles (.zshrc, .profile, .bash_profile) to contain:

```bash
# Adoptium JDK 8
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/<archive-name>/Contents/Home
alias java8='export JAVA_HOME=$JAVA_8_HOME'
java8
export JAVA_HOME=/Library/Java/JavaVirtualMachines/<archive-name>/Contents/Home
```

Reload the terminal and run `java -version` to make sure it is installed correctly.
Expand All @@ -119,7 +116,7 @@ export PATH="/usr/local/opt/[email protected]/bin:$PATH"

For Java
```bash
sudo apt install openjdk-8-jdk
sudo apt install openjdk-17-jdk
```
For Maven

Expand Down
143 changes: 76 additions & 67 deletions kura/distrib/pom.xml

Large diffs are not rendered by default.

48 changes: 3 additions & 45 deletions kura/distrib/src/main/ant/build_equinox_distrib.xml
Original file line number Diff line number Diff line change
Expand Up @@ -268,22 +268,12 @@ ${DIR}/bin/gen_config_ini.sh ${DIR}/framework/config.ini ${DIR}/plugins > /tmp/.
KURA_RUNNING=`ps ax | grep java | grep "org.eclipse.equinox"`
#get java version
JAVA_VERSION=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}')
JAVA_VERSION_NUM=$(echo "$JAVA_VERSION" | awk -F. '{printf("%03d%03d",$1,$2);}')
OPEN_MODULE_OPTIONS=''
if [ $JAVA_VERSION_NUM -gt 001008 ] ; then
OPEN_MODULE_OPTIONS="--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED"
fi
if [ -z "$KURA_RUNNING" ] ; then
exec java -Xms${kura.mem.size} -Xmx${kura.mem.size} \
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/kura-heapdump.hprof \
-XX:ErrorFile=/var/log/kura-error.log \
-XX:+IgnoreUnrecognizedVMOptions \
${OPEN_MODULE_OPTIONS} \
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED \
--add-modules=ALL-SYSTEM \
-Dkura.os.version=${kura.os.version} \
-Dkura.arch=${kura.arch} \
Expand Down Expand Up @@ -321,24 +311,14 @@ ${DIR}/bin/gen_config_ini.sh ${DIR}/framework/config.ini ${DIR}/plugins > /tmp/.
KURA_RUNNING=`ps ax | grep java | grep "org.eclipse.equinox"`
#get java version
JAVA_VERSION=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}')
JAVA_VERSION_NUM=$(echo "$JAVA_VERSION" | awk -F. '{printf("%03d%03d",$1,$2);}')
OPEN_MODULE_OPTIONS=''
if [ $JAVA_VERSION_NUM -gt 001008 ] ; then
OPEN_MODULE_OPTIONS="--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED"
fi
if [ -z "$KURA_RUNNING" ] ; then
exec java -Xms${kura.mem.size} -Xmx${kura.mem.size} \
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/var/log/kura-gc.log \
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M \
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/kura-heapdump.hprof \
-XX:ErrorFile=/var/log/kura-error.log \
-XX:+IgnoreUnrecognizedVMOptions \
${OPEN_MODULE_OPTIONS} \
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED \
--add-modules=ALL-SYSTEM \
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=*:8000,suspend=n \
-Dkura.os.version=${kura.os.version} \
Expand Down Expand Up @@ -378,22 +358,12 @@ ${DIR}/bin/gen_config_ini.sh ${DIR}/framework/config.ini ${DIR}/plugins > /tmp/.
KURA_RUNNING=`ps ax | grep java | grep "org.eclipse.equinox"`
#get java version
JAVA_VERSION=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}')
JAVA_VERSION_NUM=$(echo "$JAVA_VERSION" | awk -F. '{printf("%03d%03d",$1,$2);}')
OPEN_MODULE_OPTIONS=''
if [ $JAVA_VERSION_NUM -gt 001008 ] ; then
OPEN_MODULE_OPTIONS="--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED"
fi
if [ -z "$KURA_RUNNING" ] ; then
nohup java -Xms${kura.mem.size} -Xmx${kura.mem.size} \
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/kura-heapdump.hprof \
-XX:ErrorFile=/var/log/kura-error.log \
-XX:+IgnoreUnrecognizedVMOptions \
${OPEN_MODULE_OPTIONS} \
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED \
--add-modules=ALL-SYSTEM \
-Dkura.os.version=${kura.os.version} \
-Dkura.arch=${kura.arch} \
Expand Down Expand Up @@ -424,24 +394,12 @@ fi]]>
<!-- Populate parameters -->
<copy file="src/main/resources/${build.name}/kura_install.sh"
tofile="${project.build.directory}/${build.output.name}/kura_install.sh" />
<copy file="src/main/resources/common/kura.init.yocto"
tofile="${project.build.directory}/${build.output.name}/kura.init.yocto"
failonerror="false" />
<copy file="src/main/resources/common/kura.init.raspbian"
tofile="${project.build.directory}/${build.output.name}/kura.init.raspbian"
failonerror="false" />
<copy file="src/main/resources/common/kura.service"
tofile="${project.build.directory}/${build.output.name}/kura.service"
failonerror="false" />
<replaceregexp
file="${project.build.directory}/${build.output.name}/kura_install.sh"
match="INSTALL_DIR=.*" replace="INSTALL_DIR=${kura.install.dir}" />
<replaceregexp
file="${project.build.directory}/${build.output.name}/kura.init.yocto"
match="INSTALL_DIR=.*" replace="INSTALL_DIR=${kura.install.dir}" />
<replaceregexp
file="${project.build.directory}/${build.output.name}/kura.init.raspbian"
match="INSTALL_DIR=.*" replace="INSTALL_DIR=${kura.install.dir}" />
<replaceregexp
file="${project.build.directory}/${build.output.name}/kura.service"
match="INSTALL_DIR" replace="${kura.install.dir}" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,20 @@
# Contributors:
# Eurotech
#
Package: kura
Package: kura-nn
Version: [[project.version]]
Section: misc
Priority: low
Depends: openjdk-17-jre-headless | temurin-17-jdk | openjdk-8-jre-headless | temurin-8-jdk,
Section: admin
Priority: optional
Depends: openjdk-17-jre-headless | temurin-17-jdk,
setserial, zip, gzip, unzip, procps, usbutils, socat, gawk, sed, inetutils-telnet,
polkit | policykit-1, ssh | openssh, openssl, busybox, openvpn,
bluez | bluez5, bluez-hcidump | bluez5-noinst-tools,
ntpdate, chrony, chronyc | chrony, cron | cronie, logrotate, gpsd, python3
Architecture: all
Maintainer: [email protected]
Description: Kura is an inclusive software framework that puts a layer
Architecture: arm64
Maintainer: Eclipse Kura Developers <[email protected]>
Homepage: https://eclipse-kura.github.io/kura/
Description: Open-source IoT edge framework based on Java/OSGi
Kura is an inclusive software framework that puts a layer
between the operating system and the customer application, with industry
standard interfaces that shorten custom development time, simplified coding
and software that can be easily ported from one hardware platform
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,20 @@
#
Package: kura
Version: [[project.version]]
Section: misc
Priority: low
Depends: openjdk-17-jre-headless | temurin-17-jdk | openjdk-8-jre-headless | temurin-8-jdk,
Section: admin
Priority: optional
Depends: openjdk-17-jre-headless | temurin-17-jdk,
setserial, zip, gzip, unzip, procps, usbutils, socat, gawk, sed, inetutils-telnet,
polkit | policykit-1, ssh | openssh, openssl, busybox, openvpn,
bluez | bluez5, bluez-hcidump | bluez5-noinst-tools,
ntpdate, chrony, chronyc | chrony, cron | cronie,
network-manager | networkmanager, bind9 | bind, dnsmasq | isc-dhcp-server, isc-dhcp-client | dhcpcd, iw, iptables, modemmanager,
logrotate, gpsd, python3
Architecture: all
Maintainer: [email protected]
Description: Kura is an inclusive software framework that puts a layer
Architecture: arm64
Maintainer: Eclipse Kura Developers <[email protected]>
Homepage: https://eclipse-kura.github.io/kura/
Description: Open-source IoT edge framework based on Java/OSGi
Kura is an inclusive software framework that puts a layer
between the operating system and the customer application, with industry
standard interfaces that shorten custom development time, simplified coding
and software that can be easily ported from one hardware platform
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,20 @@
# Contributors:
# Eurotech
#
Package: kura
Package: kura-nn
Version: [[project.version]]
Section: misc
Priority: low
Depends: openjdk-17-jre-headless | temurin-17-jdk | openjdk-8-jre-headless | temurin-8-jdk,
Section: admin
Priority: optional
Depends: openjdk-17-jre-headless | temurin-17-jdk,
setserial, zip, gzip, unzip, procps, usbutils, socat, gawk, sed, inetutils-telnet,
polkit | policykit-1, ssh | openssh, openssl, busybox, openvpn,
bluez | bluez5, bluez-hcidump | bluez5-noinst-tools,
ntpdate, chrony, chronyc | chrony, cron | cronie, logrotate, gpsd, python3
Architecture: all
Maintainer: [email protected]
Description: Kura is an inclusive software framework that puts a layer
Architecture: armhf
Maintainer: Eclipse Kura Developers <[email protected]>
Homepage: https://eclipse-kura.github.io/kura/
Description: Open-source IoT edge framework based on Java/OSGi
Kura is an inclusive software framework that puts a layer
between the operating system and the customer application, with industry
standard interfaces that shorten custom development time, simplified coding
and software that can be easily ported from one hardware platform
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,20 @@
#
Package: kura
Version: [[project.version]]
Section: misc
Priority: low
Depends: openjdk-17-jre-headless | temurin-17-jdk | openjdk-8-jre-headless | temurin-8-jdk,
Section: admin
Priority: optional
Depends: openjdk-17-jre-headless | temurin-17-jdk,
setserial, zip, gzip, unzip, procps, usbutils, socat, gawk, sed, inetutils-telnet,
polkit | policykit-1, ssh | openssh, openssl, busybox, openvpn,
bluez | bluez5, bluez-hcidump | bluez5-noinst-tools,
ntpdate, chrony, chronyc | chrony, cron | cronie,
network-manager | networkmanager, bind9 | bind, dnsmasq | isc-dhcp-server, isc-dhcp-client | dhcpcd, iw, iptables, modemmanager,
logrotate, gpsd, python3
Architecture: all
Maintainer: [email protected]
Description: Kura is an inclusive software framework that puts a layer
Architecture: armhf
Maintainer: Eclipse Kura Developers <[email protected]>
Homepage: https://eclipse-kura.github.io/kura/
Description: Open-source IoT edge framework based on Java/OSGi
Kura is an inclusive software framework that puts a layer
between the operating system and the customer application, with industry
standard interfaces that shorten custom development time, simplified coding
and software that can be easily ported from one hardware platform
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,29 @@
Package: kura
#
# Copyright (c) 2024 Eurotech and/or its affiliates and others
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# Eurotech
#
Package: kura-nn
Version: [[project.version]]
Section: misc
Priority: low
Section: admin
Priority: optional
Depends: dos2unix, unzip,
telnet, bluez-hcidump,
bluez, chrony, ntpdate,
openjdk-17-jre-headless | temurin-17-jdk | openjdk-8-jre-headless | temurin-8-jdk,
openjdk-17-jre-headless | temurin-17-jdk,
cron
Architecture: all
Maintainer: [email protected]
Description: Kura is an inclusive software framework that puts a layer
Architecture: amd64
Maintainer: Eclipse Kura Developers <[email protected]>
Homepage: https://eclipse-kura.github.io/kura/
Description: Open-source IoT edge framework based on Java/OSGi
Kura is an inclusive software framework that puts a layer
between the operating system and the customer application, with industry
standard interfaces that shorten custom development time, simplified coding
and software that can be easily ported from one hardware platform
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,20 @@
# Contributors:
# Eurotech
#
Package: kura
Package: kura-nn
Version: [[project.version]]
Section: misc
Priority: low
Depends: openjdk-17-jre-headless | temurin-17-jdk | openjdk-8-jre-headless | temurin-8-jdk,
Section: admin
Priority: optional
Depends: openjdk-17-jre-headless | temurin-17-jdk,
setserial, zip, gzip, unzip, procps, usbutils, socat, gawk, sed, inetutils-telnet,
polkit | policykit-1, ssh | openssh, openssl, busybox, openvpn,
bluez | bluez5, bluez-hcidump | bluez5-noinst-tools,
ntpdate, chrony, chronyc | chrony, cron | cronie, logrotate, gpsd, python3
Architecture: all
Maintainer: [email protected]
Description: Kura is an inclusive software framework that puts a layer
Architecture: amd64
Maintainer: Eclipse Kura Developers <[email protected]>
Homepage: https://eclipse-kura.github.io/kura/
Description: Open-source IoT edge framework based on Java/OSGi
Kura is an inclusive software framework that puts a layer
between the operating system and the customer application, with industry
standard interfaces that shorten custom development time, simplified coding
and software that can be easily ported from one hardware platform
Expand Down
Loading

0 comments on commit 4e92ef2

Please sign in to comment.