Oggetto di analisi Target

L'oggetto di analisi Target è una specifica delle classi e dei metodi ai quali dovrebbe essere applicata l'analisi.

L'oggetto Target è facoltativo. Quando non viene specificato alcun oggetto Target, l'analisi verrà applicata a tutte le classi elaborate dal modulo di gestione della strumentazione.

L'oggetto Target consente di creare le regole di filtro per includere o escludere i metodi dalla strumentazione in base ai modelli corrispondenti al pacchetto, alla classe, al nome e alla firma del metodo. I modelli possono contenere caratteri jolly, dove "*" corrisponde a zero o più caratteri.

Se i modelli di caratteri speciali di un oggetto Target corrispondono al pacchetto, alla classe, al nome e alla firma del metodo, la proprietà type determina se il metodo viene sottoposto (include) o meno (exclude) alla strumentazione. Se i modelli non corrispondono al pacchetto, alla classe, al nome e alla firma del metodo, come impostazione predefinita il metodo viene sottoposto alla strumentazione.

L'oggetto Target include le seguenti proprietà:
Proprietà Descrizione
type Obbligatorio. La proprietà type determina se un'analisi viene applicata o meno al metodo di destinazione. Specificare include per applicare l'analisi alle classi e ai metodi che corrispondono ai modelli di caratteri jolly, exclude per escluderli.
package Facoltativo. Specificare un modello di caratteri jolly per la corrispondenza della porzione del pacchetto dei nomi delle classi. Ad esempio: java.util* troverà le corrispondenze di ogni classe nel pacchetto java.util e nei relativi pacchetti secondari. Se non specificato, il valore predefinito è *.
className Facoltativo. Specificare un modello di caratteri jolly per la corrispondenza dei nomi delle classi. Se non specificato, il valore predefinito è *.
method Facoltativo. Specificare un modello di caratteri jolly per la corrispondenza dei nomi dei metodi. Se non specificato, il valore predefinito è *.
signature Facoltativo. Specificare un modello di caratteri jolly per la corrispondenza della firma di un metodo, ovvero, la stringa che rappresenta gli argomenti ed il tipo di restituzione del metodo. Per le firme del metodo si tratta di formato interno java. Ad esempio: (Ljava/lang/Object;)D è la firma di un metodo che considera un Object come parametro e restituisce un valore doppio. Questo modello di caratteri jolly può essere utilizzato per effettuare una distinzione tra i metodi sovraccaricati. Se non specificato, il valore predefinito è *.

Note:

  • Un'analisi può disporre di più oggetti Target contenenti regole di destinazione successive. Per la destinazione dei soli metodi specificati, aggiungere un oggetto Target finale che specifica package=* className=* method=* signature=* type=exclude dopo l'oggetto Target per i metodi di cui si specifica la destinazione.
  • I nomi delle classi e dei pacchetti specificati in un oggetto Target vengono controllati anche in relazione ai nomi delle classi e dei pacchetti di qualsiasi interfaccia che una classe implementa. Ad esempio, java.util.HashMap implementa l'interfaccia java.util.Map. Se un'analisi specifica la destinazione del pacchetto java.util, del nome della classe Map e del nome del metodo size, l'analisi verrà applicata a java.util.HashMap.size() a al metodo size di qualsiasi altra classe che implementa l'interfaccia Map.
  • La corrispondenza dei modelli non considera le relazioni di eredità: se la classe Derived estende la classe Base e l'analisi specifica la destinazione Base.run(), l'analisi non verrà applicata automaticamente a Derived.run().
  • Se il modello del pacchetto in un oggetto è un punto ("."), rappresenta il pacchetto Java globale, senza nome. Consente di specificare in modo esplicito la destinazione delle classi nel pacchetto globale. Ad esempio:
    <target type="include" package="." class="SomeClass" method="*" />
    <target type="exclude" package="*" class="*" method="*" />
    Queste due regole di destinazione fanno in modo che l'analisi specifichi la destinazione della classe SomeClass nel pacchetto globale, escludendo tutte le altre classi. In base a queste regole, la classe SomeClass presente in qualsiasi altro pacchetto viene esclusa.
  • Le analisi a livello di chiamata corrispondono ai modelli e alle regole di destinazione in relazione al pacchetto, alla classe, al nome e alla firma di un metodo richiamato. La corrispondenza viene effettuata in relazione al metodo richiamato al momento della compilazione; ovvero, in relazione i nomi del metodo e della classe staticamente conosciuti, non i metodi effettivi richiamati da funzioni virtuali o di eredità. Se la chiamata viene effettuata mediante il riferimento di un'interfaccia, il nome dell'interfaccia deve corrispondere.
Esempio
<target
  type="include"
  package="com.example"
  className="*Proxy"
  method="Get*"
/>

Contenuto da
Oggetto Probe

Argomento principale: Riferimento elemento Probekit

Clausole di utilizzo | Commenti
(C) Copyright IBM Corporation 2000, 2004. Tutti i diritti riservati.