Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • orekit/orekit
  • gbonnefille/orekit
  • sdinot/orekit
  • vmouraux/orekit
  • Petrush/orekit
  • gprat/orekit
  • Shiva_Iyer/orekit
  • yzokras/orekit
  • hankg/orekit
  • markrutten/orekit
  • ThomasP/orekit
  • mikael/orekit
  • AmirAllahvirdi/orekit
  • rferme/orekit
  • plan3d/orekit
  • andrewsgoetz/orekit
  • Vyom-Yadav/orekit
  • crusconi/orekit
  • afossa/orekit
  • julie.bayard/orekit
  • polmes/orekit
  • kendra.hale/orekit
  • mvanel73/orekit
  • ShippingEnjoyer/orekit
  • tommyfryer/orekit
  • bpfoster/orekit
  • louis_aucouturier/orekit
  • pascal/orekit
  • gaetanpierre0/orekit
  • bryan/orekit
  • vcucchie/orekit
  • GuillaumeFiorello/orekit
  • lirw1984/orekit
  • bradh/orekit
  • qmor/orekit
  • Jasquier/orekit
  • jfraserh/orekit
  • Rafael-Ayala/orekit
  • guillermojanner/orekit
  • Sohnny/orekit
  • laura.garcia/orekit
  • nick.lafarge/orekit
  • whigg/orekit
  • bullat/orekit
  • Zudo/orekit
  • Geckonoid/orekit
  • derekkayhan/orekit
  • simon-van-hulle/orekit
  • briannaaubin/orekit
  • quentin.gegoue/orekit
  • alexbm/orekit
  • rocuv/orekit
52 results
Show changes
Commits on Source (5795)
Showing with 4729 additions and 474 deletions
A directory for Continuous Integration tooling.
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output
method="text"
encoding="UTF-8"/>
<xsl:template match="/">
<xsl:apply-templates select="document/body/release[1]"/>
</xsl:template>
<xsl:template match="document/body/release">
<xsl:text>Version </xsl:text><xsl:value-of select="@version"/><xsl:text> is a patch release of Orekit. The main changes are:
</xsl:text>
<xsl:apply-templates select="action"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="document/body/release/action">
* <xsl:value-of select="normalize-space()"/>
</xsl:template>
</xsl:stylesheet>
\ No newline at end of file
<settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xsi:schemalocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>Nexus-Orekit</id>
<name>Maven Repository Manager</name>
<url>https://packages.orekit.org/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<servers>
<server>
<id>ci-releases</id>
<username>${env.NEXUS_USERNAME}</username>
<password>${env.NEXUS_PASSWORD}</password>
</server>
<server>
<id>ci-snapshots</id>
<username>${env.NEXUS_USERNAME}</username>
<password>${env.NEXUS_PASSWORD}</password>
</server>
<server>
<id>website</id>
<privateKey>${user.home}/.ssh/id_website</privateKey>
</server>
</servers>
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>Nexus-Orekit</id>
<name>Nexus Public Repository</name>
<url>https://packages.orekit.org/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
</settings>
...@@ -49,6 +49,8 @@ src/*/resources/*/unx*.405 -text ...@@ -49,6 +49,8 @@ src/*/resources/*/unx*.405 -text
src/*/resources/*/*/unx*.405 -text src/*/resources/*/*/unx*.405 -text
src/*/resources/*/unx*.406 -text src/*/resources/*/unx*.406 -text
src/*/resources/*/*/unx*.406 -text src/*/resources/*/*/unx*.406 -text
src/*/resources/*/lnx*.431 -text
src/*/resources/*/*/lnx*.431 -text
src/*/resources/inpop/*.dat -text src/*/resources/inpop/*.dat -text
src/*/resources/gnss/ntrip/*.dat -text
...@@ -2,8 +2,13 @@ ...@@ -2,8 +2,13 @@
.project .project
.settings .settings
.checkstyle .checkstyle
.idea
bin bin
target target
/build /build
/lib /lib
*.class *.class
.idea/
orekit.iml
hs_err_pid*
replay_pid*
stages:
- verify
- visualize
- deploy
- release
default:
# Default image
image: registry.orekit.org/orekit/ci-utils/maven:3.9.6-eclipse-temurin-11
# Cache downloaded dependencies and plugins between builds.
# To keep cache across branches add 'key: "$CI_JOB_REF_NAME"'
cache:
paths:
- .m2/repository
variables:
# This will suppress any download for dependencies and plugins or upload
# messages which would clutter the console log. `showDateTime` will show the
# passed time in milliseconds. You need to specify `--batch-mode` to make
# this work.
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
# As of Maven 3.3.0 instead of this you may define these options in
# `.mvn/maven.config` so the same config is used when running from the
# command line.
# `installAtEnd` and `deployAtEnd` are only effective with recent version of
# the corresponding plugins.
MAVEN_CLI_OPTS: "-s .CI/maven-settings.xml --batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
SONAR_PROJECT_KEY: "${CI_PROJECT_NAMESPACE}:${CI_PROJECT_NAME}"
SONAR_PROJECT_NAME: "${CI_PROJECT_TITLE} (${CI_PROJECT_NAMESPACE}:${CI_PROJECT_NAME})"
# Deployment target properties
TARGET_URL_PREFIX: "cochise@ganymede.orekit.org:/var/www/mvn-sites/site-orekit"
# Default number of CPUs required for a job
KUBERNETES_CPU_REQUEST: "2"
verify:
stage: verify
variables:
# This is a heavy job, requiring all the CPUs available. VMs have 8 cores,
# but we need to save some for the K8S core services.
KUBERNETES_CPU_REQUEST: "7"
script:
- mvn $MAVEN_CLI_OPTS checkstyle:check verify site
- test -z "$SONAR_TOKEN" || mvn $MAVEN_CLI_OPTS sonar:sonar
-Dsonar.host.url=${SONAR_HOST_URL}
-Dsonar.login=${SONAR_TOKEN}
-Dsonar.branch.name=${CI_COMMIT_REF_NAME}
-Dsonar.projectKey="$SONAR_PROJECT_KEY"
-Dsonar.projectName="$SONAR_PROJECT_NAME"
-Dsonar.qualitygate.wait=true
artifacts:
paths:
- target/*.jar
- target/site
reports:
junit:
- target/surefire-reports/*.xml
verify:warning:
stage: verify
script:
- echo "Please, configure SonarQube by following steps described in the contribution guide:"
- echo "https://www.orekit.org/site-orekit-development/contributing.html"
- exit 1
allow_failure: true
rules:
- if: $SONAR_TOKEN == null
# Convert and import in GitLab coverage data.
# The information is then available directly in merge-request view.
# Cf. https://docs.gitlab.com/ee/user/project/merge_requests/test_coverage_visualization.html
coverage-import:
stage: visualize
image: haynes/jacoco2cobertura:1.0.8
script:
# Display total coverage
- "grep -o '<tfoot.*tfoot>' target/site/jacoco/index.html | sed 's:<[^>]*>: :g'"
# Convert report from jacoco to cobertura
- 'python /opt/cover2cover.py target/site/jacoco/jacoco.xml src/main/java > target/site/cobertura.xml'
# Read the <source></source> tag and prepend the path to every filename
# attribute
- 'python /opt/source2filename.py target/site/cobertura.xml'
needs:
- verify
dependencies:
- verify
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: target/site/cobertura.xml
coverage: '/Total.*?([0-9]{1,3})%/'
changelog:
stage: verify
image: alpine:latest
before_script:
- apk add libxslt
script:
- xsltproc .CI/changes2release.xsl src/changes/changes.xml > CHANGELOG.md
artifacts:
paths:
- CHANGELOG.md
# On main branches (develop, release-*, main) the produced artifacts are
# deployed on the Nexus of the project (https://packages.orekit.org/)
deploy:artifacts:
stage: deploy
script:
- mvn $MAVEN_CLI_OPTS javadoc:jar source:jar deploy -DskipTests=true -Pci-deploy
artifacts:
paths:
- target/*.jar
only:
- main@orekit/orekit
- /^release-[.0-9]+$/@orekit/orekit
- develop@orekit/orekit
deploy:site:
stage: deploy
before_script:
# Prepare the SSH environment required to push documentation onto the server
- eval $(ssh-agent -s)
- echo "$SSH_SECRET_KEY" | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- cp $SSH_KNOWN_HOSTS ~/.ssh/known_hosts
script:
- PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
- rsync -rz --links --checksum --no-perms --chmod=u=rwX,go=rX --delete-after
target/site/ ${TARGET_URL_PREFIX}-${PROJECT_VERSION}
only:
- main@orekit/orekit
- /^release-[.0-9]+$/@orekit/orekit
- develop@orekit/orekit
# trigger performance tests after artifacts are deployed to Nexus
# similar to Jenkins' "build after a snapshot dependency is built"
performance:
stage: deploy
# don't fail the build if this doesn't work
allow_failure: true
needs:
- job: deploy:artifacts
artifacts: false
trigger: orekit/orekit-performance
only:
- develop@orekit/orekit
release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
script:
- cat CHANGELOG.md
release:
tag_name: $CI_COMMIT_TAG
description: './CHANGELOG.md'
assets:
links:
- name: orekit-${CI_COMMIT_TAG}.jar
url: https://packages.orekit.org/repository/maven-releases/org/orekit/orekit/${CI_COMMIT_TAG}/orekit-${CI_COMMIT_TAG}.jar
- name: orekit-${CI_COMMIT_TAG}-javadoc.jar
url: https://packages.orekit.org/repository/maven-releases/org/orekit/orekit/${CI_COMMIT_TAG}/orekit-${CI_COMMIT_TAG}-javadoc.jar
- name: orekit-${CI_COMMIT_TAG}-sources.jar
url: https://packages.orekit.org/repository/maven-releases/org/orekit/orekit/${CI_COMMIT_TAG}/orekit-${CI_COMMIT_TAG}-sources.jar
rules:
- if: '$CI_COMMIT_TAG =~ /^[.0-9]+$/'
Bruno Revelin <bruno.revelin@c-s.fr> Bruno Revelin <Bruno.Revelin@c-s.fr> Albert Alcarraz García <albert.alcarraz-garcia@csgroup.eu> albert alcarraz garcía <albert.alcarraz-garcia@c-s.fr>
Evan Ward <evan.ward@nrl.navy.mil> Evan Ward <evan.ward@nrl.navy.mil> Alexandr Puzeyev <puzeyev.a@gmail.com> alexandr <puzeyev.a@gmail.com>
Evan Ward <evan.ward@nrl.navy.mil> Evan Ward <nomail@nowhere.org> Andrea Antolino <andrea.antolino@csgroup.eu> andrea antolino <andrea.antolino@c-s.fr>
Fabien Maussion <fabien@orekit.org> Fabien Maussion <fabien@orekit.org> Andrew Goetz <andrew@goetz.space> andrew goetz <andrew.s.goetz@lmco.com>
Francesco Rocca <francesco.rocca@telespazio.com> Francesco Rocca <> Anne-Laure Lugan <anne-laure.lugan@airbus.com> anne-laure lugan <anne-laure.lugan@airbus.com>
Luc Maisonobe <luc@orekit.org> Luc Maisonobe <Luc.Maisonobe@free.fr> Anne-Laure Lugan <anne-laure.lugan@airbus.com> anne-laure lugan <anne-laure.lugan@fr.airbus.com>
Luc Maisonobe <luc@orekit.org> Luc Maisonobe <Luc.Maisonobe@orekit.org> Bruno Revelin <bruno.revelin@csgroup.eu> bruno revelin <bruno.revelin@c-s.fr>
Luc Maisonobe <luc@orekit.org> Luc Maisonobe <luc@orekit.org> Bryan Cazabonne <bryan.cazabonne@gmail.com> bryan cazabonne <bryan.cazabonne@csgroup.eu>
Luc Maisonobe <luc@orekit.org> maisonobe <maisonobe@users.noreply.github.com> Bryan Cazabonne <bryan.cazabonne@gmail.com> bryan cazabonne <bryan.cazabonne@c-s.fr>
Pascal Parraud <pascal@orekit.org> Pascal Parraud <pascal@orekit.org> Bryan Cazabonne <bryan.cazabonne@gmail.com> bryan <bryan.cazabonne@c-s.com>
Romain di Costanzo <romain.di-costanzo@c-s.fr> rdicosta <romain.di-costanzo@c-s.fr> Chiara Rusconi <chiara.rusconi@csgroup.eu> chiara rusconi <chiara.rusconi@csgroup.eu>
Steven <sljkwsk@yahoo.com> Steven <sljkwsk@yahoo.com> Chiara Rusconi <chiara.rusconi@csgroup.eu> crusconi <chiara.rusconi@csgroup.eu>
Thierry Ceolin <thierry.ceolin@c-s.fr> Thierry Ceolin <thierry@orekit.org> David Gondelach <davidgondelach@gmail.com> David Gondelach <davidgondelach@gmail.com>
Thierry Ceolin <thierry.ceolin@c-s.fr> thierry ceolin <thierry@orekit.org> David Soulard <david.soulard@csgroup.eu> david soulard <david.soulard@c-s.fr>
Thierry Ceolin <thierry.ceolin@c-s.fr> thierry ceolin <thierry.ceolin@c-s.fr> Dorian Gegout <dorian.gegout@fr.airbus.com> dorian gegout <dorian.gegout@fr.airbus.com>
Thomas Neidhart <thomas.neidhart@gmail.com> Thomas Neidhart <thomas.neidhart@gmail.com> Dylan Gautreau <dylan.gautreau@csgroup.eu> dylan gautreau <dylan.gautreau@c-s.fr>
Véronique Pommier-Maurussane <vero@orekit.org> Véronique Pommier-Maurussane <vero@orekit.org> Evan Ward <evan.ward@nrl.navy.mil> Evan Ward <evan.m.ward3.civ@us.navy.mil>
Nicolas Bernard <nicolas.bernard@c-s.fr> Nicola Bernard <nicolas.bernard@c-s.fr> Evan Ward <evan.ward@nrl.navy.mil> evan ward <evan.ward@nrl.navy.mil>
Romain di Costanzo <romain.di-costanzo@c-s.fr> Romain Di Costanzo <romain.di-costanzo@c-s.fr> Evan Ward <evan.ward@nrl.navy.mil> evan ward <nomail@nowhere.org>
Joris Olympio <joris.olympio@c-s.fr> jolympio <joris.olympio@c-s.fr> Francesco Rocca <francesco.rocca@telespazio.com> francesco rocca <>
Piotr Listkiewicz <piotr.listkiewicz@gmail.com> liscju <piotr.listkiewicz@gmail.com> Gaëtan Pierre <gaetan.pierre@csgroup.eu> gpierre <gaetan.pierre@csgroup.eu>
Gaëtan Pierre <gaetan.pierre@csgroup.eu> gpierre <gpierre@PO18517LX>
GeoTurkey <64136413+GeoTurkey@users.noreply.github.com> geomatics <64136413+GeoTurkey@users.noreply.github.com>
Giuseppe Cavallaro <giuseppe.cavallaro@cnes.fr> gc <865-g.c@users.noreply.gitlab.orekit.org>
Giuseppe Cavallaro <giuseppe.cavallaro@cnes.fr> gc <865-gc@users.noreply.gitlab.orekit.org>
Guilhem Bonnefille <guilhem.bonnefille@csgroup.eu> guilhem bonnefille <guilhem.bonnefille@c-s.fr>
Guylaine Prat <guylaine.prat@csgroup.eu> guylaine prat <guylaine.prat@c-s.fr>
Hank Grabowski <hankgrabowski@gmail.com> hank grabowski <hank@applieddefense.com>
Jean-Baptiste Valet <jean-baptiste.valet@csgroup.eu> jean-baptiste valet <valetjeanbaptiste@hotmail.com>
Joe Reed <josephreed@gmail.com> joe <josephreed@gmail.com>
Joe Reed <josephreed@gmail.com> joe reed <joseph.reed@gmail.com>
Joris Olympio <joris.olympio@csgroup.eu> joris olympio <joris.olympio@c-s.fr>
Joris Olympio <joris.olympio@csgroup.eu> jolympio <joris.olympio@c-s.fr>
Julie Bayard <julie.bayard@csgroup.eu> jbayard <jbayard@po18076lx>
Julien Leblond <julien.leblond@cs-soprasteria.com> julien leblond <julien.leblond@cs-soprasteria.com>
Julien Leblond <julien.leblond@cs-soprasteria.com> julien leblond <julien.leblond@student.isae-supaero.fr>
Kevin Patel <kevinpatel222004@gmail.com> kevin222004 <kevinpatel222004@gmail.com>
Lara Hue <lara.hue@airbus.com> lara hue <lara.hue@airbus.com>
Laurene Beauvalet <laurene.beauvalet@csgroup.eu> laurene beauvalet <laurene.beauvalet@c-s.fr>
Louis Aucouturier <louis.aucouturier@csgroup.eu> louis aucouturier <laucoutu@PO20207LX>
Luc Maisonobe <luc@orekit.org> luc maisonobe <luc.maisonobe@csgroup.eu>
Luc Maisonobe <luc@orekit.org> luc maisonobe <luc.maisonobe@c-s.fr>
Luc Maisonobe <luc@orekit.org> luc maisonobe <luc.maisonobe@free.fr>
Luc Maisonobe <luc@orekit.org> luc maisonobe <luc.maisonobe@orekit.org>
Luc Maisonobe <luc@orekit.org> maisonobe <maisonobe@users.noreply.github.com>
Luc Maisonobe <luc@orekit.org> luc maisonobe <luc.maisonobe@thalesaleniaspace.com>
Lucian Barbulescu <lucian.barbulescu@c-s.ro> lucian barbulescu <lucian.barbulescu@edu.ucv.ro>
Mark Rutten <mark@intrack.solutions> mark rutten <markgrutten@yahoo.com.au>
Maxime Journot <maxime.journot@csgroup.eu> maxime journot <maxime.journot@c-s.fr>
Maxime Journot <maxime.journot@csgroup.eu> maxime journot <maxime.journot@gmail.com>
Mélina Vanel <melina.vanel@csgroup.eu> mélina vanel <melina.vanel@c-s.fr>
Mélina Vanel <melina.vanel@csgroup.eu> mvanel <mélina vanel>
Mélina Vanel <melina.vanel@csgroup.eu> mvanel <mvanel@po18485lx>
Nick LaFarge <nick.lafarge@jhuapl.edu> Nick LaFarge <Nick.LaFarge@jhuapl.edu>
Nicolas Bernard <nicolas.bernard@csgroup.eu> nicola bernard <nicolas.bernard@c-s.fr>
Nicolas Bernard <nicolas.bernard@csgroup.eu> nicolas bernard <nicolas.bernard@c-s.fr>
Nicolas Fialton <nicolas.fialton@csgroup.eu> nfialton <nfialton@pc16565lx>
Pascal Parraud <pascal@orekit.org> pparraud <pascal@orekit.org>
Pascal Parraud <pascal@orekit.org> pascal parraud <pascal.parraud@csgroup.eu>
Pascal Parraud <pascal@orekit.org> pascal parraud <pascal.parraud@c-s.fr>
Petrus Hyvönen <petrus.hyvonen@sscspace.com> petrus hyvönen <petrus.hyvonen@sscspace.com>
Piotr Listkiewicz <piotr.listkiewicz@gmail.com> liscju <piotr.listkiewicz@gmail.com>
Rafael Ayala <rafael.ayala@oist.jp> rafael-ayala <rafael.ayala@oist.jp>
Raphaël Fermé <raphael.ferme@csgroup.eu> ferme raphael <rferme@idsi0.si.c-s.fr>
Raphaël Fermé <raphael.ferme@csgroup.eu> raphael ferme <rferme@csgroup.eu>
Raphaël Fermé <raphael.ferme@csgroup.eu> raphael ferme <rferme@c-s.fr>
Romain di Costanzo <romain.di-costanzo@csgroup.eu> romain di costanzo <romain.di-costanzo@c-s.fr>
Romain di Costanzo <romain.di-costanzo@csgroup.eu> rdicosta <romain.di-costanzo@c-s.fr>
Romain Serra <serra.romain@gmail.com> serrof <serra.romain@gmail.com>
Romaric Her <romaric.her@csgroup.eu> romaric her <romaric.her@c-s.fr>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> Sébastien Dinot <sebastien.dinot@csgroup.eu>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> sebastien dinot <sebastien.dinot@csgroup.eu>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> sébastien dinot <sebastien.dinot@c-s.fr>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> sebastien dinot <sebastien.dinot@c-s.fr>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> sebastien dinot <sebastien.dinot@free.fr>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> sebastien dinot <sebastien@dinot.net>
Sébastien Dinot <sebastien.dinot@cs-soprasteria.com> sebastien dinot <sebastien@palabritudes.net>
Shipping Enjoyer <ezp33940@zwoho.com> user <user@user.user>
Shiva Iyer <shiva.iyer@gmail.com> shiva_iyer <shiva.iyer@gmail.com>
Steven Ports <steven.ports@csgroup.eu> steven ports <steven.ports@c-s.fr>
Theo Nguyen <theo.nguyen@fr.airbus.com> theo nguyen <theo.nguyen@fr.airbus.com>
Thierry Ceolin <thierry.ceolin@csgroup.eu> thierry ceolin <thierry.ceolin@c-s.fr>
Thierry Ceolin <thierry.ceolin@csgroup.eu> thierry ceolin <thierry@orekit.org>
Thomas Neidhart <thomas.neidhart@gmail.com> thomas neidhart <thomas.neidhart@gmail.com>
Thomas Paulet <thomas.paulet@csgroup.eu> thomas paulet <thomas.paulet@c-s.fr>
Thomas Paulet <thomas.paulet@csgroup.eu> root <root@po18481lx>
Véronique Pommier-Maurussane <vero@orekit.org> véronique pommier-maurussane <vero@orekit.org>
Vincent Cucchietti <vincent.cucchietti@cs-soprasteria.com> Vincent CUCCHIETTI <vincent.cucchietti@cs-soprasteria.com>
Vincent Cucchietti <vincent.cucchietti@cs-soprasteria.com> pallepup <vincent.cucchietti@gmail.com>
Vincent Cucchietti <vincent.cucchietti@cs-soprasteria.com> vcucchie <vincent.cucchietti@csgroup.eu>
Vincent Cucchietti <vincent.cucchietti@cs-soprasteria.com> vincent cucchietti <vincent.cucchietti@csgroup.eu>
Vincent Mouraux <vincent.mouraux@csgroup.eu> vincent mouraux <vincent.mouraux@c-s.fr>
Vyom Yadav <jackhammervyom@gmail.com> vyom-yadav <jackhammervyom@gmail.com>
Vyom Yadav <jackhammervyom@gmail.com> vyomyadav <jackhammervyom@gmail.com>
William Desprats <william.desprats@csgroup.eu> william desprats <william.desprats@c-s.fr>
Yannick Jeandroz <yannick.jeandroz@airbus.com> yannick jeandroz <yannick.jeandroz@airbus.com>
Yannick Jeandroz <yannick.jeandroz@airbus.com> yannick jeandroz <yannick.jeandroz@gmail.com>
Orekit can be built from source either using maven 3,
ant or eclipse.
Building with Maven 3:
- Maven 3 can be downloaded here:
http://maven.apache.org/download.html
- If you are behind a proxy (which is a traditional
setting in a corporate environment), then you need
to configure maven to use it. This is explained
in the maven documentation here:
http://maven.apache.org/guides/mini/guide-proxies.html
- run "mvn package" to automatically download all
the required dependencies listed in the pom.xml file
and create a file named target/orekit-x.y.jar where
x.y is the version number
Building with Ant:
- Ant can be downloaded here:
http://ant.apache.org/bindownload.cgi
- If you are behind a proxy (which is a traditional
setting in a corporate environment), then you need
to configure ant to use it. This is explained
in the ant documentation here:
http://ant.apache.org/manual/proxy.html
- either download the Hipparchus jars from the Hipparchus project and
put it in a lib directory just below the top-level orekit
directory or edit the ant build.xml file to edit the get-hipparchus
target that can automatically download Hipparchus
- run "ant jar" to create a file named
build/orekit-x.y.jar where x.y is the version number
Building with Eclipse:
- Eclipse can be downloaded here:
http://www.eclipse.org/downloads/
- using your operating system tools, unpack the source distribution directly
inside your Eclipse workspace
- using Eclipse, import the project by selecting in the top level "File" menu
the entry "Import..."
- in the wizard that should appear, select "Maven -> Existing Maven Projects"
- select the folder you just created in your workspace by unpacking the
source distribution. The "pom.xml" file describing the project will be
automatically selected. Click finish
# Contributing
This project is documented through a static site generated by Maven.
Contributing information is described in the
[contributing guidelines](src/site/markdown/contributing.md)
inside the Maven site.
pipeline {
agent any
tools {
maven 'mvn-default'
jdk 'openjdk-8'
}
options {
timeout(time: 60, unit: 'MINUTES')
}
stages {
stage('Cleaning') {
steps {
sh 'git clean -fdx'
}
}
stage('Build') {
steps {
script {
if ( env.BRANCH_NAME ==~ /^release-[.0-9]+$/ ) {
sh 'mvn verify assembly:single'
}
else {
sh 'mvn verify site'
}
}
}
}
}
post {
always {
archiveArtifacts artifacts: 'target/*.jar', fingerprint: true
script {
if ( env.BRANCH_NAME ==~ /^release-[.0-9]+$/ ) {
archiveArtifacts artifacts: 'target/*.zip', fingerprint: true
}
}
junit testResults: '**/target/surefire-reports/*.xml'
jacoco execPattern:'target/**.exec', classPattern: '**/classes', sourcePattern: '**/src/main/java'
recordIssues enabledForFailure: true, tools: [mavenConsole(), java(), javaDoc()]
recordIssues enabledForFailure: true, tool: checkStyle()
recordIssues enabledForFailure: true, tool: spotBugs()
}
}
}
OREKIT OREKIT
Copyright 2002-2019 CS Systèmes d'Information Copyright 2002-2025 CS GROUP
This product includes software developed by This product includes software developed by
CS Systèmes d'Information (http://www.c-s.fr/) CS GROUP (https://www.csgroup.eu/)
This product includes software developed by This product includes software developed by
Bruce R. Bowman (HQ AFSPC, Space Analysis Division) Bruce R. Bowman (HQ AFSPC, Space Analysis Division)
This product includes software developed by
Luc Maisonobe (Thales Alenia Space)
This product includes software translated from original work developed by This product includes software translated from original work developed by
David A. Vallado, Paul Crawford, Richard Hujsak, T.S. Kelso David A. Vallado, Paul Crawford, Richard Hujsak, T.S. Kelso
......
...@@ -8,13 +8,20 @@ ...@@ -8,13 +8,20 @@
in Java. Orekit is designed to be easily used in very different contexts, from in Java. Orekit is designed to be easily used in very different contexts, from
quick studies up to critical operations. As a library, Orekit provides basic quick studies up to critical operations. As a library, Orekit provides basic
elements (orbits, dates, attitude, frames, ...) and various algorithms to elements (orbits, dates, attitude, frames, ...) and various algorithms to
handle them (conversions, propagations, pointing, ...). handle them (conversions, propagations, pointing, events detection, orbit determination ...).
[![](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)
[![](https://sonar.orekit.org/api/project_badges/measure?project=orekit%3Aorekit&metric=alert_status)](https://sonar.orekit.org/dashboard?id=orekit%3Aorekit)
[![](https://sonar.orekit.org/api/project_badges/measure?project=orekit%3Aorekit&metric=coverage)](https://sonar.orekit.org/dashboard?id=orekit%3Aorekit)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7249096.svg)](https://doi.org/10.5281/zenodo.7249096)
## Download ## Download
### Official releases ### Official releases
[Official Orekit releases](https://gitlab.orekit.org/orekit/orekit/releases) [Official Orekit releases](https://gitlab.orekit.org/orekit/orekit/-/releases)
are available on our [Gitlab instance](https://gitlab.orekit.org/). They are are available on our [Gitlab instance](https://gitlab.orekit.org/). They are
also available in the also available in the
[Maven repository](https://mvnrepository.com/artifact/org.orekit/orekit). [Maven repository](https://mvnrepository.com/artifact/org.orekit/orekit).
...@@ -33,29 +40,23 @@ __Note:__ Our official repository is ...@@ -33,29 +40,23 @@ __Note:__ Our official repository is
## Documentation ## Documentation
Project overview, architecture and development, detailed features list, Project overview, architecture and development, detailed features list,
tutorials, Javadoc and a lot of other information is available on the Javadoc and a lot of other information is available on the
[Maven site](https://www.orekit.org/site-orekit-development/). [Maven site](https://www.orekit.org/site-orekit-development/).
## Getting help ## Getting help
The main communication channel is our [forum](https://forum.orekit.org/). You The main communication channel is our [forum](https://forum.orekit.org/). You
can report bugs and suggest new features in our can report bugs and suggest new features in our
[issues tracking system](https://gitlab.orekit.org/orekit/orekit/issues). [issues tracking system](https://gitlab.orekit.org/orekit/orekit/issues). When
reporting security issues check the "This issue is confidential" box.
## Contributing ## Contributing
Orekit exists thanks to the contribution of Orekit exists thanks to the contribution of
[many people](https://gitlab.orekit.org/orekit/orekit/graphs/develop). [many people](https://gitlab.orekit.org/orekit/orekit/graphs/develop).
Please take a look at our
If you are interested in participating in the development effort, subscribe to [contributing guidelines](src/site/markdown/contributing.md) if you're
the [forum](https://forum.orekit.org/) and step up to discuss it. The larger interested in helping!
the community is, the better Orekit will be. The main rule is that everything
intended to be included in Orekit core must be distributed under the Apache
License, version 2.0 (you will be asked to sign a contributor license
agreement).
More information is available in our
[development guidelines](https://www.orekit.org/site-orekit-development/guidelines.html).
## Building ## Building
...@@ -64,20 +65,21 @@ Eclipse is provided in [building.md](src/site/markdown/building.md) file. ...@@ -64,20 +65,21 @@ Eclipse is provided in [building.md](src/site/markdown/building.md) file.
## Dependencies ## Dependencies
Orekit relies on the following free software, all released under business Orekit relies on the following
friendly free licenses. [FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) libraries,
all released under business friendly FOSS licenses.
### Compile-time/run-time dependencies ### Compile-time/run-time dependencies
* [Hipparchus](https://hipparchus.org/) from the Hipparchus project released * [Hipparchus](https://hipparchus.org/), a mathematics library released under
under the Apache Software License, version 2 the Apache License, version 2.0.
### Test-time dependencies ### Test-time dependencies
* [JUnit 4](http://www.junit.org/) from Erich Gamma and Kent Beck released * [JUnit 5](http://www.junit.org/), a widely used unit test framework released
under the Eclipse Public License, version 1.0 under the Eclipse Public License, version 1.0.
* [Mockito](https://site.mockito.org/) from Szczepan Faber and others, * [Mockito](https://site.mockito.org/), a mocking framework for unit tests,
released under MIT license. released under MIT license.
More detailed information is available in the More detailed information is available in the
...@@ -85,6 +87,6 @@ More detailed information is available in the ...@@ -85,6 +87,6 @@ More detailed information is available in the
## License ## License
Orekit is licensed by [CS Systèmes d'Information](https://www.c-s.fr/) under Orekit is licensed by [CS GROUP](https://www.c-s.fr/) under
the [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html). the [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html).
A copy of this license is provided in the [LICENSE.txt](LICENSE.txt) file. A copy of this license is provided in the [LICENSE.txt](LICENSE.txt) file.
<?xml version="1.0" encoding="UTF-8"?>
<project name="orekit" default="jar" basedir=".">
<property name="project.version" value="9.4-SNAPSHOT" />
<property name="src.dir" location="src" />
<property name="main.src.dir" value="${src.dir}/main/java" />
<property name="main.resources.dir" value="${src.dir}/main/resources" />
<property name="test.src.dir" value="${src.dir}/test/java" />
<property name="test.resources.dir" value="${src.dir}/test/resources" />
<property name="build.dir" location="build" />
<property name="main.classes.dir" value="${build.dir}/classes" />
<property name="test.classes.dir" value="${build.dir}/test-classes" />
<property name="javadoc.dir" value="${build.dir}/javadoc" />
<property name="tests.reports" value="${build.dir}/test-reports" />
<property name="lib.dir" location="lib" />
<property name="hipparchus.version" value="1.4" />
<property name="hipparchus.core.jar" value="hipparchus-core-${hipparchus.version}.jar" />
<property name="hipparchus.geometry.jar" value="hipparchus-geometry-${hipparchus.version}.jar" />
<property name="hipparchus.ode.jar" value="hipparchus-ode-${hipparchus.version}.jar" />
<property name="hipparchus.fitting.jar" value="hipparchus-fitting-${hipparchus.version}.jar" />
<property name="hipparchus.optim.jar" value="hipparchus-optim-${hipparchus.version}.jar" />
<property name="hipparchus.filtering.jar" value="hipparchus-filtering-${hipparchus.version}.jar" />
<property name="hipparchus.stat.jar" value="hipparchus-stat-${hipparchus.version}.jar" />
<property name="hipparchus.maven.path" value="org/hipparchus" />
<property name="junit.version" value="4.12" />
<property name="junit.jar" value="junit-${junit.version}.jar" />
<property name="junit.maven.path" value="junit/junit" />
<property name="hamcrest.version" value="1.3" />
<property name="hamcrest.core.jar" value="hamcrest-core-${hamcrest.version}.jar" />
<property name="hamcrest.maven.path" value="org/hamcrest" />
<property name="maven.repository" value="http://repo1.maven.org/maven2" />
<property name="copyright" value="2002-2019 CS Syst&#232;mes d&#039;Information" />
<available file="${lib.dir}/${hipparchus.core.jar}" property="libs.present" />
<target name="clean" description="Clean the build directory">
<delete dir="${build.dir}"/>
</target>
<target name="clean-lib" description="Clean the lib directory">
<delete dir="${lib.dir}"/>
</target>
<target name="clean-all" depends="clean,clean-lib"
description="Clean the build and lib directories">
</target>
<target name="get-libs" description="Get libraries" unless="libs.present">
<!-- if you need to set up a proxy to download artifacts,
uncomment and edit the following setproxy task -->
<!-- <setproxy proxyhost="my-proxy.my-company.com" proxyport="8080"
proxyUser="username" proxyPassword="password"/> -->
<mkdir dir="${lib.dir}"/>
<get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-core/${hipparchus.version}/${hipparchus.core.jar}"
dest="${lib.dir}/${hipparchus.core.jar}"/>
<get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-geometry/${hipparchus.version}/${hipparchus.geometry.jar}"
dest="${lib.dir}/${hipparchus.geometry.jar}"/>
<get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-ode/${hipparchus.version}/${hipparchus.ode.jar}"
dest="${lib.dir}/${hipparchus.ode.jar}"/>
<get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-fitting/${hipparchus.version}/${hipparchus.fitting.jar}"
dest="${lib.dir}/${hipparchus.fitting.jar}"/>
<get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-optim/${hipparchus.version}/${hipparchus.optim.jar}"
dest="${lib.dir}/${hipparchus.optim.jar}"/>
<get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-filtering/${hipparchus.version}/${hipparchus.filtering.jar}"
dest="${lib.dir}/${hipparchus.filtering.jar}"/>
<get src="${maven.repository}/${hipparchus.maven.path}/hipparchus-stat/${hipparchus.version}/${hipparchus.stat.jar}"
dest="${lib.dir}/${hipparchus.stat.jar}"/>
<get src="${maven.repository}/${junit.maven.path}/${junit.version}/${junit.jar}"
dest="${lib.dir}/${junit.jar}"/>
<get src="${maven.repository}/${hamcrest.maven.path}/hamcrest-core/${hamcrest.version}/${hamcrest.core.jar}"
dest="${lib.dir}/${hamcrest.core.jar}"/>
</target>
<target name="compile" depends="get-libs" description="Compile the code">
<mkdir dir="${main.classes.dir}"/>
<javac srcdir="${main.src.dir}" destdir="${main.classes.dir}" includeantruntime="false"
classpath="${lib.dir}/${hipparchus.core.jar}:${lib.dir}/${hipparchus.geometry.jar}:${lib.dir}/${hipparchus.ode.jar}:${lib.dir}/${hipparchus.fitting.jar}:${lib.dir}/${hipparchus.optim.jar}:${lib.dir}/${hipparchus.stat.jar}"
deprecation="true" target="1.8" source="1.8">
</javac>
<copy todir="${main.classes.dir}">
<fileset dir="${main.resources.dir}"/>
</copy>
</target>
<target name="compile-tests" depends="compile" description="Compile the test code" >
<mkdir dir="${test.classes.dir}"/>
<javac srcdir="${test.src.dir}" destdir="${test.classes.dir}" includeantruntime="false"
classpath="${main.classes.dir}:${lib.dir}/${junit.jar}:${lib.dir}/${hamcrest.core.jar}:${lib.dir}/${hipparchus.core.jar}:${lib.dir}/${hipparchus.geometry.jar}:${lib.dir}/${hipparchus.ode.jar}:${lib.dir}/${hipparchus.fitting.jar}:${lib.dir}/${hipparchus.optim.jar}:${lib.dir}/${hipparchus.filtering.jar}:${lib.dir}/${hipparchus.stat.jar}"
deprecation="true" target="1.8" source="1.8">
</javac>
<copy todir="${test.classes.dir}">
<fileset dir="${test.resources.dir}"/>
</copy>
</target>
<target name="test" depends="compile-tests" description="Run the tests">
<mkdir dir="${tests.reports}"/>
<junit fork="yes" haltonerror="yes" haltonfailure="yes">
<classpath>
<pathelement location="${main.classes.dir}" />
<pathelement location="${test.classes.dir}" />
<pathelement location="${lib.dir}/${hipparchus.core.jar}" />
<pathelement location="${lib.dir}/${hipparchus.geometry.jar}" />
<pathelement location="${lib.dir}/${hipparchus.ode.jar}" />
<pathelement location="${lib.dir}/${hipparchus.fitting.jar}" />
<pathelement location="${lib.dir}/${hipparchus.optim.jar}" />
<pathelement location="${lib.dir}/${hipparchus.stat.jar}" />
<pathelement location="${lib.dir}/${junit.jar}" />
<pathelement location="${lib.dir}/${hamcrest.core.jar}" />
</classpath>
<formatter type="plain" usefile="false"/>
<batchtest todir="${tests.reports}">
<fileset dir="${test.src.dir}">
<include name="**/*Test.java"/>
<exclude name="**/*Abstract*.java"/>
</fileset>
</batchtest>
</junit>
</target>
<target name="jar" depends="compile,test" description="create the jar file">
<jar jarfile="${build.dir}/${ant.project.name}-${project.version}.jar"
basedir="${main.classes.dir}"/>
</target>
<target name="javadoc" description="create javadoc">
<javadoc sourcepath="${main.src.dir}" destdir="${javadoc.dir}"
overview="${main.src.dir}/org/orekit/overview.html"
encoding="UTF-8" version="true" use="true" author="true"
charset="UTF-8" docencoding="UTF-8"
bottom="&lt;i&gt;Copyright &#169; ${copyright}. All Rights Reserved.&lt;/i&gt;">
<link href="http://docs.oracle.com/javase/8/docs/api/"/>
<link href="https://www.hipparchus.org/apidocs/"/>
</javadoc>
</target>
</project>
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" <!DOCTYPE module PUBLIC
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd"> "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker"> <module name="Checker">
<module name="TreeWalker"> <module name="TreeWalker">
...@@ -34,8 +35,6 @@ ...@@ -34,8 +35,6 @@
<property name="caseIndent" value="4"/> <property name="caseIndent" value="4"/>
</module> </module>
<module name="JavadocMethod"> <module name="JavadocMethod">
<property name="allowUndeclaredRTE" value="true"/>
<property name="allowMissingPropertyJavadoc" value="true"/>
<property name="validateThrows" value="false"/> <property name="validateThrows" value="false"/>
</module> </module>
<module name="JavadocStyle"/> <module name="JavadocStyle"/>
...@@ -43,10 +42,14 @@ ...@@ -43,10 +42,14 @@
<module name="MissingSwitchDefault"/> <module name="MissingSwitchDefault"/>
<module name="ModifierOrder"/> <module name="ModifierOrder"/>
<module name="MultipleStringLiterals"> <module name="MultipleStringLiterals">
<property name="ignoreStringsRegexp" value='^(("")|("."))$'/> <property name="ignoreStringsRegexp" value='^(("")|(".")|("\\\\"))$'/>
</module> </module>
<module name="MultipleVariableDeclarations"/> <module name="MultipleVariableDeclarations"/>
<module name="NoWhitespaceAfter"/> <module name="NoWhitespaceAfter">
<property name="tokens"
value="AT, INC, DEC, UNARY_MINUS, UNARY_PLUS, BNOT, LNOT, DOT,
ARRAY_DECLARATOR, INDEX_OP"/>
</module>
<module name="NoWhitespaceBefore"/> <module name="NoWhitespaceBefore"/>
<module name="OperatorWrap"> <module name="OperatorWrap">
<property name="option" value="eol"/> <property name="option" value="eol"/>
...@@ -56,13 +59,22 @@ ...@@ -56,13 +59,22 @@
<module name="TodoComment"> <module name="TodoComment">
<property name="severity" value="warning"/> <property name="severity" value="warning"/>
</module> </module>
<module name="UnnecessaryParentheses"/> <module name="UnnecessaryParentheses">
<property name="tokens"
value="EXPR, IDENT, NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG, STRING_LITERAL,
LITERAL_NULL, LITERAL_FALSE, LITERAL_TRUE, ASSIGN, BAND_ASSIGN, BOR_ASSIGN,
BSR_ASSIGN, BXOR_ASSIGN, DIV_ASSIGN, MINUS_ASSIGN, MOD_ASSIGN, PLUS_ASSIGN,
SL_ASSIGN, SR_ASSIGN, STAR_ASSIGN, LAMBDA, TEXT_BLOCK_LITERAL_BEGIN, LAND,
LOR, LITERAL_INSTANCEOF, GT, LT, GE, LE, EQUAL, NOT_EQUAL, UNARY_MINUS,
UNARY_PLUS, INC, DEC, LNOT, BNOT, POST_INC, POST_DEC"/>
</module>
<module name="NeedBraces"/>
<module name="UnusedImports"/> <module name="UnusedImports"/>
<module name="VisibilityModifier"/> <module name="VisibilityModifier"/>
<module name="WhitespaceAfter"/> <module name="WhitespaceAfter"/>
<module name="WhitespaceAround"> <module name="WhitespaceAround">
<property name="tokens" <property name="tokens"
value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, value="ASSIGN, ARRAY_INIT, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN,
BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT,
LAND, LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LAND, LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
...@@ -70,9 +82,21 @@ ...@@ -70,9 +82,21 @@
MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS,
PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR,
SR_ASSIGN, STAR, STAR_ASSIGN"/> SR_ASSIGN, STAR, STAR_ASSIGN"/>
</module>
<!-- Avoid Python keywords in method, class, interface and enum names -->
<module name="IllegalIdentifierName">
<property name="format"
value="(?i)^(?!(del|elif|except|from|global|in|is|lambda|nonlocal|not|or|pass|raise|with|yield)$).+$"/>
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF, METHOD_DEF, ENUM_DEF"/>
<message key="name.invalidPattern" value="Name ''{0}'' is not allowed."/>
</module>
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="CHECKSTYLE\: stop ConstantName"/>
<property name="onCommentFormat" value="CHECKSTYLE\: resume ConstantName"/>
<property name="checkFormat" value="ConstantName"/>
</module> </module>
<module name="SuppressionCommentFilter"> <module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="CHECKSTYLE\: stop JavadocVariable check"/> <property name="offCommentFormat" value="CHECKSTYLE\: stop JavadocVariable check"/>
<property name="onCommentFormat" value="CHECKSTYLE\: resume JavadocVariable check"/> <property name="onCommentFormat" value="CHECKSTYLE\: resume JavadocVariable check"/>
<property name="checkFormat" value="JavadocVariable"/> <property name="checkFormat" value="JavadocVariable"/>
</module> </module>
...@@ -104,7 +128,10 @@ ...@@ -104,7 +128,10 @@
</module> </module>
<module name="RegexpHeader"> <module name="RegexpHeader">
<property name="headerFile" value="${checkstyle.header.file}" /> <property name="headerFile" value="${checkstyle.header.file}" />
<property name="fileExtensions" value="java" />
</module> </module>
<module name="FileTabCharacter"/> <module name="FileTabCharacter"/>
<module name="NewlineAtEndOfFile"/> <module name="NewlineAtEndOfFile">
<property name="lineSeparator" value="LF_CR_CRLF"/>
</module>
</module> </module>
This diff is collapsed.
This diff is collapsed.
...@@ -11,8 +11,9 @@ ...@@ -11,8 +11,9 @@
<Or> <Or>
<Class name="~.*\.DSSTPropagator\$MeanPlusShortPeriodicMapper\$DataTransferObject$" /> <Class name="~.*\.DSSTPropagator\$MeanPlusShortPeriodicMapper\$DataTransferObject$" />
<Class name="~.*\.IntegratedEphemeris\$DataTransferObject$" /> <Class name="~.*\.IntegratedEphemeris\$DataTransferObject$" />
<Class name="~.*\.KeplerianPropagator\$DataTransferObject$" /> <Class name="~.*\.KeplerianPropagator\$DataTransferObject$" />
<Class name="~.*\.EcksteinHechlerPropagator\$DataTransferObject$" /> <Class name="~.*\.EcksteinHechlerPropagator\$DataTransferObject$" />
<Class name="~.*\.SigmaEigenvectorsCovarianceKey$" />
</Or> </Or>
<Bug pattern="SE_BAD_FIELD" /> <Bug pattern="SE_BAD_FIELD" />
</Match> </Match>
...@@ -25,6 +26,9 @@ ...@@ -25,6 +26,9 @@
<Class name="~.*\.KeplerianPropagator$" /> <Class name="~.*\.KeplerianPropagator$" />
<Class name="~.*\.EcksteinHechlerPropagator$" /> <Class name="~.*\.EcksteinHechlerPropagator$" />
<Class name="~.*\.Ephemeris$" /> <Class name="~.*\.Ephemeris$" />
<Class name="~.*\.GlobalIonosphereMapModel$" />
<Class name="~.*\.MarshallSolarActivityFutureEstimation$" />
<Class name="~.*\.CssiSpaceWeatherData$" />
<Class name="~.*\.IntegratedEphemeris$" /> <Class name="~.*\.IntegratedEphemeris$" />
<Class name="~.*\.DSSTPropagator\$MeanPlusShortPeriodicMapper$" /> <Class name="~.*\.DSSTPropagator\$MeanPlusShortPeriodicMapper$" />
<Class name="~.*\.NumericalPropagator\$OsculatingMapper$" /> <Class name="~.*\.NumericalPropagator\$OsculatingMapper$" />
...@@ -50,7 +54,8 @@ ...@@ -50,7 +54,8 @@
<Class name="~.*\.TIRFProvider$" /> <Class name="~.*\.TIRFProvider$" />
<Class name="~.*\.CartesianOrbit$" /> <Class name="~.*\.CartesianOrbit$" />
<Class name="~.*\.EstimatedEarthFrameProvider$" /> <Class name="~.*\.EstimatedEarthFrameProvider$" />
<Class name="~.*\.GPSDate$" /> <Class name="~.*\.GNSSDate$" />
<Class name="~.*\.GLONASSDate$" />
<Class name="~.*\.PositionAngleDetector$" /> <Class name="~.*\.PositionAngleDetector$" />
</Or> </Or>
<Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED" /> <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED" />
...@@ -58,6 +63,15 @@ ...@@ -58,6 +63,15 @@
<!-- the following are in fact false positives from SpotBugs --> <!-- the following are in fact false positives from SpotBugs -->
<!-- their occurrence depends on the java compiler used --> <!-- their occurrence depends on the java compiler used -->
<Match>
<Class name="~.*\.NeQuickItu$"/>
<Method name="stec" />
<Or>
<Local name="h1000" />
<Local name="h2000" />
</Or>
<Bug pattern="DLS_DEAD_LOCAL_STORE" />
</Match>
<Match> <Match>
<Class name="~.*\.EcksteinHechlerPropagator$"/> <Class name="~.*\.EcksteinHechlerPropagator$"/>
<Method name="computeMeanParameters" /> <Method name="computeMeanParameters" />
...@@ -135,11 +149,49 @@ ...@@ -135,11 +149,49 @@
<Class name="~.*\.TurnAroundRangeTroposphericDelayModifier$"/> <Class name="~.*\.TurnAroundRangeTroposphericDelayModifier$"/>
<Method name="modify" /> <Method name="modify" />
<Or> <Or>
<Local name="masterDjac" /> <Local name="primaryDjac" />
<Local name="slaveDjac" /> <Local name="secondaryDjac" />
</Or> </Or>
<Bug pattern="DLS_DEAD_LOCAL_STORE" /> <Bug pattern="DLS_DEAD_LOCAL_STORE" />
</Match> </Match>
<Match>
<Class name="~.*\.IERSConventions\$1"/>
<Method name="getEOPTidalCorrection" />
<Or>
<Local name="deciMilliS" />
</Or>
<Bug pattern="DLS_DEAD_LOCAL_STORE" />
</Match>
<Match>
<Class name="~.*\.IERSConventions\$1"/>
<Method name="getXYSpXY2Function" />
<Or>
<Local name="fYCosOm" />
<Local name="fYCos2FDOm" />
</Or>
<Bug pattern="DLS_DEAD_LOCAL_STORE" />
</Match>
<Match>
<Class name="~.*\.IERSConventions\$1"/>
<Method name="getXYSpXY2Function" />
<Or>
<Local name="fST" />
<Local name="fST3" />
</Or>
<Bug pattern="DLS_DEAD_LOCAL_STORE" />
</Match>
<Match>
<Class name="~.*\.IERSConventions\$2"/>
<Method name="getGASTFunction" />
<Local name="microAS" />
<Bug pattern="DLS_DEAD_LOCAL_STORE" />
</Match>
<Match>
<Class name="~.*\.IERSConventions\$2"/>
<Method name="getSolidPoleTide" />
<Local name="xp0" />
<Bug pattern="DLS_DEAD_LOCAL_STORE" />
</Match>
<!-- the approximate constants do belong to the models --> <!-- the approximate constants do belong to the models -->
<Match> <Match>
...@@ -150,6 +202,14 @@ ...@@ -150,6 +202,14 @@
<Class name="~.*\.SEMParser$"/> <Class name="~.*\.SEMParser$"/>
<Bug pattern="CNT_ROUGH_CONSTANT_VALUE" /> <Bug pattern="CNT_ROUGH_CONSTANT_VALUE" />
</Match> </Match>
<Match>
<Class name="~.*\.Units$"/>
<Bug pattern="CNT_ROUGH_CONSTANT_VALUE" />
</Match>
<Match>
<Class name="~.*\.IonosphereKlobucharMessage$"/>
<Bug pattern="CNT_ROUGH_CONSTANT_VALUE" />
</Match>
<!-- The following is a false positive from SpotBugs --> <!-- The following is a false positive from SpotBugs -->
<Match> <Match>
...@@ -181,22 +241,12 @@ ...@@ -181,22 +241,12 @@
<!-- The following internal representation exposure are intentional, <!-- The following internal representation exposure are intentional,
They are used to pass data back and forth between classes They are used to pass data back and forth between classes
--> -->
<Match>
<Class name="org.orekit.propagation.integration.AdditionalStateData"/>
<Method name ="getAdditionalState" params="" returns="double[]" />
<Bug pattern="EI_EXPOSE_REP" />
</Match>
<Match>
<Class name="org.orekit.propagation.integration.AdditionalStateData"/>
<Method name ="getAdditionalStateDot" params="" returns="double[]" />
<Bug pattern="EI_EXPOSE_REP" />
</Match>
<Match> <Match>
<Class name="org.orekit.forces.gravity.HolmesFeatherstoneAttractionModel$GradientHessian"/> <Class name="org.orekit.forces.gravity.HolmesFeatherstoneAttractionModel$GradientHessian"/>
<Or> <Or>
<Method name="getGradient" params="" returns="double[]" /> <Method name="getGradient" params="" returns="double[]" />
<Method name="getHessian" params="" returns="double[][]" /> <Method name="getHessian" params="" returns="double[][]" />
</Or> </Or>
<Bug pattern="EI_EXPOSE_REP" /> <Bug pattern="EI_EXPOSE_REP" />
</Match> </Match>
<Match> <Match>
...@@ -204,7 +254,7 @@ ...@@ -204,7 +254,7 @@
<Method name="&lt;init>" params="double[],double[][]" returns="void" /> <Method name="&lt;init>" params="double[],double[][]" returns="void" />
<Bug pattern="EI_EXPOSE_REP2" /> <Bug pattern="EI_EXPOSE_REP2" />
</Match> </Match>
<!-- the following is an intended switch fall-through in the SP3Parser --> <!-- the following is an intended switch fall-through in the SP3Parser -->
<Match> <Match>
<Class name="~.*\.SP3Parser$"/> <Class name="~.*\.SP3Parser$"/>
...@@ -236,4 +286,23 @@ ...@@ -236,4 +286,23 @@
<Bug pattern="NP_NULL_PARAM_DEREF" /> <Bug pattern="NP_NULL_PARAM_DEREF" />
</Match> </Match>
<!-- the following is a false positive as this should never happen
with files embedded in Orekit -->
<Match>
<Class name="~.*\.IERSConventions$"/>
<Method name="loadLoveNumbers" />
<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
</Match>
<!-- The following is intentional.
At the construction, the mapper is not set yet However, if the attitude provider is
changed afterwards, it must be changed in the mapper too
-->
<Match>
<Class name="~.*\.IntegratedEphemeris$"/>
<Method name="setAttitudeProvider" />
<Bug pattern="UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR" />
</Match>
</FindBugsFilter> </FindBugsFilter>
This diff is collapsed.
' Copyright 2002-2019 CS Systèmes d'Information ' Copyright 2002-2025 CS GROUP
' Licensed to CS Systèmes d'Information (CS) under one or more ' Licensed to CS GROUP (CS) under one or more
' contributor license agreements. See the NOTICE file distributed with ' contributor license agreements. See the NOTICE file distributed with
' this work for additional information regarding copyright ownership. ' this work for additional information regarding copyright ownership.
' CS licenses this file to You under the Apache License, Version 2.0 ' CS licenses this file to You under the Apache License, Version 2.0
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
skinparam NoteFontColor #691616 skinparam NoteFontColor #691616
skinparam ClassFontSize 11 skinparam ClassFontSize 11
skinparam PackageFontSize 12 skinparam PackageFontSize 12
skinparam linetype ortho
package org.orekit #ECEBD8 { package org.orekit #ECEBD8 {
...@@ -41,11 +42,10 @@ ...@@ -41,11 +42,10 @@
package attitude #DDEBD8 { package attitude #DDEBD8 {
class Attitude { class Attitude {
+Vector3D estimateSpin +Attitude withReferenceFrame
+Attitude withReferenceFrame +Frame getReferenceFrame
+Frame getReferenceFrame
+Rotation getRotation +Rotation getRotation
+Vector3D getSpin +Vector3D getSpin
} }
class AttitudesSequence { class AttitudesSequence {
...@@ -66,21 +66,28 @@ ...@@ -66,21 +66,28 @@
+AttitudeProvider getUnderlyingAttitudeProvider() +AttitudeProvider getUnderlyingAttitudeProvider()
} }
class SpinStabilized {
+AttitudeProvider getNonRotatingLaw()
}
abstract class GroundPointing { abstract class GroundPointing {
#Vector3D getTargetPoint #Vector3D getTargetPoint
#PVCoordinates getTargetPV #PVCoordinates getTargetPV
} }
abstract class GroundPointingWrapper { interface TargetProvider {
+Attitude getBaseState +getTargetDirection()
+Rotation getCompensation
} }
Frame <-up- "1" Attitude enum PredefinedTarget {
+SUN,
+EARTH,
+NADIR,
+NORTH,
+EAST,
+VELOCITY,
+MOMENTUM
}
class GroundPointTarget
Frame <-up- "1" Attitude
Attitude <-up- AttitudeProvider : create Attitude <-up- AttitudeProvider : create
TimeStamped <|.. Attitude TimeStamped <|.. Attitude
TimeShiftable_T_ <|.. Attitude TimeShiftable_T_ <|.. Attitude
...@@ -91,21 +98,26 @@ ...@@ -91,21 +98,26 @@
AttitudesSequence "*" o--> AttitudeProvider AttitudesSequence "*" o--> AttitudeProvider
AttitudeProvider <--* "1" LofOffsetPointing AttitudeProvider <--* "1" LofOffsetPointing
AttitudeProvider <|.. GroundPointing AttitudeProvider <|.. GroundPointing
GroundPointing <|-- GroundPointingWrapper
LofOffsetPointing --|> GroundPointing LofOffsetPointing --|> GroundPointing
PredefinedTarget ..|> TargetProvider
GroundPointTarget ..|> TargetProvider
AttitudeProviderModifier <|-- SpinStabilized AttitudeProviderModifier <|-- SpinStabilized
AttitudeProviderModifier <|-- GroundPointingWrapper AttitudeProviderModifier <|-- GroundPointingWrapper
GroundPointing <|-- BodyCenterPointing GroundPointing <|-- BodyCenterPointing
GroundPointing <|-- NadirPointing GroundPointing <|-- NadirPointing
GroundPointing <|-- TargetPointing GroundPointing <|-- TargetPointing
GroundPointingWrapper "1" *--> GroundPointing GroundPointing <|-- YawCompensation
GroundPointingWrapper <|-- YawCompensation AttitudeProviderModifier <|-- YawCompensation
GroundPointingWrapper <|-- YawSteering GroundPointing <|-- YawSteering
AttitudeProviderModifier <|-- YawSteering
AttitudeProvider <|-- CelestialBodyPointed AttitudeProvider <|-- CelestialBodyPointed
AttitudeProvider <|-- InertialProvider AttitudeProvider <|-- FrameAlignedProvider
AttitudeProvider <|-- LofOffset AttitudeProvider <|-- LofOffset
AttitudeProvider <|-- TabulatedProvider AttitudeProvider <|-- TabulatedProvider
AttitudeProvider <|-- TorqueFree
AlignedAndConstrained --|> AttitudeProvider
TargetProvider "2" <--* AlignedAndConstrained
} }
......
' Copyright 2002-2019 CS Systèmes d'Information ' Copyright 2002-2025 CS GROUP
' Licensed to CS Systèmes d'Information (CS) under one or more ' Licensed to CS GROUP (CS) under one or more
' contributor license agreements. See the NOTICE file distributed with ' contributor license agreements. See the NOTICE file distributed with
' this work for additional information regarding copyright ownership. ' this work for additional information regarding copyright ownership.
' CS licenses this file to You under the Apache License, Version 2.0 ' CS licenses this file to You under the Apache License, Version 2.0
...@@ -25,31 +25,38 @@ ...@@ -25,31 +25,38 @@
skinparam NoteFontColor #691616 skinparam NoteFontColor #691616
skinparam ClassFontSize 11 skinparam ClassFontSize 11
skinparam PackageFontSize 12 skinparam PackageFontSize 12
skinparam linetype ortho
package org.orekit #ECEBD8 { package org.orekit #ECEBD8 {
package utils #DDEBD8 { package utils #DDEBD8 {
interface PVCoordinatesProvider { interface PVCoordinatesProvider {
+PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) +PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame)
+Vector3D getPosition(AbsoluteDate date, Frame frame)
} }
} }
package propagation #DDEBD8 { package propagation #DDEBD8 {
interface Propagator { interface Propagator {
+int getMode() +AttitudeProvider getDefaultLaw(Frames frames)
+void setSlaveMode() +StepHandlerMultiplexer getMultiplexer()
+void setMasterMode(double h, OrekitFixedStepHandler handler) +void clearStepHandlers()
+void setMasterMode(OrekitStepHandler handler) +void setStepHandler(double h, OrekitFixedStepHandler handler)
+void setEphemerisMode() +void setStepHandler(OrekitStepHandler handler)
+BoundedPropagator getGeneratedEphemeris() +EphemerisGenerator getEphemerisGenerator()
+SpacecraftState getInitialState() +SpacecraftState getInitialState()
+void resetInitialState(SpacecraftState state) +void resetInitialState(SpacecraftState state)
+void addAdditionalDataProvider(AdditionalDataProvider<?> additionalDataProvider)
+List<AdditionalDataProvider<?>> getAdditionalDataProviders()
+boolean isAdditionalDataManaged(String name)
+String[] getManagedAdditionalData()
+void addEventDetector(EventDetector detector) +void addEventDetector(EventDetector detector)
+Collection<EventDetector> getEventsDetectors() +Collection<EventDetector> getEventDetectors()
+void clearEventsDetectors() +void clearEventsDetectors()
+AttitudeProvider getAttitudeProvider() +AttitudeProvider getAttitudeProvider()
+void setAttitudeProvider(AttitudeProvider attitudeProvider) +void setAttitudeProvider(AttitudeProvider attitudeProvider)
+Frame getFrame() +Frame getFrame()
+MatricesHarvester setupMatricesComputation(String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
+SpacecraftState propagate(AbsoluteDate target) +SpacecraftState propagate(AbsoluteDate target)
+SpacecraftState propagate(AbsoluteDate start, AbsoluteDate target) +SpacecraftState propagate(AbsoluteDate start, AbsoluteDate target)
} }
...@@ -66,37 +73,40 @@ ...@@ -66,37 +73,40 @@
Propagator <|.. AbstractPropagator Propagator <|.. AbstractPropagator
Propagator <|.. BoundedPropagator Propagator <|.. BoundedPropagator
package analytical #ECEBD8 { package analytical #CBDBC8 {
abstract class AbstractAnalyticalPropagator { abstract class AbstractAnalyticalPropagator {
+PVCoordinatesProvider getPvProvider() +PVCoordinatesProvider getPvProvider()
+void addAdditionalStateProvider(AdditionalStateProvider additionalStateProvider)
} }
AbstractPropagator <|-- AbstractAnalyticalPropagator AbstractPropagator <|-- AbstractAnalyticalPropagator
AbstractAnalyticalPropagator <|-- AdapterPropagator AbstractAnalyticalPropagator <|-- AdapterPropagator
AbstractAnalyticalPropagator <|-- BrouwerLyddanePropagator
AbstractAnalyticalPropagator <|-- EcksteinHechlerPropagator AbstractAnalyticalPropagator <|-- EcksteinHechlerPropagator
AbstractAnalyticalPropagator <|-- GLONASSAnalyticalPropagator
AbstractAnalyticalPropagator <|-- KeplerianPropagator AbstractAnalyticalPropagator <|-- KeplerianPropagator
AbstractAnalyticalPropagator <|-- Ephemeris AbstractAnalyticalPropagator <|-- Ephemeris
BoundedPropagator <|.. Ephemeris BoundedPropagator <|.. Ephemeris
package tle #DDEBD8 { package tle #CCCCC7 {
AbstractAnalyticalPropagator <|-- TLEPropagator AbstractAnalyticalPropagator <|-- TLEPropagator
} }
package gnss #DDEBD8 { package gnss #CCCCC7 {
AbstractAnalyticalPropagator <|-- GPSPropagator AbstractAnalyticalPropagator <|-- GNSSPropagator
}
package intelsat #CCCCC7 {
AbstractAnalyticalPropagator <|-- IntelsatElevenElementsPropagator
} }
} }
package integration #ECEBD8 { package integration #CBDBC8 {
abstract class AbstractIntegratedPropagator { abstract class AbstractIntegratedPropagator {
+void setIntegrator(FirstOrderIntegrator integrator) +void setIntegrator(FirstOrderIntegrator integrator)
+void addAdditionalEquations(AdditionalEquations addEqu)
+void setInitialAdditionalState(String name, double[] addState)
} }
BoundedPropagator <|.. IntegratedEphemeris BoundedPropagator <|.. IntegratedEphemeris
...@@ -106,16 +116,17 @@ ...@@ -106,16 +116,17 @@
} }
package semianalytical #ECEBD8 { package semianalytical #CBDBC8 {
package dsst #DDEBD8 { package dsst #CCCCC7 {
DSSTPropagator --|> AbstractIntegratedPropagator DSSTPropagator --|> AbstractIntegratedPropagator
} }
} }
package numerical #ECEBD8 { package numerical #CBDBC8 {
NumericalPropagator --|> AbstractIntegratedPropagator NumericalPropagator --|> AbstractIntegratedPropagator
GLONASSNumericalPropagator --|> AbstractIntegratedPropagator
} }
} }
......