class ContextAwareHolder {

	private static ContextAware contextAware;

	public static ContextAware loadContextAware() {<FILL_FUNCTION_BODY>}

	public static void clean() {
		contextAware = null;
	}

}

		if (ObjectUtil.isNull(contextAware)) {
			List<ContextAware> list = new ArrayList<>();
			ServiceLoader.load(ContextAware.class).forEach(list::add);
			list.sort(Comparator.comparingInt(ContextAware::priority));
			contextAware = list.get(0);
		}
		return contextAware;
	
<no_super_class>