All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.tangosol.internal.tracing.TracingShimLoader Maven / Gradle / Ivy

There is a newer version: 24.09
Show newest version
/*
 * Copyright (c) 2000, 2020, Oracle and/or its affiliates.
 *
 * Licensed under the Universal Permissive License v 1.0 as shown at
 * http://oss.oracle.com/licenses/upl.
 */
package com.tangosol.internal.tracing;

import java.util.ServiceLoader;

/**
 * Implementations of this class are responsible for loading {@link TracingShim} implementations from the classpath per
 * the {@link ServiceLoader} contract.
 * 

* Service definitions must be placed in META-INF/services using the provider-configuration file * named {@value #SERVICE_NAME}. * * @see ServiceLoader * * @since 14.1.1.0 * @author rl 11.5.2019 */ public interface TracingShimLoader { /** * Load the implementation-specific {@link TracingShim} from the classpath via the {@link ServiceLoader} * contract. Service definitions must be placed in META-INF/services using * the provider-configuration file named {@value #SERVICE_NAME}. *

* No explicit ordering guarantees are made, thus if there are multiple {@link TracingShim shims} on the * classpath, the first {@link TracingShim shim} loaded will be what is used for lifetime of the JVM. *

* If a {@link TracingShimLoader loader} determines it is unable to successfully provide a working shim, say * classes are missing, then the loader must return {@link TracingShim.Noop#INSTANCE}. * * @return the {@link TracingShim} per the {@link ServiceLoader} contract or {@link TracingShim.Noop#INSTANCE} * if it's not possible to load the {@link TracingShim shim} */ public TracingShim loadTracingShim(); /** * The name of the {@link TracingShim} provider-configuration file in the resource directory * META-INF/services. */ public String SERVICE_NAME = "com.tangosol.internal.tracing.TracingShimLoader"; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy