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.apache.myfaces.tobago.ajax.AjaxUtils;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 import javax.faces.application.NavigationHandler;
27 import javax.faces.context.FacesContext;
28
29 public class DebugNavigationHandler extends NavigationHandler {
30
31 private static final Logger LOG = LoggerFactory.getLogger(DebugNavigationHandler.class);
32
33 private NavigationHandler navigationHandler;
34
35 public DebugNavigationHandler(NavigationHandler navigationHandler) {
36 this.navigationHandler = navigationHandler;
37 }
38
39 public void handleNavigation(FacesContext facesContext, String fromAction, String outcome) {
40 if (LOG.isDebugEnabled()) {
41 LOG.debug("Handle Navigation context: " + facesContext + " fromAction: '"
42 + fromAction + "' outcome: '" + outcome + "'");
43 }
44
45 if (outcome != null && AjaxUtils.isAjaxRequest(facesContext)) {
46 LOG.warn("An AJAX-Request should not have an outcome set: outcome='" + outcome + "'");
47 }
48
49 navigationHandler.handleNavigation(facesContext, fromAction, outcome);
50
51 if (LOG.isDebugEnabled()) {
52 LOG.debug("Handled Navigation context: " + facesContext + " fromAction: '"
53 + fromAction + "' outcome: '" + outcome + "'");
54 }
55
56 }
57 }