This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit 0a07f63e6bf91e6add5df3ea5e95af08c36322c2 Author: Andy Seaborne <[email protected]> AuthorDate: Thu Nov 28 11:51:43 2024 +0000 JenaSystem.init with optional tracing --- .../main/java/org/apache/jena/sys/JenaSystem.java | 44 +++++++++++++++------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java index 5602bcbf56..417d4c3c33 100644 --- a/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java +++ b/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java @@ -46,18 +46,6 @@ public class JenaSystem { private static Subsystem<JenaSubsystemLifecycle> singleton = null; - // Don't rely on class initialization. - private static void setup() { - // Called inside synchronized - if ( singleton == null ) { - singleton = new Subsystem<>(JenaSubsystemLifecycle.class); - SubsystemRegistry<JenaSubsystemLifecycle> reg = - new SubsystemRegistryServiceLoader<>(JenaSubsystemLifecycle.class); - singleton.setSubsystemRegistry(reg); - reg.add(new JenaInitLevel0()); - } - } - public JenaSystem() { } /** @@ -76,13 +64,34 @@ public class JenaSystem { System.err.println() ; } + /** + * Initialize Jena. This call can be made several times. Only the first causes + * the one-time initialization. + */ public static void init() { + init(false); + } + + /** + * Initialize Jena. This call can be made several times. Only the first causes + * the one-time initialization. + * <p> + * Optionally, output initialization steps (prints to stderr). + */ + public static void init(boolean withTracing) { if ( initialized ) return ; + if ( withTracing ) + DEBUG_INIT = true; + // Access the initialized flag to trigger class loading var unused = LazyInitializer.IS_INITIALIZED; } + public static void shutdown() { + singleton.shutdown(); + } + private static class LazyInitializer { static final boolean IS_INITIALIZED = jenaSystemInitialization(); @@ -97,7 +106,16 @@ public class JenaSystem { } } - public static void shutdown() { singleton.shutdown(); } + private static void setup() { + // Called inside synchronized + if ( singleton == null ) { + singleton = new Subsystem<>(JenaSubsystemLifecycle.class); + SubsystemRegistry<JenaSubsystemLifecycle> reg = + new SubsystemRegistryServiceLoader<>(JenaSubsystemLifecycle.class); + singleton.setSubsystemRegistry(reg); + reg.add(new JenaInitLevel0()); + } + } /** The level 0 subsystem - inserted without using the Registry load function. * There should be only one such level 0 handler.
