Commit 5e9a21ba authored by Bryan Cazabonne's avatar Bryan Cazabonne
Browse files

Merge branch 'develop' into ThomasP/orekit-issue-668

parents aafb651b 24761fd8
......@@ -50,5 +50,5 @@ src/*/resources/*/*/unx*.405 -text
src/*/resources/*/unx*.406 -text
src/*/resources/*/*/unx*.406 -text
src/*/resources/inpop/*.dat -text
src/*/resources/gnss/ntrip/*.dat -text
stages:
- verify
- deploy
- verify
- visualize
- deploy
default:
# Default image
......@@ -12,19 +13,29 @@ default:
- .m2/repository
variables:
# This will supress 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.
# 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.
# 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})"
verify:
stage: verify
script:
- mvn $MAVEN_CLI_OPTS verify site
- mvn $MAVEN_CLI_OPTS sonar:sonar -Dsonar.login=${SONAR_TOKEN} -Dsonar.branch.name=${CI_COMMIT_REF_NAME}
- mvn $MAVEN_CLI_OPTS checkstyle:check verify site
- test -z "$SONAR_TOKEN" || mvn $MAVEN_CLI_OPTS sonar:sonar
-Dsonar.login=${SONAR_TOKEN}
-Dsonar.branch.name=${CI_COMMIT_REF_NAME}
-Dsonar.projectKey="$SONAR_PROJECT_KEY"
-Dsonar.projectName="$SONAR_PROJECT_NAME"
artifacts:
paths:
- target/*.jar
......@@ -33,9 +44,41 @@ verify:
junit:
- target/surefire-reports/*.xml
# On main branches (develop, release-*, master)
# the produced artifacts are deployed on the Nexus of the project
# (https://packages.orekit.org/)
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.4
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:
cobertura: target/site/cobertura.xml
coverage: '/Total.*?([0-9]{1,3})%/'
# On main branches (develop, release-*, master) the produced artifacts are
# deployed on the Nexus of the project (https://packages.orekit.org/)
deploy:artifacts:
stage: deploy
script:
......@@ -48,31 +91,31 @@ deploy:artifacts:
- /^release-[.0-9]+$/@orekit/orekit
- master@orekit/orekit
deploy:site:
stage: deploy
before_script:
##
## Create the SSH directory and give it the right permissions
##
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
# Create the SSH directory and give it the right permissions
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo "$SSH_SECRET_KEY" > ~/.ssh/id_website
- chmod 600 ~/.ssh/id_website
##
## We're using tr to fix line endings which makes ed25519 keys work
## without extra base64 encoding.
## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
##
- echo "$SSH_SECRET_KEY" > ~/.ssh/id_website
- chmod 700 ~/.ssh/id_website
##
## Add known hosts
##
- cp $SSH_KNOWN_HOSTS ~/.ssh/known_hosts
# Add known hosts
- cp $SSH_KNOWN_HOSTS ~/.ssh/known_hosts
script:
- mvn $MAVEN_CLI_OPTS site:deploy
- mvn $MAVEN_CLI_OPTS site:deploy
only:
- master@orekit/orekit
- /^release-[.0-9]+$/@orekit/orekit
- develop@orekit/orekit
- master@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
needs:
- job: deploy:artifacts
artifacts: false
trigger: evanward1/orekit-performance
only:
- develop@orekit/orekit
pipeline {
agent any
environment {
MAVEN_CLI_OPTS = "-s .CI/maven-settings.xml"
}
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 site'
}
else if ( env.BRANCH_NAME ==~ /^develop$/ ) {
sh 'mvn install site'
}
else {
sh 'mvn verify site'
}
}
}
}
}
post {
always {
archiveArtifacts artifacts: 'target/*.jar', fingerprint: true
junit testResults: '**/target/surefire-reports/*.xml'
jacoco execPattern: 'target/**.exec',
classPattern: '**/classes',
sourcePattern: '**/src/main/java',
exclusionPattern: 'fr/cs/examples/**/*.class',
changeBuildStatus: true,
minimumBranchCoverage: '80', maximumBranchCoverage: '85',
minimumClassCoverage: '95', maximumClassCoverage: '100',
minimumComplexityCoverage: '80', maximumComplexityCoverage: '85',
minimumInstructionCoverage: '85', maximumInstructionCoverage: '90',
minimumLineCoverage: '85', maximumLineCoverage: '90',
minimumMethodCoverage: '90', maximumMethodCoverage: '95'
recordIssues enabledForFailure: true, tools: [mavenConsole(), java(), javaDoc()]
recordIssues enabledForFailure: true, tool: checkStyle()
recordIssues enabledForFailure: true, tool: spotBugs()
}
}
}
OREKIT
Copyright 2002-2020 CS GROUP
Copyright 2002-2021 CS GROUP
This product includes software developed by
CS GROUP (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)
......
......@@ -8,10 +8,11 @@
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 ...).
[![](https://sonar.orekit.org/api/project_badges/measure?project=org.orekit%3Aorekit&metric=alert_status)](https://sonar.orekit.org/dashboard?id=org.orekit%3Aorekit)
[![](https://sonar.orekit.org/api/project_badges/measure?project=org.orekit%3Aorekit&metric=coverage)](https://sonar.orekit.org/dashboard?id=org.orekit%3Aorekit)
[![](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=org.orekit%3Aorekit)
[![](https://sonar.orekit.org/api/project_badges/measure?project=orekit%3Aorekit&metric=coverage)](https://sonar.orekit.org/dashboard?id=org.orekit%3Aorekit)
## Download
......
......@@ -2,7 +2,7 @@
<project name="orekit" default="jar" basedir=".">
<property name="project.version" value="10.2" />
<property name="project.version" value="11.0-SNAPSHOT" />
<property name="src.dir" location="src" />
<property name="main.src.dir" value="${src.dir}/main/java" />
......@@ -18,7 +18,7 @@
<property name="lib.dir" location="lib" />
<property name="hipparchus.version" value="1.7" />
<property name="hipparchus.version" value="2.0-SNAPSHOT" />
<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" />
......@@ -27,10 +27,10 @@
<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.version" value="4.13.1" />
<property name="junit.jar" value="junit-${junit.version}.jar" />
<property name="junit.maven.path" value="junit/junit" />
<property name="mockito.version" value="3.3.3" />
<property name="mockito.version" value="3.6.28" />
<property name="mockito.jar" value="mockito-core-${mockito.version}.jar" />
<property name="mockito.maven.path" value="org/mockito/mockito-core" />
<property name="bytebuddy.version" value="1.9.10" />
......@@ -46,7 +46,7 @@
<property name="hamcrest.maven.path" value="org/hamcrest" />
<property name="maven.repository" value="https://repo1.maven.org/maven2" />
<property name="copyright" value="2002-2020 CS GROUP" />
<property name="copyright" value="2002-2021 CS GROUP" />
<available file="${lib.dir}/${hipparchus.core.jar}" property="libs.present" />
......
<?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">
......
......@@ -5,7 +5,7 @@
<groupId>org.orekit</groupId>
<artifactId>orekit</artifactId>
<packaging>jar</packaging>
<version>10.3-SNAPSHOT</version>
<version>11.0-SNAPSHOT</version>
<name>ORbit Extrapolation KIT</name>
<url>http://www.orekit.org/</url>
......@@ -20,12 +20,12 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<orekit.spotbugs-maven-plugin.version>4.0.4</orekit.spotbugs-maven-plugin.version>
<orekit.jacoco-maven-plugin.version>0.8.5</orekit.jacoco-maven-plugin.version>
<orekit.maven-bundle-plugin.version>4.2.1</orekit.maven-bundle-plugin.version>
<orekit.spotbugs-maven-plugin.version>4.1.4</orekit.spotbugs-maven-plugin.version>
<orekit.jacoco-maven-plugin.version>0.8.6</orekit.jacoco-maven-plugin.version>
<orekit.maven-bundle-plugin.version>5.1.1</orekit.maven-bundle-plugin.version>
<orekit.maven-changes-plugin.version>2.12.1</orekit.maven-changes-plugin.version>
<orekit.maven-checkstyle-plugin.version>3.1.1</orekit.maven-checkstyle-plugin.version>
<orekit.checkstyle.version>8.33</orekit.checkstyle.version>
<orekit.maven-checkstyle-plugin.version>3.1.2</orekit.maven-checkstyle-plugin.version>
<orekit.checkstyle.version>8.41</orekit.checkstyle.version>
<orekit.maven-clean-plugin.version>3.1.0</orekit.maven-clean-plugin.version>
<orekit.maven-compiler-plugin.version>3.8.1</orekit.maven-compiler-plugin.version>
<orekit.maven-javadoc-plugin.version>3.2.0</orekit.maven-javadoc-plugin.version>
......@@ -33,8 +33,8 @@
<orekit.maven-jxr-plugin.version>3.0.0</orekit.maven-jxr-plugin.version>
<orekit.plantuml-maven-plugin.version>1.2</orekit.plantuml-maven-plugin.version>
<orekit.plantuml.version>1.2020.14</orekit.plantuml.version>
<orekit.maven-project-info-reports-plugin.version>3.1.0</orekit.maven-project-info-reports-plugin.version>
<orekit.maven-resources-plugin.version>3.1.0</orekit.maven-resources-plugin.version>
<orekit.maven-project-info-reports-plugin.version>3.1.1</orekit.maven-project-info-reports-plugin.version>
<orekit.maven-resources-plugin.version>3.2.0</orekit.maven-resources-plugin.version>
<orekit.maven-site-plugin.version>3.9.1</orekit.maven-site-plugin.version>
<orekit.maven-wagon-ssh-plugin.version>3.4.1</orekit.maven-wagon-ssh-plugin.version>
<orekit.maven-source-plugin.version>3.2.1</orekit.maven-source-plugin.version>
......@@ -42,7 +42,7 @@
https://issues.apache.org/jira/browse/SUREFIRE-1628 -->
<orekit.maven-surefire-plugin.version>2.22.2</orekit.maven-surefire-plugin.version>
<orekit.maven-surefire-report-plugin.version>3.0.0-M5</orekit.maven-surefire-report-plugin.version>
<orekit.mockito-core.version>3.3.3</orekit.mockito-core.version>
<orekit.mockito-core.version>3.6.28</orekit.mockito-core.version>
<orekit.jgit.buildnumber.version>1.2.10</orekit.jgit.buildnumber.version>
<orekit.build-helper-maven-plugin.version>3.2.0</orekit.build-helper-maven-plugin.version>
<orekit.nexus-staging-maven-plugin.version>1.6.8</orekit.nexus-staging-maven-plugin.version>
......@@ -50,8 +50,8 @@
<orekit.maven-install-plugin.version>3.0.0-M1</orekit.maven-install-plugin.version>
<orekit.mathjax.config>&lt;script type=&quot;text/x-mathjax-config&quot;&gt;MathJax.Hub.Config({ TeX: { extensions: [&quot;autoload.js&quot;]}});&lt;/script&gt;</orekit.mathjax.config>
<orekit.mathjax.enable>&lt;script type=&quot;text/javascript&quot; src=&quot;https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_CHTML&quot;&gt;&lt;/script&gt;</orekit.mathjax.enable>
<orekit.hipparchus.version>1.7</orekit.hipparchus.version>
<orekit.junit.version>4.12</orekit.junit.version>
<orekit.hipparchus.version>2.0</orekit.hipparchus.version>
<orekit.junit.version>4.13.1</orekit.junit.version>
<orekit.compiler.source>1.8</orekit.compiler.source>
<orekit.compiler.target>1.8</orekit.compiler.target>
<orekit.implementation.build>${git.revision}; ${maven.build.timestamp}</orekit.implementation.build>
......@@ -203,6 +203,9 @@
<contributor>
<name>Lucian B&#259;rbulescu</name>
</contributor>
<contributor>
<name>Julie Bayard</name>
</contributor>
<contributor>
<name>Petre Bazavan</name>
</contributor>
......@@ -227,18 +230,36 @@
<contributor>
<name>&#201;douard Delente</name>
</contributor>
<contributor>
<name>Rapha&#235;l Ferm&#233;</name>
</contributor>
<contributor>
<name>Christine Fernandez-Martin</name>
</contributor>
<contributor>
<name>Mikael Fillastre</name>
</contributor>
<contributor>
<name>Andrew Goetz</name>
</contributor>
<contributor>
<name>Andrea Fiorentino</name>
</contributor>
<contributor>
<name>Romaric Her</name>
</contributor>
<contributor>
<name>James Housden</name>
</contributor>
<contributor>
<name>Shiva Iyer</name>
</contributor>
<contributor>
<name>Fran&#231;ois-Xavier Laffont</name>
</contributor>
<contributor>
<name>Anne-Laure Lugan</name>
</contributor>
<contributor>
<name>Lukas Matt</name>
</contributor>
......@@ -248,6 +269,9 @@
<contributor>
<name>Lars N&#230;sbye Christensen</name>
</contributor>
<contributor>
<name>Thomas Paulet</name>
</contributor>
<contributor>
<name>Steven Ports</name>
</contributor>
......@@ -261,28 +285,25 @@
<name>Mathieu Rom&#233;ro</name>
</contributor>
<contributor>
<name>Beatriz Salazar Garc&#237;a</name>
<name>Chiara Rusconi</name>
</contributor>
<contributor>
<name>Ioanna Stypsanelli</name>
<name>Mark Rutten</name>
</contributor>
<contributor>
<name>Michael Turner</name>
<name>Beatriz Salazar Garc&#237;a</name>
</contributor>
<contributor>
<name>Gabriele Serafini</name>
</contributor>
<contributor>
<name>Shiva Iyer</name>
</contributor>
<contributor>
<name>David Soulard</name>
</contributor>
<contributor>
<name>Mikael Fillastre</name>
<name>Ioanna Stypsanelli</name>
</contributor>
<contributor>
<name>Andrea Fiorentino</name>
<name>Michael Turner</name>
</contributor>
</contributors>
......
......@@ -139,8 +139,8 @@
<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>
......@@ -192,6 +192,10 @@
<Class name="~.*\.SEMParser$"/>
<Bug pattern="CNT_ROUGH_CONSTANT_VALUE" />
</Match>
<Match>
<Class name="~.*\.Units$"/>
<Bug pattern="CNT_ROUGH_CONSTANT_VALUE" />
</Match>
<!-- The following is a false positive from SpotBugs -->
<Match>
......
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2002-2020 CS GROUP
<!-- Copyright 2002-2021 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.
......@@ -20,10 +20,375 @@
<title>Orekit Changes</title>
</properties>
<body>
<release version="10.3" date="TBD" description="TBD">
<action dev="thomas" type="fix" issue="668">
<release version="11.0" date="TBD" description="TBD">
<action dev="thomas" type="fix" issue="668">
Added a new event detector for angular separation as seen from the spacecraft.
</action>
<action dev="maxime" type="fix" issue="829">
Fixed DataSourceTest.testFileName for Windows users.
</action>
<action dev="bryan" type="fix" issue="818">
Use observed solar flux instead of adjusted in DTM2000 model.
</action>
<action dev="evan" type="fix" issue="798">
Allow DSST event detection when propagating backwards.
</action>
<action dev="bryan" type="fix" issue="717" due-to="evan">
Fixed DSST orbit determination when propagating backwards.
</action>
<action dev="evan" type="remove" issue="586">
Remove InertialProvider.EME2000_ALIGNED, Propagator.DEFAULT_LAW. Use
InertialProvider.of(Frame).
</action>
<action dev="evan" type="update" issue="586">
Change default attitude provider to be aligned with propagation frame for all
analytic propagators and GLONASS propagator. Backward incompatible.
</action>
<action dev="evan" type="update" issue="586">
Improve performance of IntertialProvider(Frame)
</action>
<action dev="anne-laure" type="update" issue="797">
Add information if a detector failed during propagation
</action>
<action dev="bryan" type="fix" issue="788" due-to="luc">
Fixed missing call to setMuCreated() in OemParser.
</action>
<action dev="evan" type="update" issue="618">
Fix supportedNames matching in ClasspathCrawler. Backwards incompatible.
</action>
<action dev="bryan" type="fix" issue="828">
Fixed missing file types in SP3Parser.
</action>
<action dev="bryan" type="fix" issue="827">
Fixed time system used in SP3 files.
</action>
<action dev="evan" type="fix" issue="685">
Fix AnalyticalPropagator RESET_STATE when new state is null.
</action>
<action dev="bryan" type="fix" issue="803">
Fixed parsing of clock values in SP3 files.
</action>
<action dev="bryan" type="fix" issue="820">
TLE Jacobians are now calculated in cartesian elements.
</action>
<action dev="evan" type="update" issue="825">
Improve exception messages with two AbsoluteDates by including duration between
them.
</action>
<action dev="evan" type="update" issue="637" due-to="Piotr">
Add trailing "Z" to AbsoluteDate.toString() to indicate UTC.
Backwards incompatible.
</action>
<action dev="evan" type="update" issue="825">
In AbsoluteDate.toString() fallback to TAI when no leap seconds are loaded.
</action>
<action dev="evan" type="update" issue="591">
Fix TimeComponents.toString(): correct ISO 8601 with UTC offset, rounding issues.
Backwards incompatible.
</action>
<action dev="evan" type="update" issue="590">
Fix DateTimeComponents.toString(): correct ISO 8601, leap second, rounding issues.
Backwards incompatible.
</action>
<action dev="evan" type="update" issue="637" due-to="Piotr">
Fix AbsoluteDate.toString(timeZone) and toString(minutesFromUtc) to include the
UTC offset when it is zero.
</action>
<action dev="evan" type="add">
Add DateTimeComponents.toString(...) method with correct rounding for user
specified precision.
</action>
<action dev="bryan" type="update" issue="626">
Used a separate Comparator for sorting integer least square solutions.
</action>
<action dev="bryan" type="update" issue="799">
Used the field-specific value of π.
</action>
<action dev="evan" type="update" issue="830" due-to="skyrex">
Remove step size limitations in analytic propagators. Backwards incompatible.
</action>
<action dev="evan" type="fix">
Fix part of step passed to the step handler twice in analytic propagators with
event handlers.
</action>
<action dev="bryan" type="fix" issue="795" due-to="guylaine">
Fixed output of NRLMSISE00 for altitude at 32.5 km.
</action>
<action dev="luc" type="add" issue="821">
Added support for CCSDS TDM V2.0.
</action>
<action dev="luc" type="add" issue="819">
Allow data filtering upon loading to be used for explicit loading by applications.
</action>
<action dev="julie" type="add" issue="745">
Added sequential batch least squares estimator.
</action>
<action dev="luc" type="add" issue="814" due-to="Valerian">
Fixed additional states handling in ephemeris generated by analytical propagator.
</action>
<action dev="luc" type="add" issue="809">
Dropped master/slave/ephemeris generation propagation modes, replaced by a
versatile step handler multiplexer fulfilling all these needs
simultaneously during a single propagation run
</action>
<action dev="luc" type="add" issue="812">
Dropped master/slave terminology in turn-around and inter-satellite measurements.
</action>
<action dev="luc" type="add" issue="813">
Fixed derivatives with respect to secondary station in turn-around modifiers.
</action>
<action dev="luc" type="add" issue="811">
Allow on-the-fly add/remove/clean for step handlers.
</action>
<action dev="luc" type="add" issue="810">
Merged multiplexers for fixed steps and variable steps.
</action>
<action dev="luc" type="fix" issue="808">
Moved isLast argument in step handler handleStep method to a separate method.
</action>
<action dev="luc" type="fix" issue="807">
Fixed scheduling between calls to step handlers and events handlers.
</action>
<action dev="luc" type="fix" issue="806">
Added restrictStep method to FieldOrekitStepInterpolator interface.
</action>
<action dev="bryan" type="fix" issue="801">
Added getter for meteorological data used in CRD data block.
</action>
<action dev="bryan" type="fix" issue="796">
Fixed writing of line H2 in CPF file header.
</action>
<action dev="thomas" type="fix" issue="702">
Added possibility to take in account several bodies while computing SRP perturbation.
</action>
<action dev="bryan" type="update" issue="793">
Updated SP3File visibility to public.
</action>
<action dev="bryan" type="update" issue="784">
Updated architecture of GNSS orbit propagators.
</action>
<action dev="bryan" type="update" issue="782">
Updated error message of Orekit internal error exception.
</action>
<action dev="luc" type="add">
Added support for reading and writing CCSDS NDM composite messages.
</action>
<action dev="afossa" type="fix" issue="781">
Fixed parsing in buildLine2() method of FieldTLE.
</action>
<action dev="luc" type="fix" issue="776">
Fixed associativity in units parsing.
</action>
<action dev="bryan" type="update" issue="773">
TimeStampedFieldAngularCoordinates now implements FieldTimeStamped.
</action>