-
Notifications
You must be signed in to change notification settings - Fork 1
SCR v1.3 support #23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
SCR v1.3 support #23
Conversation
Removed lib from feature.
|
Thank you Arie, I'll take a look in the next few days and will come back with questions/feedback. |
|
Arie, apologies for the delay -- I was hoping to have a more complete review by now but there are just too many things going on. Some initial comments and observations:
|
|
Hi Peter, Ad 1. Ad 2, 3. I will make the change for 1. later and commit again. That will be early next week, since I am busy with other stuff the remainder of this week. |
|
Hi Peter, I added some commits:
|
|
FYI after a long wait this project has been contributed to Eclipse PDE proper (targeted for Neon M6). The version I submitted is missing a few of the most recent commits (basically what went into v1.2.8). See https://bugs.eclipse.org/bugs/show_bug.cgi?id=376950. Here's what I'm planning to do:
|
|
Arie, while reviewing and merging your changes, I realized that there will be additional code required to handle the newly added component property types. Up until now, the entire descriptor could be generated from one class (the component implementation class). However, when component property types are used, these could be in entirely separate compilation units, packages and even projects; whenever those change, the impacted implementation classes will have to be re-processed. This is not quite trivial -- I have to think about how to approach this; e.g., maintain a mapping of cpt-to-implementation (one to many), then trigger build on those implementations; but what if they're in unrelated (non-DS) projects?.. etc. Let me know if you have any ideas. |
|
Hi Peter, Regards, |
Hi Peter,
As promised the changes for support of the v1.3 SCR specification. This means that the following new features should be supported now:
@Referenceannotations for fields, both collection types and normal service references.@interfaceas life-cycle method parameters.I tested the features and afterwards we checked both the original functionality and (some of the) new features in some projects we are currently busy with. This means that the code should be relatively stable, although we don't use the more advanced/exotic features.
What is changed?
@interfaceparameters and process properties with defaults from them.Known issues
@Referenceannotations. If such annotations contain errors/warnings, these are not shown unless both the component source and the base class source are compiled in one go (because of a clean action for example). The problem is related to the fact thatDSAnnotationCompilationParticipant.processAnnotationsis called twice, once for the base class and once for the main class and as such theBuildContextof the base class is not present anymore when the error occurs. As such the problem cannot be reported.If you have any questions or need additional information, don't hesitate to contact me.
Best regards,
Arie van Wijngaarden