package org.jboss.arquillian.portal.warp.jsf; import org.jboss.arquillian.core.api.annotation.Observes; import org.jboss.arquillian.warp.jsf.PhaseLifecycleEvent; import org.jboss.arquillian.warp.spi.LifecycleManager; import org.jboss.arquillian.warp.spi.LifecycleManagerStore; import org.jboss.arquillian.warp.spi.exception.ObjectNotAssociatedException; import javax.faces.context.FacesContext; import javax.portlet.PortletRequest; /** * Captures the {@link PhaseLifecycleEvent} from Warp JSF and combines it with {@link PortletPhase} to trigger * {@link org.jboss.arquillian.warp.Inspection} methods that match the two qualifiers. * * @author <a href="http://community.jboss.org/people/kenfinni">Ken Finnigan</a> */ public class PhaseLifecycleObserver { public void handlePhaseLifecycle(@Observes PhaseLifecycleEvent event, PortletRequest request, FacesContext facesContext) { try { LifecycleManager manager = LifecycleManagerStore.get(FacesContext.class, facesContext); manager.fireEvent(PortletPhaseLifecycleEvent.getInstance(event, request)); } catch (ObjectNotAssociatedException e) { throw new IllegalStateException(e); } } }