Lifecycle lifecycle = lifecycle();
Object instance = clazz.newInstance();
if (instance instanceof PhaseListener) {
lifecycle.addPhaseListener((PhaseListener) instance);
} else {
lifecycle.addPhaseListener(new PhaseListenerAdapter(instance));
}
} catch (FacesException e) {
throw e;
} catch (Exception e) {
throw new FacesException(e);