| Summary: | Annotation Properties view should resolve annotation classes from project classpath | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [WebTools] WTP Webservices | Reporter: | Brian Fitzpatrick <bfitzpat> | ||||||||
| Component: | jst.ws.jaxws | Assignee: | Shane Clarke <shane_clarke> | ||||||||
| Status: | VERIFIED FIXED | QA Contact: | Shane Clarke <shane_clarke> | ||||||||
| Severity: | enhancement | ||||||||||
| Priority: | P3 | CC: | david_williams, keith.chong.ca, manderse, neil.hauge | ||||||||
| Version: | 3.2.1 | Keywords: | plan | ||||||||
| Target Milestone: | 3.3 M7 | Flags: | keith.chong.ca:
pmc_approved?
(david_williams) keith.chong.ca: pmc_approved? (raghunathan.srinivasan) keith.chong.ca: pmc_approved? (naci.dai) keith.chong.ca: pmc_approved? (deboer) neil.hauge: pmc_approved+ keith.chong.ca: pmc_approved? (kaloyan) keith.chong.ca: pmc_approved? (cbridgha) shane_clarke: review+ |
||||||||
| Hardware: | PC | ||||||||||
| OS: | Linux | ||||||||||
| Whiteboard: | jaxws PMC_approved | ||||||||||
| Attachments: |
|
||||||||||
|
Description
Brian Fitzpatrick
its not so much necessary that it comes from the users classpath but how to support mulitiple versions of same named annotations. And how to provide that from plugins without having to necessarily expose them on the classpath when simply parsing/reading the .class files should be sufficient. i.e. JDT doesn't load .class files to provide tooling for it. Shane...I'm targetting this to 3.3 M3 to get it to show up in the plan. Please adjust out if necessary. Won't have this finished for 3.3 M3. Retargeting. Created attachment 190708 [details]
annotations view patch
This won't make 3.3 M6 but i'll target M7 and request PMC review and approval. I've attached a patch that contains the changes to: org.eclipse.jst.ws.annotations.core org.eclipse.jst.ws.cxf.core org.eclipse.jst.ws.cxf.creation.core org.eclipse.jst.ws.cxf.creation.ui org.eclipse.jst.ws.jaxb.core org.eclipse.jst.ws.jaxws.core org.eclipse.jst.ws.jaxws.ui The key changes are the refactoring of the annotations view editing support to work with org.eclipse.jdt.core.IType and org.eclipse.jdt.core.IMethod instead of annotation classes and methods and the introduction of new API to support this. Annotation types are now resolved from the users projects classpath and multiple versions of the same named annotations can be supported using ordering of the build path. Key API changes: org.eclipse.jst.ws.annotations.core.AnnotationDefinition (cannot be extended by clients): getAnnotationClass() deprecated and replaced with getAnnotationType() getTargets() deprecated and replaced with getAnnotationTypeTargets() setJavaProject() used to find the annotation type. org.eclipse.jst.ws.annotations.core.AnnotationsManager (cannot be extended by clients): getAnnotations() deprecated replaced with getAnnotationTypes() org.eclipse.jst.ws.annotations.core.initialization.IAnnotationAttributeInitializer (interface not intended to be implemented or extended by clients) getMemberValuePairs(IJavaElement, AST, Class) is now deprecated replaced with getMemberValuePairs(IJavaElement, AST, IType) org.eclipse.jst.ws.annotations.core.initialization.AnnotationAttributeInitializer (Abstract base class for org.eclipse.jst.ws.annotations.core.annotationInitializer extension point. Implements IAnnotationAttributeInitializer and now contains default implementation of getMemberValuePairs(IJavaElement, AST, IType)) This change to AnnotationAttributeInitializer can be treated as non breaking http://wiki.eclipse.org/Evolving_Java-based_APIs#Example_4_-_Adding_an_API_method. The likelihood that a client has implemented a method with the same signature is sufficiently low. It's called by the annotations framework to provide memeber value pairs and is unlikey to be used outside of this. Existing clients which implement getMemberValuePairs(IJavaElement, AST, Class) will still continue to work. Keith could i ask you to review this patch for approval? * Fix has been tested installed on number of platforms. * All unit tests pass with fix. * No work-around available. * Fix is low risk. Reworking of view editing support tested extensively. I'm delegating the responsibility for the code review/acceptance of the patch to Shane, since this component is his area of specialty. This requires PMC approval since this enhancement is targeted for 3.3 M7, post-API freeze. Created attachment 191786 [details]
annotations view patch
Updated patch.
The original patch was missing a required dependency range increment for the org.eclipse.jst.ws.annotations.core dependency in two test plug-ins:
org.eclipse.jst.ws.jaxws.core.tests
org.eclipse.jst.ws.jaxb.core.tests
Created attachment 191966 [details]
annotations view patch
Attaching an updated patch after committing other bug fixes to HEAD which affect some of the same classes.
Patch committed. Verified in Build I-3.3.0-20110403110154 |