Please read with patience, I tried my best to explain the situation, if not please comment -
I have two plugins say A, B. In both of the plugins I defined an "and" expression for a command. One of the conditions in the "and" expression is to test a property lets say myprop.
A doesn't depend on B and B doesn't depend on A.
There is a property tester defined in a third plugin lets say C. A , B both depend on C.
And in a fourth plugin D, the extension point for org.eclipse.core.expressions.propertyTesters is defined and the list of properties to be tested by tester defined in plugin C.
A, B depends on plugin D too.
I see a strange behavior in eclipse - Only when perspective defined by plugin B is active the property tester for myprop is called.
So when RCP starts if plugin B is not already active, property tester doesn't test the property myprop and it returns unexpected value when I am in perspective of plugin A.
Later when I bring up perspective of plugin B, the property tester tests myprop and the plugin A then starts working properly.
Question : Why the property tester needs plugin B to be active ? How are properties evaluated by eclipse framework, is there an order ? or actually I should ask : When and how is a property tester for a particular property triggered ? Is there any documentation about it?
You probably need to specify
forcePluginActivation="true"on thetestelement of your expression as it sounds like the plugin containing the property tester has not activated by anything.