| Summary: | Validation Framework invokes the V1 validators too often | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [WebTools] WTP Common Tools | Reporter: | Wini Mark <wmmark> | ||||
| Component: | wst.validation | Assignee: | Wini Mark <wmmark> | ||||
| Status: | RESOLVED FIXED | QA Contact: | Chuck Bridgham <cbridgha> | ||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | ccc, deboer | ||||
| Version: | 3.2 | Flags: | ccc:
pmc_approved?
(david_williams) ccc: pmc_approved? (raghunathan.srinivasan) ccc: pmc_approved? (naci.dai) deboer: pmc_approved+ ccc: pmc_approved? (neil.hauge) ccc: pmc_approved? (kaloyan) ccc: review+ |
||||
| Target Milestone: | 3.2 RC2 | ||||||
| Hardware: | PC | ||||||
| OS: | Windows XP | ||||||
| See Also: | https://bugs.eclipse.org/bugs/show_bug.cgi?id=308326 | ||||||
| Whiteboard: | PMC_approved | ||||||
| Bug Depends on: | |||||||
| Bug Blocks: | 313619 | ||||||
| Attachments: |
|
||||||
|
Description
Wini Mark
This bug is a clone of 308326 for committing the patch in WTP 3.2 Created attachment 168980 [details]
Revised patch
I approve of this patch. Note that the changes to the public class are a private method and a private static, so this is not an API change. Require the PMC approval to check in the fix. The problem is one of the V1 validator is taking long time(e.g. 20 minutes) to run the validation and customer's work is highly affected. This is big performance regression.In current release, the validator is called per resource instead of per project in previous releases. In this case, the project has hundreds of resources which make the call to the validator hundreds of times instead of only one. There is no work around for this problem. We worked with the validator owner and the fix is to provide new element in the V1 validator extension point. The V1 validator can then specify if the validator will be called per project. The fix is safe as we add new element and attribute to an existing extension point. The fix has been tested by adding the element and attribute in the V1 validator plugin to ensure the validator is called by project. Ran some tests on validating different projects both in build and manual scenario to ensure different validators(e.g. JSP, EJB, XML valiadtor) are working as before. Putting this up for PMC approval. Also, as can be seen in bug 308326, Gary Karasiuk and myself have reviewed this fix. Hi. It says that this is a regression, but it looks like we're adding a new flag for individual validators to set and the default behaviour isn't changing. Can you clarify what the behaviour was before, what caused the regression, and whether any adopter that hits this would have to make a change to avoid the regression? Hi Tim, the V1 validators were called per project in old validation framework. After introducing the V2 validation framework, the behavior changed and the V1 validators are called per resource. Recently we noticed this problem from working with a customer performance issue. Gary, Valentin and I have worked together and decided it's too risky to change the logic of validating all V1 validators. In fact, the owner of the V1 validators has been asked to migrate to use the new V2 validation framework. The proposed fix is to provide a way for V1 validator to set if this particular validator should be called by project instead of per resource. We worked with the Java EE team who owns the validator which causes the performance issue and in fact they own the majority of the V1 validators and we all agree this is the most appropriate and safest fix at this moment. So far we didn't hear any performance issue with other V1 validators, but the adopters will have flexibility to decide if they want to making this change or not. Committed to HEAD for WTP 3.2 RC2 Wini, can you document this new addition to the extension point at http://wiki.eclipse.org/New_Help_for_Old_Friends_V ? Carl, I have added the information in the document. Thanks. |