I prefer to change the current behavior, consumer side should not be affected in this case, if someone care about performance, they can add validation on consumer side explicitly.
Other opinions? > On 7 Mar 2018, at 3:47 PM, Sunshow <suns...@gmail.com> wrote: > > Yes, that's my problem. > > from the document, consumer can enable or disable validation itself. > > On Wed, Mar 7, 2018 at 3:41 PM jun liu <ken.lj...@gmail.com> wrote: > >> Hi Sunshow, Ian >> >> I think i have reproduced this problem, the key point is: When we switch >> param validation on on provider side, all consumer projects need to add >> necessary dependencies explicitly (param validation was force opened on >> consumer side). This means provider and consumer are bind together. Is this >> exactly your problem, sunshow? >> >> Should we change this behavior? >> >>>> I think it is reasonable to check validation conditions on consumer side >>>> before params passed to provider side as this can be more efficient. If >> we >>>> keep it this way, we will meet the problem in your case: all consumers >> have >>>> to be aware of provider side validation configurations, for example when >>>> provider opened validation check, consumer side have to add necessary >>>> dependencies. >> >> >> Best regards, >> Jun Liu >> >>> On 7 Mar 2018, at 2:44 PM, Ian Luo <ian....@gmail.com> wrote: >>> >>> Hi Sunshow, >>> >>> Could you pls. attach a test case to reproduce the issue you described >>> here? I'd like to further investigate once I receive the reproducer. >>> >>> Thanks, >>> -Ian. >>> >>> >>> On Wed, Mar 7, 2018 at 2:14 PM, Sunshow <suns...@gmail.com> wrote: >>> >>>> ATT. >>>> >>>> this case consumer leads to throw >>>> >>>> Caused by: java.lang.NoClassDefFoundError: javax/validation/Validation >>>> >>>> even while calling no validation method, unless add all validation >>>> dependencies to consumer, >>>> >>>> that's not awesome, consumer side check should be activated by consumer >>>> self. >>>> >>>> one more question about ValidationFilter: >>>> >>>> why the condition check is isNotEmpty: >>>> ConfigUtils.isNotEmpty(invoker.getUrl().getMethodParameter(invocation. >>>> getMethodName(), >>>> Constants.VALIDATION_KEY)) >>>> >>>> and previous version check true or false: >>>> if (invoker.getUrl().getMethodParameter(invocation.getMethodName(), >>>> Constants.VALIDATION_KEY, false)) >>>> >>>> >>>> Below is the reply from @ken.lj: >>>> >>>> >>>> I think it is reasonable to check validation conditions on consumer side >>>> before params passed to provider side as this can be more efficient. If >> we >>>> keep it this way, we will meet the problem in your case: all consumers >> have >>>> to be aware of provider side validation configurations, for example when >>>> provider opened validation check, consumer side have to add necessary >>>> dependencies. >>>> >>>> Please, send this problem to dev@dubbo.apache.org, and subscribe to >> this >>>> email address <https://github.com/alibaba/dubbo/issues/1393>. We can >>>> decide >>>> which way to go after a full discussion. >>>> >> >>