@SuppressWarnings("unchecked")
	private T createExtension(String name) {
		Class<?> clazz = getExtensionClasses().get(name);
		if (clazz == null) {
			throw new IllegalStateException("Error when load extension class(interface: " + iFaceType);
		}
		try {
			T instance = (T) EXTENSION_INSTANCES.get(clazz);
			if (instance == null) {
				EXTENSION_INSTANCES.putIfAbsent(clazz, (T) clazz.newInstance());
				instance = (T) EXTENSION_INSTANCES.get(clazz);
			}
			injectExtension(instance);
			/*Set<Class<?>> wrapperClasses = cachedWrapperClasses;
			if (wrapperClasses != null && wrapperClasses.size() > 0) {
				for (Class<?> wrapperClass : wrapperClasses) {
					instance = injectExtension((T) wrapperClass.getConstructor(iFaceType).newInstance(instance));
				}
			}*/
			return instance;
		} catch (Throwable t) {
			throw new IllegalStateException("Extension instance(name: " + name + ", class: " + iFaceType
					+ ")  could not be instantiated: " + t.getMessage(), t);
		}
	}