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 (5793)
Showing with 4726 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
src/*/resources/*/*/unx*.405 -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/gnss/ntrip/*.dat -text
......@@ -2,8 +2,13 @@
.project
.settings
.checkstyle
.idea
bin
target
/build
/lib
*.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>
Evan Ward <evan.ward@nrl.navy.mil> Evan Ward <evan.ward@nrl.navy.mil>
Evan Ward <evan.ward@nrl.navy.mil> Evan Ward <nomail@nowhere.org>
Fabien Maussion <fabien@orekit.org> Fabien Maussion <fabien@orekit.org>
Francesco Rocca <francesco.rocca@telespazio.com> Francesco Rocca <>
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> Luc Maisonobe <luc@orekit.org>
Luc Maisonobe <luc@orekit.org> maisonobe <maisonobe@users.noreply.github.com>
Pascal Parraud <pascal@orekit.org> Pascal Parraud <pascal@orekit.org>
Romain di Costanzo <romain.di-costanzo@c-s.fr> rdicosta <romain.di-costanzo@c-s.fr>
Steven <sljkwsk@yahoo.com> Steven <sljkwsk@yahoo.com>
Thierry Ceolin <thierry.ceolin@c-s.fr> Thierry Ceolin <thierry@orekit.org>
Thierry Ceolin <thierry.ceolin@c-s.fr> thierry ceolin <thierry@orekit.org>
Thierry Ceolin <thierry.ceolin@c-s.fr> thierry ceolin <thierry.ceolin@c-s.fr>
Thomas Neidhart <thomas.neidhart@gmail.com> Thomas Neidhart <thomas.neidhart@gmail.com>
Véronique Pommier-Maurussane <vero@orekit.org> Véronique Pommier-Maurussane <vero@orekit.org>
Nicolas Bernard <nicolas.bernard@c-s.fr> Nicola Bernard <nicolas.bernard@c-s.fr>
Romain di Costanzo <romain.di-costanzo@c-s.fr> Romain Di Costanzo <romain.di-costanzo@c-s.fr>
Joris Olympio <joris.olympio@c-s.fr> jolympio <joris.olympio@c-s.fr>
Piotr Listkiewicz <piotr.listkiewicz@gmail.com> liscju <piotr.listkiewicz@gmail.com>
Albert Alcarraz García <albert.alcarraz-garcia@csgroup.eu> albert alcarraz garcía <albert.alcarraz-garcia@c-s.fr>
Alexandr Puzeyev <puzeyev.a@gmail.com> alexandr <puzeyev.a@gmail.com>
Andrea Antolino <andrea.antolino@csgroup.eu> andrea antolino <andrea.antolino@c-s.fr>
Andrew Goetz <andrew@goetz.space> andrew goetz <andrew.s.goetz@lmco.com>
Anne-Laure Lugan <anne-laure.lugan@airbus.com> anne-laure lugan <anne-laure.lugan@airbus.com>
Anne-Laure Lugan <anne-laure.lugan@airbus.com> anne-laure lugan <anne-laure.lugan@fr.airbus.com>
Bruno Revelin <bruno.revelin@csgroup.eu> bruno revelin <bruno.revelin@c-s.fr>
Bryan Cazabonne <bryan.cazabonne@gmail.com> bryan cazabonne <bryan.cazabonne@csgroup.eu>
Bryan Cazabonne <bryan.cazabonne@gmail.com> bryan cazabonne <bryan.cazabonne@c-s.fr>
Bryan Cazabonne <bryan.cazabonne@gmail.com> bryan <bryan.cazabonne@c-s.com>
Chiara Rusconi <chiara.rusconi@csgroup.eu> chiara rusconi <chiara.rusconi@csgroup.eu>
Chiara Rusconi <chiara.rusconi@csgroup.eu> crusconi <chiara.rusconi@csgroup.eu>
David Gondelach <davidgondelach@gmail.com> David Gondelach <davidgondelach@gmail.com>
David Soulard <david.soulard@csgroup.eu> david soulard <david.soulard@c-s.fr>
Dorian Gegout <dorian.gegout@fr.airbus.com> dorian gegout <dorian.gegout@fr.airbus.com>
Dylan Gautreau <dylan.gautreau@csgroup.eu> dylan gautreau <dylan.gautreau@c-s.fr>
Evan Ward <evan.ward@nrl.navy.mil> Evan Ward <evan.m.ward3.civ@us.navy.mil>
Evan Ward <evan.ward@nrl.navy.mil> evan ward <evan.ward@nrl.navy.mil>
Evan Ward <evan.ward@nrl.navy.mil> evan ward <nomail@nowhere.org>
Francesco Rocca <francesco.rocca@telespazio.com> francesco rocca <>
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
Copyright 2002-2019 CS Systèmes d'Information
Copyright 2002-2025 CS GROUP
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
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
David A. Vallado, Paul Crawford, Richard Hujsak, T.S. Kelso
......
......@@ -8,13 +8,20 @@
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
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
### 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
also available in the
[Maven repository](https://mvnrepository.com/artifact/org.orekit/orekit).
......@@ -33,29 +40,23 @@ __Note:__ Our official repository is
## Documentation
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/).
## Getting help
The main communication channel is our [forum](https://forum.orekit.org/). You
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
Orekit exists thanks to the contribution of
[many people](https://gitlab.orekit.org/orekit/orekit/graphs/develop).
If you are interested in participating in the development effort, subscribe to
the [forum](https://forum.orekit.org/) and step up to discuss it. The larger
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).
Please take a look at our
[contributing guidelines](src/site/markdown/contributing.md) if you're
interested in helping!
## Building
......@@ -64,20 +65,21 @@ Eclipse is provided in [building.md](src/site/markdown/building.md) file.
## Dependencies
Orekit relies on the following free software, all released under business
friendly free licenses.
Orekit relies on the following
[FOSS](https://en.wikipedia.org/wiki/Free_and_open-source_software) libraries,
all released under business friendly FOSS licenses.
### Compile-time/run-time dependencies
* [Hipparchus](https://hipparchus.org/) from the Hipparchus project released
under the Apache Software License, version 2
* [Hipparchus](https://hipparchus.org/), a mathematics library released under
the Apache License, version 2.0.
### Test-time dependencies
* [JUnit 4](http://www.junit.org/) from Erich Gamma and Kent Beck released
under the Eclipse Public License, version 1.0
* [JUnit 5](http://www.junit.org/), a widely used unit test framework released
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.
More detailed information is available in the
......@@ -85,6 +87,6 @@ More detailed information is available in the
## 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).
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"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="TreeWalker">
......@@ -34,8 +35,6 @@
<property name="caseIndent" value="4"/>
</module>
<module name="JavadocMethod">
<property name="allowUndeclaredRTE" value="true"/>
<property name="allowMissingPropertyJavadoc" value="true"/>
<property name="validateThrows" value="false"/>
</module>
<module name="JavadocStyle"/>
......@@ -43,10 +42,14 @@
<module name="MissingSwitchDefault"/>
<module name="ModifierOrder"/>
<module name="MultipleStringLiterals">
<property name="ignoreStringsRegexp" value='^(("")|("."))$'/>
<property name="ignoreStringsRegexp" value='^(("")|(".")|("\\\\"))$'/>
</module>
<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="OperatorWrap">
<property name="option" value="eol"/>
......@@ -56,13 +59,22 @@
<module name="TodoComment">
<property name="severity" value="warning"/>
</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="VisibilityModifier"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround">
<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,
LAND, LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
......@@ -70,9 +82,21 @@
MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS,
PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR,
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 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="checkFormat" value="JavadocVariable"/>
</module>
......@@ -104,7 +128,10 @@
</module>
<module name="RegexpHeader">
<property name="headerFile" value="${checkstyle.header.file}" />
<property name="fileExtensions" value="java" />
</module>
<module name="FileTabCharacter"/>
<module name="NewlineAtEndOfFile"/>
<module name="NewlineAtEndOfFile">
<property name="lineSeparator" value="LF_CR_CRLF"/>
</module>
</module>
This diff is collapsed.
This diff is collapsed.
......@@ -11,8 +11,9 @@
<Or>
<Class name="~.*\.DSSTPropagator\$MeanPlusShortPeriodicMapper\$DataTransferObject$" />
<Class name="~.*\.IntegratedEphemeris\$DataTransferObject$" />
<Class name="~.*\.KeplerianPropagator\$DataTransferObject$" />
<Class name="~.*\.EcksteinHechlerPropagator\$DataTransferObject$" />
<Class name="~.*\.KeplerianPropagator\$DataTransferObject$" />
<Class name="~.*\.EcksteinHechlerPropagator\$DataTransferObject$" />
<Class name="~.*\.SigmaEigenvectorsCovarianceKey$" />
</Or>
<Bug pattern="SE_BAD_FIELD" />
</Match>
......@@ -25,6 +26,9 @@
<Class name="~.*\.KeplerianPropagator$" />
<Class name="~.*\.EcksteinHechlerPropagator$" />
<Class name="~.*\.Ephemeris$" />
<Class name="~.*\.GlobalIonosphereMapModel$" />
<Class name="~.*\.MarshallSolarActivityFutureEstimation$" />
<Class name="~.*\.CssiSpaceWeatherData$" />
<Class name="~.*\.IntegratedEphemeris$" />
<Class name="~.*\.DSSTPropagator\$MeanPlusShortPeriodicMapper$" />
<Class name="~.*\.NumericalPropagator\$OsculatingMapper$" />
......@@ -50,7 +54,8 @@
<Class name="~.*\.TIRFProvider$" />
<Class name="~.*\.CartesianOrbit$" />
<Class name="~.*\.EstimatedEarthFrameProvider$" />
<Class name="~.*\.GPSDate$" />
<Class name="~.*\.GNSSDate$" />
<Class name="~.*\.GLONASSDate$" />
<Class name="~.*\.PositionAngleDetector$" />
</Or>
<Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED" />
......@@ -58,6 +63,15 @@
<!-- the following are in fact false positives from SpotBugs -->
<!-- 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>
<Class name="~.*\.EcksteinHechlerPropagator$"/>
<Method name="computeMeanParameters" />
......@@ -135,11 +149,49 @@
<Class name="~.*\.TurnAroundRangeTroposphericDelayModifier$"/>
<Method name="modify" />
<Or>
<Local name="masterDjac" />
<Local name="slaveDjac" />
<Local name="primaryDjac" />
<Local name="secondaryDjac" />
</Or>
<Bug pattern="DLS_DEAD_LOCAL_STORE" />
</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 -->
<Match>
......@@ -150,6 +202,14 @@
<Class name="~.*\.SEMParser$"/>
<Bug pattern="CNT_ROUGH_CONSTANT_VALUE" />
</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 -->
<Match>
......@@ -181,22 +241,12 @@
<!-- The following internal representation exposure are intentional,
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>
<Class name="org.orekit.forces.gravity.HolmesFeatherstoneAttractionModel$GradientHessian"/>
<Or>
<Method name="getGradient" params="" returns="double[]" />
<Method name="getHessian" params="" returns="double[][]" />
</Or>
</Or>
<Bug pattern="EI_EXPOSE_REP" />
</Match>
<Match>
......@@ -204,7 +254,7 @@
<Method name="&lt;init>" params="double[],double[][]" returns="void" />
<Bug pattern="EI_EXPOSE_REP2" />
</Match>
<!-- the following is an intended switch fall-through in the SP3Parser -->
<Match>
<Class name="~.*\.SP3Parser$"/>
......@@ -236,4 +286,23 @@
<Bug pattern="NP_NULL_PARAM_DEREF" />
</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>
This diff is collapsed.
' Copyright 2002-2019 CS Systèmes d'Information
' Licensed to CS Systèmes d'Information (CS) under one or more
' Copyright 2002-2025 CS GROUP
' Licensed to CS GROUP (CS) under one or more
' contributor license agreements. See the NOTICE file distributed with
' this work for additional information regarding copyright ownership.
' CS licenses this file to You under the Apache License, Version 2.0
......@@ -25,6 +25,7 @@
skinparam NoteFontColor #691616
skinparam ClassFontSize 11
skinparam PackageFontSize 12
skinparam linetype ortho
package org.orekit #ECEBD8 {
......@@ -41,11 +42,10 @@
package attitude #DDEBD8 {
class Attitude {
+Vector3D estimateSpin
+Attitude withReferenceFrame
+Frame getReferenceFrame
+Attitude withReferenceFrame
+Frame getReferenceFrame
+Rotation getRotation
+Vector3D getSpin
+Vector3D getSpin
}
class AttitudesSequence {
......@@ -66,21 +66,28 @@
+AttitudeProvider getUnderlyingAttitudeProvider()
}
class SpinStabilized {
+AttitudeProvider getNonRotatingLaw()
}
abstract class GroundPointing {
#Vector3D getTargetPoint
#PVCoordinates getTargetPV
}
abstract class GroundPointingWrapper {
+Attitude getBaseState
+Rotation getCompensation
interface TargetProvider {
+getTargetDirection()
}
Frame <-up- "1" Attitude
enum PredefinedTarget {
+SUN,
+EARTH,
+NADIR,
+NORTH,
+EAST,
+VELOCITY,
+MOMENTUM
}
class GroundPointTarget
Frame <-up- "1" Attitude
Attitude <-up- AttitudeProvider : create
TimeStamped <|.. Attitude
TimeShiftable_T_ <|.. Attitude
......@@ -91,21 +98,26 @@
AttitudesSequence "*" o--> AttitudeProvider
AttitudeProvider <--* "1" LofOffsetPointing
AttitudeProvider <|.. GroundPointing
GroundPointing <|-- GroundPointingWrapper
LofOffsetPointing --|> GroundPointing
PredefinedTarget ..|> TargetProvider
GroundPointTarget ..|> TargetProvider
AttitudeProviderModifier <|-- SpinStabilized
AttitudeProviderModifier <|-- GroundPointingWrapper
GroundPointing <|-- BodyCenterPointing
GroundPointing <|-- NadirPointing
GroundPointing <|-- TargetPointing
GroundPointingWrapper "1" *--> GroundPointing
GroundPointingWrapper <|-- YawCompensation
GroundPointingWrapper <|-- YawSteering
GroundPointing <|-- YawCompensation
AttitudeProviderModifier <|-- YawCompensation
GroundPointing <|-- YawSteering
AttitudeProviderModifier <|-- YawSteering
AttitudeProvider <|-- CelestialBodyPointed
AttitudeProvider <|-- InertialProvider
AttitudeProvider <|-- FrameAlignedProvider
AttitudeProvider <|-- LofOffset
AttitudeProvider <|-- TabulatedProvider
AttitudeProvider <|-- TorqueFree
AlignedAndConstrained --|> AttitudeProvider
TargetProvider "2" <--* AlignedAndConstrained
}
......
' Copyright 2002-2019 CS Systèmes d'Information
' Licensed to CS Systèmes d'Information (CS) under one or more
' Copyright 2002-2025 CS GROUP
' Licensed to CS GROUP (CS) under one or more
' contributor license agreements. See the NOTICE file distributed with
' this work for additional information regarding copyright ownership.
' CS licenses this file to You under the Apache License, Version 2.0
......@@ -25,31 +25,38 @@
skinparam NoteFontColor #691616
skinparam ClassFontSize 11
skinparam PackageFontSize 12
skinparam linetype ortho
package org.orekit #ECEBD8 {
package utils #DDEBD8 {
interface PVCoordinatesProvider {
+PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame)
+Vector3D getPosition(AbsoluteDate date, Frame frame)
}
}
package propagation #DDEBD8 {
interface Propagator {
+int getMode()
+void setSlaveMode()
+void setMasterMode(double h, OrekitFixedStepHandler handler)
+void setMasterMode(OrekitStepHandler handler)
+void setEphemerisMode()
+BoundedPropagator getGeneratedEphemeris()
+AttitudeProvider getDefaultLaw(Frames frames)
+StepHandlerMultiplexer getMultiplexer()
+void clearStepHandlers()
+void setStepHandler(double h, OrekitFixedStepHandler handler)
+void setStepHandler(OrekitStepHandler handler)
+EphemerisGenerator getEphemerisGenerator()
+SpacecraftState getInitialState()
+void resetInitialState(SpacecraftState state)
+void addAdditionalDataProvider(AdditionalDataProvider<?> additionalDataProvider)
+List<AdditionalDataProvider<?>> getAdditionalDataProviders()
+boolean isAdditionalDataManaged(String name)
+String[] getManagedAdditionalData()
+void addEventDetector(EventDetector detector)
+Collection<EventDetector> getEventsDetectors()
+Collection<EventDetector> getEventDetectors()
+void clearEventsDetectors()
+AttitudeProvider getAttitudeProvider()
+void setAttitudeProvider(AttitudeProvider attitudeProvider)
+Frame getFrame()
+MatricesHarvester setupMatricesComputation(String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
+SpacecraftState propagate(AbsoluteDate target)
+SpacecraftState propagate(AbsoluteDate start, AbsoluteDate target)
}
......@@ -66,37 +73,40 @@
Propagator <|.. AbstractPropagator
Propagator <|.. BoundedPropagator
package analytical #ECEBD8 {
package analytical #CBDBC8 {
abstract class AbstractAnalyticalPropagator {
+PVCoordinatesProvider getPvProvider()
+void addAdditionalStateProvider(AdditionalStateProvider additionalStateProvider)
}
AbstractPropagator <|-- AbstractAnalyticalPropagator
AbstractAnalyticalPropagator <|-- AdapterPropagator
AbstractAnalyticalPropagator <|-- BrouwerLyddanePropagator
AbstractAnalyticalPropagator <|-- EcksteinHechlerPropagator
AbstractAnalyticalPropagator <|-- GLONASSAnalyticalPropagator
AbstractAnalyticalPropagator <|-- KeplerianPropagator
AbstractAnalyticalPropagator <|-- Ephemeris
BoundedPropagator <|.. Ephemeris
package tle #DDEBD8 {
package tle #CCCCC7 {
AbstractAnalyticalPropagator <|-- TLEPropagator
}
package gnss #DDEBD8 {
AbstractAnalyticalPropagator <|-- GPSPropagator
package gnss #CCCCC7 {
AbstractAnalyticalPropagator <|-- GNSSPropagator
}
package intelsat #CCCCC7 {
AbstractAnalyticalPropagator <|-- IntelsatElevenElementsPropagator
}
}
package integration #ECEBD8 {
package integration #CBDBC8 {
abstract class AbstractIntegratedPropagator {
+void setIntegrator(FirstOrderIntegrator integrator)
+void addAdditionalEquations(AdditionalEquations addEqu)
+void setInitialAdditionalState(String name, double[] addState)
}
BoundedPropagator <|.. IntegratedEphemeris
......@@ -106,16 +116,17 @@
}
package semianalytical #ECEBD8 {
package semianalytical #CBDBC8 {
package dsst #DDEBD8 {
package dsst #CCCCC7 {
DSSTPropagator --|> AbstractIntegratedPropagator
}
}
package numerical #ECEBD8 {
package numerical #CBDBC8 {
NumericalPropagator --|> AbstractIntegratedPropagator
GLONASSNumericalPropagator --|> AbstractIntegratedPropagator
}
}
......