Search in sources :

Example 1 with PrintStreamProviderFactory

use of sun.tracing.PrintStreamProviderFactory in project jdk8u_jdk by JetBrains.

the class ProviderFactory method getDefaultFactory.

/**
     * Returns an implementation of a {@code ProviderFactory} which
     * creates instances of Providers.
     *
     * The created Provider instances will be linked to all appropriate
     * and enabled system-defined tracing mechanisms in the JDK.
     *
     * @return a {@code ProviderFactory} that is used to create Providers.
     */
public static ProviderFactory getDefaultFactory() {
    HashSet<ProviderFactory> factories = new HashSet<ProviderFactory>();
    // Try to instantiate a DTraceProviderFactory
    String prop = AccessController.doPrivileged(new GetPropertyAction("com.sun.tracing.dtrace"));
    if ((prop == null || !prop.equals("disable")) && DTraceProviderFactory.isSupported()) {
        factories.add(new DTraceProviderFactory());
    }
    // Try to instantiate an output stream factory
    prop = AccessController.doPrivileged(new GetPropertyAction("sun.tracing.stream"));
    if (prop != null) {
        for (String spec : prop.split(",")) {
            PrintStream ps = getPrintStreamFromSpec(spec);
            if (ps != null) {
                factories.add(new PrintStreamProviderFactory(ps));
            }
        }
    }
    // factory that encapsulates that.
    if (factories.size() == 0) {
        return new NullProviderFactory();
    } else if (factories.size() == 1) {
        return factories.toArray(new ProviderFactory[1])[0];
    } else {
        return new MultiplexProviderFactory(factories);
    }
}
Also used : PrintStream(java.io.PrintStream) GetPropertyAction(sun.security.action.GetPropertyAction) DTraceProviderFactory(sun.tracing.dtrace.DTraceProviderFactory) PrintStreamProviderFactory(sun.tracing.PrintStreamProviderFactory) NullProviderFactory(sun.tracing.NullProviderFactory) PrintStreamProviderFactory(sun.tracing.PrintStreamProviderFactory) MultiplexProviderFactory(sun.tracing.MultiplexProviderFactory) DTraceProviderFactory(sun.tracing.dtrace.DTraceProviderFactory) NullProviderFactory(sun.tracing.NullProviderFactory) MultiplexProviderFactory(sun.tracing.MultiplexProviderFactory) HashSet(java.util.HashSet)

Aggregations

PrintStream (java.io.PrintStream)1 HashSet (java.util.HashSet)1 GetPropertyAction (sun.security.action.GetPropertyAction)1 MultiplexProviderFactory (sun.tracing.MultiplexProviderFactory)1 NullProviderFactory (sun.tracing.NullProviderFactory)1 PrintStreamProviderFactory (sun.tracing.PrintStreamProviderFactory)1 DTraceProviderFactory (sun.tracing.dtrace.DTraceProviderFactory)1