1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.util;
21
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
24
25 import javax.faces.application.NavigationHandler;
26 import javax.faces.context.FacesContext;
27 import java.lang.invoke.MethodHandles;
28
29 public class DebugNavigationHandler extends NavigationHandler {
30
31 private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
32
33 private NavigationHandler navigationHandler;
34
35 public DebugNavigationHandler(final NavigationHandler navigationHandler) {
36 this.navigationHandler = navigationHandler;
37 }
38
39 @Override
40 public void handleNavigation(final FacesContext facesContext, final String fromAction, final String outcome) {
41 if (LOG.isDebugEnabled()) {
42 LOG.debug("Handle Navigation context: " + facesContext + " fromAction: '"
43 + fromAction + "' outcome: '" + outcome + "'");
44 }
45
46
47 if (outcome != null && facesContext.getPartialViewContext().isAjaxRequest()) {
48 LOG.warn("An AJAX-Request should not have an outcome set: outcome='" + outcome + "'");
49 }
50
51 navigationHandler.handleNavigation(facesContext, fromAction, outcome);
52
53 if (LOG.isDebugEnabled()) {
54 LOG.debug("Handled Navigation context: " + facesContext + " fromAction: '"
55 + fromAction + "' outcome: '" + outcome + "'");
56 }
57
58 }
59 }