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

com.datadoghq.agent.utils.ClassLoaderNameMatcher Maven / Gradle / Ivy

package com.datadoghq.agent.utils;

import net.bytebuddy.matcher.ElementMatcher;

// Borrowed from https://github.com/stagemonitor/stagemonitor/blob/master/stagemonitor-core/src/main/java/org/stagemonitor/core/instrument/ClassLoaderNameMatcher.java
public class ClassLoaderNameMatcher extends ElementMatcher.Junction.AbstractBase {

  private final String name;

  private ClassLoaderNameMatcher(final String name) {
    this.name = name;
  }

  public static ElementMatcher.Junction.AbstractBase classLoaderWithName(
      final String name) {
    return new ClassLoaderNameMatcher(name);
  }

  public static ElementMatcher.Junction.AbstractBase isReflectionClassLoader() {
    return new ClassLoaderNameMatcher("sun.reflect.DelegatingClassLoader");
  }

  @Override
  public boolean matches(final ClassLoader target) {
    return target != null && name.equals(target.getClass().getName());
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy