public void run() { try { RuntimeShell rshell = RuntimeShell.currentRuntimeShell(); threads().addToContextLocals(SYSTEM_RUNTIME, "TimedEvent"); SmartData data = (SmartData) rshell.lookupFor(objectflow, objectgroup, objectkey); assertion() .assertNotNull( data, "Cannot find data to post timed event to. " + objectflow + ":" + objectgroup + ":" + objectkey + ":" + this.getClass().getClassLoader()); Object evt = new TimedEvent("stateexpired", data); SmartEvent event = (SmartEvent) evt; // MessageConfig mc = new MessageConfig(event); CoreContext ctx = (CoreContext) anatomy().overriddenContext(this.getClass()); MessageConfig mc = (MessageConfig) ctx.getMessageConfig(event); mc.postMessage(); } catch (Exception e) { e.printStackTrace(); } }
protected Object runtimeObject(Class cls) throws CtxException { CrossLinkSmartTenant tenant = CrossLinkSmartTenant.currentTenant(); RuntimeShell shell = (RuntimeShell) tenant.runtimeShell(); Object transition = shell.getTransition(cls); return transition; }