取得事件 Factory 之後,您可以建立事件物件並移入內容資料。
如果您嘗試傳送的事件遺漏了前述任一內容,發射器就會拒絕事件並擲出 EventsException 異常狀況。
下列程式碼片段會建立一個事件,並移入最少量的必要內容資料:
CommonBaseEvent event = eventFactory.createCommonBaseEvent(); event.setVersion("1.0.1"); // 設定版本 long currentTime = System.currentTimeMillis(); // 取得現行時間 event.setCreationTimeAsLong(currentTime); // 及設定 creationTime // 設定 sourceComponentId(複式類型) event.setSourceComponentId("Windows", // 應用程式 "svchost.exe", // 元件 "tlntsvr.exe", // 子元件 "http://www.ibm.com/namespaces/autonomic/Windows", // componentType "win386_svc", // componentIdType "9.45.72.138", // 位置 "IPV4" // locationType ); // 建立 Situation 物件 Situation situation = eventFactory.createSituation(); // 將 situationType 設定為 AvailableSituation(複式類型) situation.setAvailableSituation("EXTERNAL", // reasoningScope "NOT AVAILABLE", // availabilityDisposition "STARTABLE", // operationDisposition "FUNCTION_PROCESS"); // processingDisposition // 設定 situation event.setSituation(situation);
本例會先使用事件 Factory 來建立新的事件實例 event。首先它會設定 version 內容;接著擷取現行系統時間,並使用 setCreationTimeAsLong(long) 方法來設定 creationTime 內容的值。 另一種方法是利用 setCreationTime(String) 方法,使用 XML dateTime 格式來設定建立時間(例如:"2004-07-29T13:12:00-05:00")。
下一個必要內容 sourceComponentId 是一個由 ComponentIdentification 的實例所代表的複式內容,它有自己的內容。 不過,您不必直接建立實例,也不必與這個物件互動(雖然可以這麼做)。 反之,範例中的下一個陳述式使用了 Helper 方法 setSourceComponentId() 來指定巢狀內容; 該 Helper 方法會使用這些值來建立 ComponentIdentification 的實例,接著使用它來設定事件之 sourceComponentId 內容的值。
另外還有類似的 Helper 方法可以設定其他複式內容(例如:setMsgDataElement()、addAssociatedEvent 和 addExtendedDataElement())。 這些方法中,有許多存在於具有不同簽章的多重版本中,因此可以用不同方式指定內容值。 請參閱 Javadoc API 文件,以取得這些方法的完整資訊。
範例中的最後一個必要的內容 Situation 是另一個複式內容。在本例中,situation 物件必須直接利用事件 Factory 來建立實例;接著該範例利用 Helper 方法來設定 situationType 內容,其本身是一個複式子元素。
在實際的應用程式中,有用的事件必須包括比這裡所示還多的資訊,但 Common Base Event 規格和「共用事件基礎架構」至少需要這個項目。現在該事件已經生效,且可以送出給發射器。