대상 프로브 오브젝트

대상 프로브 오브젝트는 프로브가 적용되어야 하는 클래스 및 메소드의 스펙입니다.

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

대상 오브젝트를 사용하면 패키지, 클래스 및 메소드 이름과 메소드 서명에 대해 일치된 패턴에 기초하여 인스트루먼테이션으로부터 메소드를 포함하거나 제외시키는 필터 규칙을 작성할 수 있습니다. 패턴은 와일드 카드를 포함할 수 있는데, 여기서 "*"는 0개 이상의 문자를 일치시킵니다.

대상의 와일드 카드 패턴이 메소드의 패키지, 클래스, 이름 및 서명과 일치할 경우, type 특성은 메소드가 인스트루먼트되었는지(include) 또는 인스트루먼트되지 않았는지(exclude) 여부를 판별합니다. 패턴이 메소드의 패키지, 클래스 이름 및 서명과 일치하지 않을 경우, 기본적으로 메소드가 인스트루먼트됩니다.

대상 오브젝트는 다음 특성을 포함합니다.
특성 설명
type 필수사항. type 특성은 프로브가 대상 메소드에 적용되는지 여부를 판별합니다. 프로브를 와일드 카드 패턴과 일치하는 메소드 및 클래스에 적용하려면 include를 지정하고, 제외시키려면 exclude를 지정하십시오.
package 선택사항. 클래스 이름의 패키지 부분에 대해 일치시킬 와일드 카드 패턴을 지정하십시오. 예를 들어, java.util*java.util 패키지 및 해당 하위 패키지에 있는 모든 클래스와 일치시킵니다. 지정하지 않을 경우 기본값은 *입니다.
className 선택사항. 클래스 이름에 대해 일치시킬 와일드 카드 패턴을 지정하십시오. 지정하지 않을 경우 기본값은 *입니다.
method 선택사항. 메소드 이름에 대해 일치시킬 와일드 카드 패턴을 지정하십시오. 지정하지 않을 경우 기본값은 *입니다.
signature 선택사항. 메소드 서명(즉, 메소드의 인수 및 리턴 유형을 나타내는 문자열)과 일치시킬 와일드 카드 패턴을 지정하십시오. 이는 메소드 서명의 Java 내부 형식으로 됩니다. 예를 들어, (Ljava/lang/Object;)D는 Object를 매개변수로 사용하고 이중 형식을 리턴하는 메소드의 서명입니다. 이 와일드 카드 패턴은 과부하된 메소드 중에서 구별하는 데 사용할 수 있습니다. 지정하지 않을 경우 기본값은 *입니다.

참고:

  • 프로브는 연속 대상 규칙이 들어 있는 여러 대상 오브젝트를 가질 수 있습니다. 지정하는 메소드만 대상으로 하려면, 대상으로 하려는 메소드의 대상 오브젝트 다음에 package=* className=* method=* signature=* type=exclude를 지정하는 최종 대상 오브젝트를 추가하십시오.
  • 대상 오브젝트에 지정된 패키지 및 클래스 이름은 클래스가 구현하는 모든 인터페이스의 패키지 및 클래스 이름에 대해서도 확인됩니다. 예를 들어, java.util.HashMapjava.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 참조

Copyright IBM Corporation and others 2000, 2004.