대상 프로브 객체

대상 프로브 객체는 프로브를 적용할 메소드 및 클래스의 스펙입니다.

대상 객체는 선택적입니다. 대상을 지정하지 않으면 프로브는 인스트루먼테이션 엔진에서 처리하는 모든 클래스에 적용됩니다.

대상 객체를 사용하면 메소드 서명 이외에도 패키지, 클래스 및 메소드 이름에 일치하는 패턴에 기초한 인스트루먼테이션에 메소드를 제외하거나 포함하도록 필터 규칙을 작성할 수 있습니다. 패턴에는 "*"가 0 이상의 문자와 일치하는 것과 같이 와일드 카드를 포함할 수 있습니다.

대상의 와일드 카드 패턴이 메소드의 패키지, 클래스, 이름 및 서명과 일치하는 경우 유형 특성은 메소드를 인스트루먼트하는지(포함) 또는 하지 않는지(제외)를 결정합니다. 패턴이 메소드의 패키지, 클래스, 이름 및 서명과 일치하지 않으면 기본적으로 메소드를 인스트루먼트합니다.

대상 객체에는 다음 특성이 포함되어 있습니다.
특성 설명
유형 필수. 유형 특성은 대상 메소드에 프로브를 적용할지 여부를 결정합니다. 와일드 카드 패턴에 일치하는 메소드 및 클래스에 프로브를 적용하려면 포함을, 제외시키려면 제외를 지정하십시오.
패키지 선택적. 클래스 이름의 패키지 위치에 일치시킬 와일드 카드 패턴을 지정하십시오. 예: java.util*java.util 패키지 및 해당 서브패키지의 모든 클래스와 일치합니다. 지정하지 않으면 기본값은 *입니다.
클래스 이름 선택적. 클래스 이름에 일치시킬 와일드 카드 패턴을 지정하십시오. 지정하지 않으면 기본값은 *입니다.
메소드 선택적. 메소드 이름에 일치시킬 와일드 카드 패턴을 지정하십시오. 지정하지 않으면 기본값은 *입니다.
서명 선택적. 메소드 서명 즉, 메소드의 인수 및 리턴 유형을 표시하는 문자열에 일치시킬 와일드 카드 패턴을 지정하십시오. 이는 메소드 서명을 위해 Java 내부 형식으로 되어 있습니다. 예: (Ljava/lang/Object;)D는 object를 매개변수로 취하고 double을 리턴하는 메소드 서명입니다. 해당 와일드 카드 패턴을 사용하여 과부하 메소드를 구별할 수 있습니다. 지정하지 않으면 기본값은 *입니다.

주:

  • 프로브에는 성공적인 대상 규칙이 있는 여러 대상 객체가 있을 수 있습니다. 지정하는 메소드만을 대상으로 하려면 대상으로 하려는 메소드의 대상 객체 다음에 package=* className=* method=* signature=* type=exclude를 지정하는 최종 대상 객체를 추가하십시오.
  • 대상 객체에 지정된 패키지 및 클래스 이름은 클래스에서 구현하는 모든 인터페이스의 패키지 및 클래스 이름에 대해서도 검사합니다. 예를 들어, java.util.HashMap은 인터페이스 java.util.Map을 구현합니다. 프로브가 패키지 java.util, 클래스 이름 Map 및 메소드 이름 size를 대상으로 하는 경우 프로브는 맵 인터페이스를 구현하는 기타 클래스의 java.util.HashMap.size()size 메소드에 적용됩니다.
  • 패턴 일치는 상속 관계를 고려하지 않습니다. Derived 클래스가 Base 클래스를 확장하고 프로브가 Base.run()을 대상으로 하는 경우 프로브는 자동으로 Derived.run()에 적용되지 않습니다.
  • 대상 객체에 있는 패키지 패턴이 하나의 마침표 문자(".")인 경우, 이름이 지정되지 않은 글로벌 Java 패키지를 나타냅니다. 그러면 명시적으로 글로벌 패키지의 클래스를 대상으로 할 수 있습니다. 예:
    <target type="include" package="." class="SomeClass" method="*" />
    <target type="exclude" package="*" class="*" method="*" />
    이러한 두 개의 대상 규칙은 모든 기타 클래스를 제외하는 반면, 프로브가 글로벌 패키지에 있는 SomeClass 클래스를 대상으로 하도록 합니다. 이 규칙에 의해 다른 패키지에 있는 SomeClass라는 클래스는 제외됩니다.
  • 호출 사이트 프로브는 대상 패턴 및 규칙을 호출된 메소드의 패키지, 클래스, 이름 및 서명에 일치시킵니다. 일치는 컴파일 시 인식된 대로 호출된 메소드에 대해 수행됩니다. 즉, 상속 및 가상 기능으로 인해 호출되는 실제 메소드가 아닌, 정적으로 인식된 클래스 및 메소드 이름에 대해 수행됩니다. 호출이 인터페이스 참조를 통해 수행되는 경우 인터페이스 이름이 일치해야 합니다.
<target
  type="include"
  package="com.example"
  className="*Proxy"
  method="Get*"
/>

다음에 의해 포함됨
프로브 객체

상위 주제: Probekit 요소 참조

이용약관 | 피드백
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.