private AbstractExtensionWrapper getCache(Class<AbstractExtension<?>> cls) throws StartException, InstantiationException, IllegalAccessException, IOException { String id = cls.getName().substring(27); // File cache = Application.getResource("tmp/extensioncache/" + id + // ".json"); // AbstractExtensionWrapper cached = JSonStorage.restoreFrom(cache, // true, (byte[]) null, new TypeRef<AbstractExtensionWrapper>() { AbstractExtensionWrapper cached = cache.get(id); int v = AbstractExtension.readVersion(cls); if (cached != null) { cached._setClazz(cls); if (cached.getVersion() != v || !cached.getLng().equals(_JDT.getLanguage()) || cached._getSettings() == null) { // update cache cached = null; } } if (cached == null) { Log.L.info("Update Cache " + cache); cached = AbstractExtensionWrapper.create(id, cls); cache.put(id, cached); cacheChanged = true; } else { cached._setClazz(cls); } return cached; }