All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.struts2.interceptor.ProfilingActivationInterceptor Maven / Gradle / Ivy

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.apache.struts2.interceptor;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.inject.Inject;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.opensymphony.xwork2.util.profiling.UtilTimerStack;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.struts2.StrutsConstants;
import org.apache.struts2.dispatcher.Parameter;

/**
 * 
 *
 * Allows profiling to be enabled or disabled via request parameters, when
 * devMode is enabled.
 *
 * 
 *
 *
 * 
 *
 * 
    *
  • profilingKey
  • *
* * * * * * none * * * *
 * 
 * // to change the profiling key
 * <action ...>
 *   ...
 *   <interceptor-ref name="profiling">
 *      <param name="profilingKey">profilingKey</param>
 *   </interceptor-ref>
 *   ...
 * </action>
 * 
 * 
* * @version $Date$ $Id$ */ public class ProfilingActivationInterceptor extends AbstractInterceptor { private String profilingKey = "profiling"; private boolean devMode; /** * @return the profilingKey */ public String getProfilingKey() { return profilingKey; } /** * @param profilingKey the profilingKey to set */ public void setProfilingKey(String profilingKey) { this.profilingKey = profilingKey; } @Inject(StrutsConstants.STRUTS_DEVMODE) public void setDevMode(String mode) { this.devMode = BooleanUtils.toBoolean(mode); } @Override public String intercept(ActionInvocation invocation) throws Exception { if (devMode) { Parameter val = invocation.getInvocationContext().getParameters().get(profilingKey); if (val.isDefined()) { String sval = val.getValue(); boolean enable = BooleanUtils.toBoolean(sval); UtilTimerStack.setActive(enable); invocation.getInvocationContext().getParameters().remove(profilingKey); } } return invocation.invoke(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy