Interfaccia WMQTest

Le verifiche scritte per IBM® MQ Explorer devono appartenere a una classe Java che estende la classe WMQTest fornita. Questo argomento descrive l'interfaccia e i metodi forniti.

Attributi della verifica

Definire una verifica nel file manifest del plugin (plugin.xml) utilizzando una raccolta di attributi. Gli attributi per una verifica sono elencati nella seguente tabella.

Attributo Descrizione
ID Una stringa che fornisce un identificativo univoco per la verifica.
nome Un nome descrittivo per la verifica.
classe Il nome della classe Java che contiene il codice sorgente della verifica.
testset Una stringa che definisce il gruppo in cui visualizzare il test; ad esempio,wmq, che visualizza la verifica nella categoria Verifiche del gestore code .
testsubset Una stringa che definisce il sottogruppo in cui visualizzare il test; ad esempio,queues, che visualizza il test nella categoria Code .
descrizione Una breve descrizione che descrive ciò che fa la verifica.
furtherinfo L'ubicazione di un documento HTML o XHTML che contiene ulteriori informazioni sulla verifica. Questo documento viene visualizzato in IBM MQ Explorer quando si fa doppio clic sulla verifica nella finestra di dialogo Esegui verifiche o sul risultato di una verifica nella vista Risultati della verifica.

Per definire la verifica, specificare i valori di questi attributi nel file plugin.xml. È possibile accedere a questi attributi anche a livello di codice utilizzando i metodi WMQTest elencati nella seguente tabella.

Metodo Descrizione
getTestID() Restituisce l'ID della verifica.
getTestName() Restituisce il nome della verifica.
getDescription() Restituisce la descrizione della verifica.
getTestSet() Restituisce un handle per l'oggetto serie di verifiche creato per essere un parent per la verifica.
getFurtherInfoPath() Restituisce l'ubicazione del documento XHTML o HTML che contiene ulteriori informazioni sulla verifica.

Creazione della verifica

Il motore di verifica IBM MQ Explorer crea un'istanza dell'oggetto di verifica utilizzando il costruttore WMQTest() fornito. Non occorre creare una sottoclasse di questo constructor.

Struttura della verifica

Il metodo WMQTest runTest definisce il corpo della verifica ed è richiamato ad avviare l'esecuzione di una verifica.

La fine del metodo runTest non implica la fine della verifica; è necessario specificare esplicitamente la fine della verifica utilizzando il metodo testComplete. È possibile implementare verifiche in modo che richiamino i dati degli oggetti in maniera asincrona.

Il metodo runTest inoltra una richiesta per ottenere i dati sugli oggetti e la verifica viene eseguita dal metodo del listener che riceve la risposta. Ciò consente al test di attendere i dati senza che sia necessario implementare il thread in attesa; ciò è dimostrato nell' Esempio 3.

Se è necessaria un'attesa manuale (sleep) come parte di una verifica, è possibile utilizzare il monitor di oggetti per l'oggetto di verifica per utilizzare i metodi Java wait e notify. Il threading del motore delle verifiche viene implementato senza utilizzare i monitor di oggetti di singoli oggetti verifica.

Esecuzione della verifica

Il motore di verifica IBM MQ Explorer richiama runTest(WMQTestEngine, IProgressMonitor,contextObjects, treeNode) per avviare l'esecuzione della verifica. Il corpo principale della verifica deve trovarsi qui.

WMQTestEngine
Il parametro WMQTestEngine fornisce un handle al motore di verifica che sta eseguendo la verifica.

Questo viene fornito per consentire alle verifiche di restituire risultati mentre è in corso una verifica, utilizzando il metodo returnResult(WMQTestResult[], WMQTest) del motore di verifica.

Il primo parametro di questo metodo (WMQTestResult[]) contiene i risultati da restituire e il secondo parametro (WMQTest) deve essere 'this', in modo che il motore di verifica conosca la provenienza dei risultati. L'utilizzo del parametro WMQTestEngine per restituire risultati temporanei è facoltativo; in alternativa, i risultati delle verifiche possono essere restituiti al termine della verifica (fare riferimento a Completamento della verifica).

IProgressMonitor
Il parametro IProgressMonitor fornisce un handle al monitor di feedback GUI utilizzato per l'esecuzione della verifica corrente. Ciò consente alla verifica di fornire un feedback testuale sull'attività e sulle sottoattività attualmente in esecuzione e una barra di stato che indica le fasi di completamento.

L'handle per il Controllo esecuzione viene memorizzato nella cache dall'implementazione predefinita di runTest, perciò se è stato utilizzato, è possibile accedere a un handle del Controllo esecuzione utilizzando anche il metodo getGUIMonitor().

Controllo esecuzione è una risorsa Eclipse di base. Consultare la documentazione dell'API Eclipse sul web per ulteriori consigli sul suo utilizzo.

contextObjects
Il parametro contextObjects fornisce un array MQExtObject. Il parametro fornisce il contesto della verifica da eseguire in modo che le caselle di controllo rilevati siano pre-selezionate quando l'utente apre la finestra Esegui verifiche.
treeNode
Il parametro treeNode registra quale cartella o oggetto nella vista Navigator è stato selezionato per eseguire le verifiche predefinite o per aprire la finestra di dialogo Esegui verifiche.

Preferenze utente

Le verifiche devono essere conformi alle preferenze utente fornite utilizzando la finestra Preferenze Eclipse. Per accedere alle preferenze, utilizzare i metodi seguenti:

  • PreferenceStoreManager.getIncludeHiddenQmgrsPreference() che restituisce true se nella verifica si includono i gestori code che sono stati nascosti in IBM MQ Explorer o false se devono essere esclusi.
  • PreferenceStoreManager.getIncludeSysObjsPreference() che restituisce true se gli oggetti di sistema (oggetti che hanno nomi che iniziano con SYSTEM.) devono essere inclusi nella verifica, o false se devono essere esclusi.

Completamento della verifica

Completare una verifica richiamando testComplete(WMQTestResult[]), passandogli un array di oggetti risultato della verifica. Consultare Creazione di un risultato di verifica per istruzioni sugli oggetti dei risultati di verifica.

È possibile restituire i risultati al completamento utilizzando questo metodo in aggiunta o come alternativa alla restituzione dei risultati di un test durante l'esecuzione di un test (come descritto in Esecuzione del test). Tuttavia, qualsiasi risultato che viene restituito due volte viene visualizzato due volte.

Anche se la verifica utilizza il metodo WMQTestEngine returnResult per restituire tutti i risultati, deve comunque richiamare testComplete a completamento. Questa operazione è necessaria per completare l'elaborazione della verifica. È possibile fornire un array di oggetti WMQTestResult vuoto nel metodo testComplete se non ci sono nuovi risultati da restituire.

Per ulteriori informazioni, consultare Struttura test.

Creazione di un risultato di verifica

I risultati della verifica sono implementati come oggetti WMQTestResult. Creare i risultati utilizzando:

WMQTestResult(severità int, descrizione stringa, String qmgrname, String objectType)

dove:

  • severity è un numero intero che identifica la gravità del problema. Utilizzare uno dei seguenti livelli di gravità: IMarker.SEVERITY_ERROR, IMarker.SEVERITY_WARNING o IMarker.SEVERITY_INFO
  • description è la stringa che spiega il problema rilevato dalla verifica, da visualizzare nella vista Problemi.
  • qmgrname è il nome del gestore code in cui è stato rilevato il problema.
  • objectType è la stringa che fornisce la classe dell'oggetto in cui è possibile trovare il problema, ad esempio "Code" o "Canali".

Per ulteriori informazioni sulle operazioni da eseguire con l'oggetto risultato del test quando è stato creato, consultare Completamento del test.

Annullamento della verifica

È possibile annullare una verifica mentre questa è in esecuzione. Utilizzare il metodo isCancelled() per controllare se una verifica deve essere arrestata.

Una buona verifica deve rilevare regolarmente se è stata annullata o meno, al fine di evitare ritardi inutili per l'utente.

Se l'utente tenta di annullare una verifica, ma l'interruzione non ha luogo per un periodo di tempo esteso, il motore delle verifiche fa sì che la verifica si interrompa attraverso l'interruzione del thread che sta eseguendo la verifica. Tuttavia, non ci si dovrebbe affidare a questo metodo, poiché sarebbe preferibile che la verifica risponda in tempo, in modo da liberare tutte le risorse utilizzate e che restituisca tutti i risultati fino generati fino all'interruzione.

Documentazione della verifica

È possibile fornire della documentazione aggiuntiva per spiegare i risultati restituiti dalle verifiche, nonché istruzioni su cosa occorre fare per risolvere il problema.

La documentazione deve essere fornita in HTML, mentre la sua ubicazione deve essere specificata nel file plugin.xml del plug-in che fornisce la verifica. Per i dettagli sulla definizione dei test in XML, consultare Creazione di un nuovo test.

L'ubicazione del file HTML di documentazione può essere:

  • interna - si trova nel progetto di plug-in che fornisce la verifica. L'ubicazione deve essere definita nell'XML relativo al file plugin.xml. Ad esempio, doc/TestDoc.html
  • esterna - si trova su un server Web; in tal modo, è possibile separare la documentazione dalla verifica. L'ubicazione deve essere definita come URL completo, iniziando con 'http://'.