I have encountered a 
cyclic dependency issue while 
developing  application using eclipse based plug-in development environment.  Here I am going to explain the issue, which you might be also  encountered during the plug-in development and which would have lead you  to
 re-factorize your code to solve this issue. But here I am  going to use extension-point using which I can invoke execute code from  another plug-in and get results without adding 
interdependency between  them.
Example:
I have eclipse
 plug-ins  PluginA and PluginB, here PluginB is already dependent on PluginA.  Now I have
 some class method in PluginB, and I would like to execute  that method from one of the class in PluginA .
- If we add the  
dependency of PluginA on PluginB then it would result in cyclic  dependency.
- Alternatively, what we can do is to
 re-factor  the code in such a way that this method and relevant calsses moved to  PluginA so that it would be available in both PluginA and PluginB,  but this solution will be 
expensive in the well 
deployed  system since it involves lot of testing efforts and it may break, if  we missed out something during re-factoring, And there may more such  logic should come out and again we need to re-factorize with same  process.
- Here, I am going to discuss
 alternate and permanent  solution which can be used for calling method of the class which belong  to PluginB form some class of PluginA without adding dependency and  avoiding the re-factorization of the code.
Visit http://technical-tejash.blogspot.com/2010/03/eclipse-avoid-cyclic-dependency-between.html for step by step guide about Using  extension-point to avoid cyclic dependency between 2 plugins without  refactoring code