From 4af53ece8140c28334f90044630ba23713c68ad1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petrus=20Hyv=C3=B6nen?= <petrus.hyvonen@gmail.com>
Date: Mon, 5 Jul 2021 22:49:41 +0200
Subject: [PATCH] updates for orekit 10.3.1

---
 orekit-conda-recipe/bld.bat             | 35 ++++++++++-------
 orekit-conda-recipe/build.sh            | 52 ++++++++++++++++++++-----
 orekit-conda-recipe/meta.yaml           | 24 ++++++------
 orekit-conda-recipe/scripts/activate.sh | 10 +----
 python_files/pyhelpers.py               |  5 ++-
 python_files/test/AEMTest.py            |  2 +-
 python_files/test/TransformTest.py      |  4 +-
 7 files changed, 84 insertions(+), 48 deletions(-)

diff --git a/orekit-conda-recipe/bld.bat b/orekit-conda-recipe/bld.bat
index b345f3d..b8768ef 100644
--- a/orekit-conda-recipe/bld.bat
+++ b/orekit-conda-recipe/bld.bat
@@ -1,24 +1,28 @@
 :: adding compile parameters explicitly as relocation for conda does not seem to detect JCC  path under windows
-@set "JCC_INCLUDES=%JCC_JDK%\include;%JCC_JDK%\include\win32"
+@set "JCC_JDK=%PREFIX%\Library"
+@set "JCC_INCLUDES=%PREFIX%\Library\include\win32;%PREFIX%\Library\include"
 @set "JCC_CFLAGS=/EHsc;/D_CRT_SECURE_NO_WARNINGS"
-@set "JCC_LFLAGS=/DLL;/LIBPATH:%JCC_JDK%\lib;Ws2_32.lib;jvm.lib"
+@set "JCC_LFLAGS=/DLL;/LIBPATH:%PREFIX%\Library\lib;Ws2_32.lib;jvm.lib"
 @set "JCC_DEBUG_CFLAGS=/Od;/DDEBUG"
-@set "JCC_JAVAC=%JCC_JDK%\bin\javac.exe"
-@set "JCC_JAVADOC=%JCC_JDK%\bin\javadoc.exe"
+@set "JCC_JAVAC=%PREFIX%\Library\bin\javac.exe"
+@set "JCC_JAVADOC=%PREFIX%\Library\bin\javadoc.exe"
 
 "%PYTHON%" -m jcc  ^
 --use_full_names ^
 --python orekit ^
 --version %PKG_VERSION% ^
---jar %SRC_DIR%\orekit-10.1.jar ^
---jar %SRC_DIR%\hipparchus-core-1.6.jar ^
---jar %SRC_DIR%\hipparchus-filtering-1.6.jar ^
---jar %SRC_DIR%\hipparchus-fitting-1.6.jar ^
---jar %SRC_DIR%\hipparchus-geometry-1.6.jar ^
---jar %SRC_DIR%\hipparchus-ode-1.6.jar ^
---jar %SRC_DIR%\hipparchus-optim-1.6.jar ^
---jar %SRC_DIR%\hipparchus-stat-1.6.jar ^
---jar %SRC_DIR%\rugged-2.1.jar ^
+--jar %SRC_DIR%\orekit-10.3.1.jar ^
+--jar %SRC_DIR%\hipparchus-clustering-1.8.jar ^
+--jar %SRC_DIR%\hipparchus-core-1.8.jar ^
+--jar %SRC_DIR%\hipparchus-fft-1.8.jar ^
+--jar %SRC_DIR%\hipparchus-filtering-1.8.jar ^
+--jar %SRC_DIR%\hipparchus-fitting-1.8.jar ^
+--jar %SRC_DIR%\hipparchus-geometry-1.8.jar ^
+--jar %SRC_DIR%\hipparchus-migration-1.8.jar ^
+--jar %SRC_DIR%\hipparchus-ode-1.8.jar ^
+--jar %SRC_DIR%\hipparchus-optim-1.8.jar ^
+--jar %SRC_DIR%\hipparchus-stat-1.8.jar ^
+--jar %SRC_DIR%\rugged-2.2.jar ^
 --package java.io ^
 --package java.util ^
 --package java.text ^
@@ -53,6 +57,9 @@ java.util.TreeSet ^
 java.util.stream.Collectors ^
 java.util.stream.Stream ^
 java.util.stream.DoubleStream ^
+java.util.function.LongConsumer ^
+java.util.function.IntConsumer ^
+java.util.function.DoubleConsumer ^
 --module %SRC_DIR%\pyhelpers.py ^
 --reserved INFINITE ^
 --reserved ERROR ^
@@ -79,4 +86,4 @@ copy %RECIPE_DIR%\scripts\activate.bat %ACTIVATE_DIR%\orekit-activate.bat
 if errorlevel 1 exit 1
 
 copy %RECIPE_DIR%\scripts\deactivate.bat %DEACTIVATE_DIR%\orekit-deactivate.bat
-if errorlevel 1 exit 1
\ No newline at end of file
+if errorlevel 1 exit 1
diff --git a/orekit-conda-recipe/build.sh b/orekit-conda-recipe/build.sh
index b9b4f40..d8edab0 100644
--- a/orekit-conda-recipe/build.sh
+++ b/orekit-conda-recipe/build.sh
@@ -1,18 +1,47 @@
 #!/bin/bash
 
+if [ "$(uname)" == "Darwin" ]
+then
+  export JCC_JDK=${PREFIX}
+  export JCC_ARGSEP=";"
+  export JCC_INCLUDES="${PREFIX}/include;${PREFIX}/include/darwin"
+  export JCC_LFLAGS="-v;-L${PREFIX}/jre/lib;-ljava;-L${PREFIX}/jre/lib/server;-ljvm;-Wl,-rpath;-Wl,${PREFIX}/jre/lib;-Wl,-rpath;-Wl,${PREFIX}/jre/lib/server;-mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
+	export JCC_CFLAGS="-fno-strict-aliasing;-Wno-write-strings;-Qunused-arguments;-mmacosx-version-min=10.9;-std=c++11;-stdlib=libc++"
+  export JCC_DEBUG_CFLAGS="-O0;-g;-DDEBUG"
+  export JCC_JAVAC="javac;-source;1.8;-target;1.8"
+  export JCC_JAVADOC="javadoc"
+
+else
+  # GNU/Linux recipe
+  export JCC_JDK=${PREFIX}
+  export JCC_ARGSEP=";"
+	export JCC_LFLAGS="-v;-Wl,-v;-L${PREFIX}/jre/lib/amd64;-ljava;-L${PREFIX}/jre/lib/amd64/server;-ljvm;-lverify;-Wl,-rpath=${PREFIX}/jre/lib/amd64:${PREFIX}/jre/lib/amd64/server"
+  export JCC_INCLUDES="${PREFIX}/include;${PREFIX}/include/linux"
+	export JCC_JAVAC=${PREFIX}/bin/javac
+	export JCC_CFLAGS="-v;-fno-strict-aliasing;-Wno-write-strings;-D__STDC_FORMAT_MACROS"
+  export JCC_DEBUG_CFLAGS="-O0;-g;-DDEBUG"
+  export JCC_JAVADOC="javadoc"
+fi
+
+printenv
+
+
 $PYTHON -m jcc \
 --use_full_names \
 --python orekit \
 --version ${PKG_VERSION} \
---jar $SRC_DIR/orekit-10.1.jar \
---jar $SRC_DIR/hipparchus-core-1.6.jar \
---jar $SRC_DIR/hipparchus-filtering-1.6.jar \
---jar $SRC_DIR/hipparchus-fitting-1.6.jar \
---jar $SRC_DIR/hipparchus-geometry-1.6.jar \
---jar $SRC_DIR/hipparchus-ode-1.6.jar \
---jar $SRC_DIR/hipparchus-optim-1.6.jar \
---jar $SRC_DIR/hipparchus-stat-1.6.jar \
---jar $SRC_DIR/rugged-2.1.jar \
+--jar $SRC_DIR/orekit-10.3.1.jar \
+--jar $SRC_DIR/hipparchus-clustering-1.8.jar \
+--jar $SRC_DIR/hipparchus-core-1.8.jar \
+--jar $SRC_DIR/hipparchus-fft-1.8.jar \
+--jar $SRC_DIR/hipparchus-filtering-1.8.jar \
+--jar $SRC_DIR/hipparchus-fitting-1.8.jar \
+--jar $SRC_DIR/hipparchus-geometry-1.8.jar \
+--jar $SRC_DIR/hipparchus-migration-1.8.jar \
+--jar $SRC_DIR/hipparchus-ode-1.8.jar \
+--jar $SRC_DIR/hipparchus-optim-1.8.jar \
+--jar $SRC_DIR/hipparchus-stat-1.8.jar \
+--jar $SRC_DIR/rugged-2.2.jar \
 --package java.io \
 --package java.util \
 --package java.text \
@@ -47,6 +76,9 @@ java.util.TreeSet \
 java.util.stream.Collectors \
 java.util.stream.Stream \
 java.util.stream.DoubleStream \
+java.util.function.LongConsumer \
+java.util.function.IntConsumer \
+java.util.function.DoubleConsumer \
 --module $SRC_DIR/pyhelpers.py \
 --reserved INFINITE \
 --reserved ERROR \
@@ -70,4 +102,4 @@ mkdir -p $ACTIVATE_DIR
 mkdir -p $DEACTIVATE_DIR
 
 cp $RECIPE_DIR/scripts/activate.sh $ACTIVATE_DIR/orekit-activate.sh
-cp $RECIPE_DIR/scripts/deactivate.sh $DEACTIVATE_DIR/orekit-deactivate.sh
\ No newline at end of file
+cp $RECIPE_DIR/scripts/deactivate.sh $DEACTIVATE_DIR/orekit-deactivate.sh
diff --git a/orekit-conda-recipe/meta.yaml b/orekit-conda-recipe/meta.yaml
index eb9f6e4..01cfae7 100644
--- a/orekit-conda-recipe/meta.yaml
+++ b/orekit-conda-recipe/meta.yaml
@@ -1,8 +1,8 @@
 {% set name = "orekit" %}
-{% set version = "10.1" %}
-{% set artifact_filename = "v10_1_5" %}
-{% set sha256 = "350781883ced170a2d2d7b4a5d91f8af4010aa942347eb7ff59aad48570aa780" %}  # [not osx]
-{% set sha256 = "66ebabc895773dff2293e011547a626c9652ffeb74023fc900f3875b55f95de2" %}  # [osx]
+{% set version = "10.3.1" %}
+{% set artifact_filename = "v10_3_1_0" %}
+{% set sha256 = "9044ea7bc02e2ead2f2470dff4902f3a5f158adc7d389231313758bd8ee11f05" %}  # [not osx]  zip file
+{% set sha256 = "bb1c7870f5177340f1417004f4f9224d7b6fd3f6f992f06764c518606ce2b310" %}  # [osx]  tar.gz file
 
 
 package:
@@ -12,12 +12,13 @@ package:
 source:
   fn: {{ artifact_filename }}.zip  # [not osx]
   url: https://github.com/petrushy/orekit_python_artifacts/archive/{{ artifact_filename }}.zip  # [not osx]
+
   fn: {{ artifact_filename }}.tar.gz  # [osx]
   url: https://github.com/petrushy/orekit_python_artifacts/archive/{{ artifact_filename }}.tar.gz  # [osx]
   sha256: {{ sha256 }}
 
 build:
-  number: 0
+  number: 1
 
   rpaths:
     - lib/
@@ -28,17 +29,17 @@ requirements:
   build:
     - {{ compiler('c') }}
     - {{ compiler('cxx') }}
+    - openjdk 8
+
   host:
     - python
     - setuptools
-    - jcc >=3.6
-    # Force anaconda openjdk 
-    - openjdk 8.0.152
+    - jcc
+    - openjdk 8
 
   run:
     - python
-    # Force anaconda openjdk
-    - openjdk 8.0.152
+    - openjdk 8
 
 test:
   imports:
@@ -48,13 +49,14 @@ test:
     - test/*.py
     - test/orekit-data.zip
     - test/resources.zip
+    - test/resources/ccsds/*.txt
 
 about:
   home: https://www.orekit.org/forge/projects/orekit-python-wrapper
   license: Apache-2.0
   license_family: Apache
   license_file: LICENSE.txt
-  summary: 'An accurate and efficient core layer for space flight dynamics applications'
+  summary: 'An accurate and efficient core layer for space flight dynamics applications '
 
   description:
     Orekit aims at providing accurate and efficient low level components for
diff --git a/orekit-conda-recipe/scripts/activate.sh b/orekit-conda-recipe/scripts/activate.sh
index 5d0fa03..f568969 100644
--- a/orekit-conda-recipe/scripts/activate.sh
+++ b/orekit-conda-recipe/scripts/activate.sh
@@ -1,10 +1,2 @@
-#!/bin/bash
-
-# Store existing env vars and set to this conda env
-# so other installs don't pollute the environment.
-
-if [[ -n "JCC_JDK" ]]; then
-    export _JCC_JDK_CONDA_BACKUP=$JCC_JDK
-fi
-
+export _JCC_JDK_CONDA_BACKUP=${JCC_JDK:-}
 export JCC_JDK=$CONDA_PREFIX
diff --git a/python_files/pyhelpers.py b/python_files/pyhelpers.py
index fe1b431..334d38c 100644
--- a/python_files/pyhelpers.py
+++ b/python_files/pyhelpers.py
@@ -27,7 +27,7 @@ import math
 import os
 from java.io import File
 from orekit import JArray
-from org.orekit.data import DataProvidersManager, ZipJarCrawler, DirectoryCrawler
+from org.orekit.data import DataProvidersManager, ZipJarCrawler, DirectoryCrawler, DataContext
 from org.orekit.time import TimeScalesFactory, AbsoluteDate
 from org.orekit.utils import ElevationMask
 
@@ -78,7 +78,7 @@ def setup_orekit_curdir(filename='orekit-data.zip'):
     DM = DataContext.getDefault().getDataProvidersManager()
     datafile = File(filename)
     if not datafile.exists():
-        print('File or folder:', datafile.absolutePath, ' not found')
+        print('File or folder:', datafile.getAbsolutePath(), ' not found')
         print("""
 
         The Orekit library relies on some external data for physical models. 
@@ -94,6 +94,7 @@ def setup_orekit_curdir(filename='orekit-data.zip'):
         orekit.pyhelpers.download_orekit_data_curdir()
 
         """)
+        return
 
     if os.path.isdir(filename):
         crawler = DirectoryCrawler(datafile)
diff --git a/python_files/test/AEMTest.py b/python_files/test/AEMTest.py
index 589f68a..9e73c26 100644
--- a/python_files/test/AEMTest.py
+++ b/python_files/test/AEMTest.py
@@ -28,7 +28,7 @@ import orekit
 orekit.initVM()
 from orekit.pyhelpers import setup_orekit_curdir, datetime_to_absolutedate
 
-setup_orekit_curdir()
+setup_orekit_curdir(filename="resources.zip")
 
 import unittest
 import sys
diff --git a/python_files/test/TransformTest.py b/python_files/test/TransformTest.py
index 5b0da05..c973605 100644
--- a/python_files/test/TransformTest.py
+++ b/python_files/test/TransformTest.py
@@ -46,13 +46,14 @@ from org.orekit.utils import TimeStampedPVCoordinates;
 from org.orekit.frames import Transform
 from org.orekit.frames import FramesFactory
 
+
 class TransformTest(unittest.TestCase):
 
     def testPythonTransformType(self):
         # Create initial TimeStampedPVCoordinates
         pos = Vector3D(10000., 20000., 30000.)
         vel = Vector3D(2000., 1000., 1500.)
-        date = datetime_to_absolutedate(datetime(2019, 3, 13))
+        date = datetime_to_absolutedate(datetime(2000, 3, 13))
         pvt1 = TimeStampedPVCoordinates(date, pos, vel)
         print(type(pvt1))
 
@@ -124,6 +125,7 @@ class TransformTest(unittest.TestCase):
             self.checkVector(rebuiltPV.getAcceleration(), transformedPV.getAcceleration(), 9.0e-11)
             dt += 0.01
 
+
 if __name__ == '__main__':
     suite = unittest.TestLoader().loadTestsFromTestCase(TransformTest)
     ret = not unittest.TextTestRunner(verbosity=2).run(suite).wasSuccessful()
-- 
GitLab