use of sun.tracing.MultiplexProviderFactory 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);
}
}
Aggregations