Hi Oisin,
I'm not sure where your annotation support currently is, but I can give
you a brief history of our experience and where we are today. I'm not
sure if you are interested more with the UI related issues, model/JDT
issues, or both, so I'll just touch on everything here.
The annotation editing support in our initial 0.5 release consisted of
a custom View linked to the Java Editor with form based editing of
annotations. An example of this can be seen here -
http://www.eclipse.org/dali/viewlets/03-Map_Entities_to_Tables_viewlet_swf.html.
Behind the UI, we are modifying the JDT's AST to accomplish the
modification of annotations and their values. This code can be found
here -
/cvsroot/webtools/org.eclipse.jpa/plugins/org.eclipse.dali.core/source
in the package org.eclipse.dali.core.util.jdt.
Now, there are a lot of possible changes on the horizon, and the path
is not clear as to where the UI and model aspects of annotation editing
are headed. For starters, the code written (in core.util.jdt) to
modify annotations in the java source was written with minimal support
for annotations in the JDT. For 3.3, it appears that the JDT team is
going to improve the model support for annotations. Here are a couple
of bugs related to this: 79112, 106108.
So, it is possible that our rather complex annotation editing code may
be simplified as a result of these enhancements (in addition to our own
refactoring).
There is also no support for annotation value code completion, which
I'm not sure pertains to your requirements, but there are bugs entered
for this as well if you are interested. On a related note, there is
the APT project inside JDT which provides annotation processor tool
support. Up until now, we haven't needed to integrate with APT, given
the functionality currently provided. We plan to use the APT in the
future to provide certain types of annotation validation.
Another part of our implementation that is likely to change is our
custom View for annotation editing. I wanted the tooling to behave in
a more platform consistent manner, so we have been making a push to use
the new Tabbed Properties view for annotation editing, and have the
Java Editor participate in Tabbed Properties to make this possible.
This seemed like a good way to move to a platform based UI component
for a more consistent approach. Related bugs are: 154781. We have
run into some problems here as well, including some Tabbed
Properties issues, but we think this might be our solution for
Europa.
In addition, there may be a contribution of a generic annotation
editing view in the future by BEA. This editing view behaves more like
a Property Inspector, and would potentially handle the editing of the
annotations in some way, although I am not sure exactly how this
functionality works, as it is currently still proprietary code.
So, in conclusion, I would say that annotation support has been a very
bumpy road, as it doesn't appear that many have traveled down this road
before us. It would appear that things might be getting a little
smoother in the near future, but there are no guarantees.
With another project interested in annotation support we might be able
to push harder for changes in the platform and JDT to accomodate the
needs of annotation support requirements. Let me know what questions
you have and we can continue this discussion. I would be interested to
hear about how you would like to support annotations.
Neil
Oisin Hurley wrote:
On 11 Oct 2006, at 10:48, Naci Dai wrote:
I want to introduce Oision from STP project.
They have been looking at annotation editing from the perspective of
SCA. Maybe you can share some of your experiences there so far.
Hi Neil
We have also been looking at this from the perspective of JAXWS
web service development. Your experiences would be very valuable
to us as we go on to extend our annotation support.
best regards
Oisin
----
+353 1 637 2639
http://blogs.iona.com/ohurley
|