1 /* Copyright 2002-2025 CS GROUP 2 * Licensed to CS GROUP (CS) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * CS licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.orekit.utils; 18 19 import org.hipparchus.util.MathUtils; 20 21 import java.io.IOException; 22 import java.io.InputStream; 23 import java.util.Properties; 24 25 /** Utility class for setting global configuration parameters. 26 27 * @author Luc Maisonobe 28 */ 29 public class OrekitConfiguration { 30 31 /** Number of slots to use in caches. */ 32 private static int CACHE_SLOTS_NUMBER; 33 34 static { 35 CACHE_SLOTS_NUMBER = 100; 36 } 37 38 /** Private constructor. 39 * <p>This class is a utility class, it should neither have a public 40 * nor a default constructor. This private constructor prevents 41 * the compiler from generating one automatically.</p> 42 */ 43 private OrekitConfiguration() { 44 } 45 46 /** Set the number of slots to use in caches. 47 * @param slotsNumber number of slots to use in caches 48 */ 49 public static void setCacheSlotsNumber(final int slotsNumber) { 50 OrekitConfiguration.CACHE_SLOTS_NUMBER = slotsNumber; 51 } 52 53 /** Get the number of slots to use in caches. 54 * @return number of slots to use in caches 55 */ 56 public static int getCacheSlotsNumber() { 57 return CACHE_SLOTS_NUMBER; 58 } 59 60 /** 61 * Get Orekit version. 62 * <p> 63 * The version is automatically retrieved from a properties file generated 64 * at maven compilation time. When using an IDE not configured to use 65 * maven, then a default value {@code "unknown"} will be returned. 66 * </p> 67 * @return Orekit version 68 * @since 4.0 69 */ 70 public static String getOrekitVersion() { 71 String version = "unknown"; 72 final Properties properties = new Properties(); 73 try (InputStream stream = MathUtils.class.getResourceAsStream("/assets/org/orekit/orekit.properties")) { 74 if (stream != null) { 75 properties.load(stream); 76 version = properties.getProperty("orekit.version", version); 77 } 78 } catch (IOException ioe) { 79 // ignored 80 } 81 return version; 82 } 83 84 }