@Override public SimpleScheduler build(){ final SimpleSchedulerConfig config = new SimpleSchedulerConfig(getParams()); String id = config.getId(); if (id == null) { id = new UUID().toString(); LOG.warning("Parameter 'id' is required for SimpleScheduler. (giving temporary name: " + id + ")"); } SimpleScheduler result = null; if (INSTANCES.containsKey(id)) { result = INSTANCES.get(id); final Handler<Receiver> oldHandle = result.getHandle(); oldHandle.update(TYPEUTIL.inject(getHandle())); } else { result = new SimpleScheduler(config, TYPEUTIL.inject(getHandle())); } INSTANCES.put(id, result); return result; }