When updating one of my interceptors to org.apache.struts2. package, the class won't compile now:

The method doBeforeInvocation(com.opensymphony.xwork2.ActionInvocation) in the type ValidationInterceptor is not applicable for the arguments (org.apache.struts2.ActionInvocation)

The method doIntercept(ActionInvocation) of type DMIAwareValidationInterceptor must override or implement a supertype method

The method getValidationContext(ActionProxy) of type DMIAwareValidationInterceptor must override or implement a supertype method

The method getValidationContext(com.opensymphony.xwork2.ActionProxy) in the type ValidationInterceptor is not applicable for the arguments (org.apache.struts2.ActionProxy)

Maybe something got missed?

#####

Here is my class

package my.ui.struts2.interceptors;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.StrutsConstants;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionProxy;
import com.opensymphony.xwork2.inject.Inject;
import com.opensymphony.xwork2.validator.ValidationInterceptor;

/**
 * Define our own context to support method's names in validation file name if
 * DMI is enabled and method was specified validation file name will be
 * constructed like this: -
 *
 * <ActionClass>-<actionAlias>!<methodName>-validation.xml
 */
public class DMIAwareValidationInterceptor extends ValidationInterceptor {

    private static final long serialVersionUID = 9007212648956424490L;
    private boolean dmiEnabled = false;

@Inject(StrutsConstants.STRUTS_ENABLE_DYNAMIC_METHOD_INVOCATION)
    public void setEnableDynamicMethodInvocation(String value) {
        dmiEnabled = Boolean.parseBoolean(value);
    }

    @Override
    protected String doIntercept(ActionInvocation invocation) throws Exception {

        // Only run validator for a post if on DMI so handles errors correctly
        // final ActionContext context = invocation.getInvocationContext();
        final HttpServletRequest request = (HttpServletRequest) invocation
.getInvocationContext().get(ServletActionContext.HTTP_REQUEST);
        if (dmiEnabled && "POST".equals(request.getMethod()) || !dmiEnabled) {
            doBeforeInvocation(invocation);
        }
        return invocation.invoke();
    }

    /**
     * @see com.opensymphony.xwork2.validator.ValidationInterceptor#getValidationContext(com.opensymphony.xwork2.ActionProxy)
     */
    @Override
    protected String getValidationContext(ActionProxy proxy) {
        if (dmiEnabled && StringUtils.isNotEmpty(proxy.getMethod())) {
            return proxy.getActionName() + "!" + proxy.getMethod();
        }
        return super.getValidationContext(proxy);
    }

}


On 26/11/2024 06:06, Lukasz Lenart wrote:
Internal changes
A lot of classes have been marked as deprecated because of relocation
of them into a new package. All classes from package
com.opensymphony.xwork2  will be moved into org.apache.struts2  in
Struts 7 and this deprecation can help you adapt to incoming changes.

Reply via email to