Dopo avere ottenuto una produzione eventi, è possibile creare gli oggetti eventi e popolarli con i dati delle proprietà.
Se si tenta di inviare un evento che non presenta una qualsiasi di queste proprietà, il programma di output rifiuta l'evento e genera un'eccezione EventsException.
Il seguente frammento di codice crea un evento e lo popola con i dati delle proprietà minimi richiesti:
CommonBaseEvent event = eventFactory.createCommonBaseEvent(); event.setVersion("1.0.1"); // imposta la versione long currentTime = System.currentTimeMillis(); // richiama data corrente event.setCreationTimeAsLong(currentTime); // e imposta data di creazione // imposta sourceComponentId (un tipo complesso) event.setSourceComponentId("Windows", // application "svchost.exe", // component "tlntsvr.exe", // subcomponent "http://www.ibm.com/namespaces/autonomic/Windows", // componentType "win386_svc", // componentIdType "9.45.72.138", // location "IPV4" // locationType ); // crea oggetto situation Situation situation = eventFactory.createSituation(); // imposta situationType su AvailableSituation (un tipo complesso) situation.setAvailableSituation("EXTERNAL", // reasoningScope "NOT AVAILABLE", // availabilityDisposition "STARTABLE", // operationDisposition "FUNCTION_PROCESS"); // processingDisposition // imposta situation event.setSituation(situation);
Quest'esempio utilizza prima una produzione eventi per creare una nuova istanza di evento, event. Imposta prima la proprietà version; richiama quindi l'ora del sistema corrente ed utilizza il metodo setCreationTimeAsLong(long) per impostare il valore della proprietà creationTime. In alternativa, utilizzare il metodo setCreationTime(String), che imposta l'ora di creazione utilizzando il formato dateTime XML (ad esempio, "2004-07-29T13:12:00-05:00").
La successiva proprietà obbligatoria, sourceComponentId, è una proprietà complessa rappresentata da un'istanza di ComponentIdentification, che presenta delle proprietà specifiche. Tuttavia, non è necessario istanziare o interagire direttamente con questo oggetto (anche se è possibile farlo). L'istruzione successiva nell'esempio utilizza invece un metodo helper, setSourceComponentId(), per specificare le proprietà incorporate; il metodo helper utilizza questi valori per creare un'istanza di ComponentIdentification, che utilizza quindi per impostare il valore della proprietà sourceComponentId dell'evento.
Esistono dei metodi helper simili per impostare altre proprietà complesse (ad esempio, setMsgDataElement(), addAssociatedEvent e addExtendedDataElement()). Molti di questi metodi sono disponibili in più versioni con firme diverse, rendendo possibile specificare i valori delle proprietà in vari modi. Fare riferimento alla documentazione API Javadoc per le informazioni complete su questi metodi.
L'ultima proprietà obbligatoria nell'esempio, Situation, è un'altra proprietà complessa. In questo caso, l'oggetto situation deve essere istanziato direttamente utilizzando una produzione eventi; l'esempio utilizza quindi un metodo helper per impostare la proprietà situationType, che è essa stessa un elemento secondario complesso.
In un'applicazione reale, un evento utile deve includere più informazioni di quelle qui elencate; tuttavia, in questa sede, sono presentate quelle minime indispensabili richieste dalla specifica Common Base Event e da Common Event Infrastructure. A questo punto, l'evento è valido e può essere inoltrato al programma di output.