Re: 6.7.0 com.opensymphony.xwork2.ActionInvocation /ActionProxy package change
Greg Huber <[email protected]>
| Newsgroups | gmane.comp.jakarta.struts.devel |
|---|---|
| Message-ID | <[email protected]> |
OK thanks. I guess if v6 is going into maintenance only, the mirroring of the same classes with different package names should be less problematic. On 29/11/2024 03:38, Kusal Kithul-Godage wrote: > If you're extending a class in the com.opensymphony.xwork2 package you > may not be able to migrate across deprecated imports. In this case > you're extending > com.opensymphony.xwork2.validator.ValidationInterceptor and so you > will need to retain the deprecated imports. It's not that something > was missed, I just didn't get around to introducing org.apache.struts2 > variants for every class (ensuring cross-compatibility during this > process is not always simple). So you may end up with some code or > classes that unfortunately can't be migrated until 7.0. > > On Thu, Nov 28, 2024 at 8:27 PM Greg Huber<[email protected]> wrote: >> 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. > --------------------------------------------------------------------- > To unsubscribe, e-mail:[email protected] > For additional commands, e-mail:[email protected] >