modifying facet constraints programmatically [message #491276] |
Tue, 13 October 2009 18:21  |
Eclipse User |
|
|
|
Hi!
I had a question regarding WTP facets that I was hoping someone might be able to help me with.
I work on a project that adds a custom facet to a dynamic web project, along with a certain number of required prerequisites. Some time after the project is created, I need to be able to remove some of those required facets programmatically as part of project maintenance. I am running into a problem, however, because understandably "One or more constraints have not been satisfied." So my question is: is there any way to programmatically modify the project's constraints so that I can remove required facets (or add conflicting ones)?
I really appreciate any help or direction you can offer in this regard.
thank you,
Hania A.
|
|
|
|
|
|
|
Re: modifying facet constraints programmatically [message #572197 is a reply to message #491276] |
Wed, 14 October 2009 13:39  |
Eclipse User |
|
|
|
The API is not going to knowingly allow you to get into an invalid state, so you can't remove a facet that another facet depends on and leave it at that.
But, the API does support the case where you are replacing one facet with another. Say you have facet A that requires B or C. Currently A and B are installed. You can't just remove B, but you can remove B and add C as long as you do it all in one operation. If this sounds like something that would help you out, take a look at the IFacetedProjectWorkingCopy interface. The working copy allows you to compose all of the your changes in memory and then do a single "commit" operation.
Hope this helps.
- Konstantin
|
|
|
Re: modifying facet constraints programmatically [message #572214 is a reply to message #572197] |
Wed, 14 October 2009 13:52  |
Eclipse User |
|
|
|
Thanks Konstantin. I've been using IFacetedProjectWorkingCopy that but it didn't solve my problem.
What I would like to do is to completely change what the requirements of my facet are programmatically so that the new state is not considered invalid.
Eg. originally my facet A required B and C, I would now like to modify it so that A only requires B. Or instead A requires B and D and conflicts with E, etc.
I would like to do this without changing plugin.xml.
Do you know if there is a way to do this?
thank you,
Hania
|
|
|
Re: modifying facet constraints programmatically [message #572243 is a reply to message #572214] |
Wed, 14 October 2009 13:58  |
Eclipse User |
|
|
|
I am afraid that there is no way to alter facet constraints without changing facet declaration. I am curious though about your scenario where you are finding this to be necessary. Could you go into more detail? I haven't heard anyone request localized constraints before.
- Konstantin
|
|
|
Re: modifying facet constraints programmatically [message #572277 is a reply to message #491472] |
Wed, 14 October 2009 14:19  |
Eclipse User |
|
|
|
Actually I'm trying to get around a side effect that a facet I require causes when modifying the version but not when installing it. So rather than changing the version I was trying to uninstall/reinstall. Since I have to do it all in one operation, however, it's smart enough to recognize this sequence as a version change action and causes the unwanted side-effect anyhow.
I realize this is not exactly a scenario that would be ideal for dynamically modifying constraints, but I had hoped the facility existed for some other more legitimate reason :)
thank you for your help anyhow Konstantin, much appreciated!
Hania
|
|
|
Powered by
FUDForum. Page generated in 0.04139 seconds