API: Components vs Services Errors are they really needed?


There are a few components which were changed to services in the latest intellij-community master branch and now requesting these as application components generates an error in the log.

I fully understand the move and have absolutely nothing against it except the logging of the error.

From a user perspective there is no way to tell if the error was a real failure or just a log of a simulated error. In this case the error log is frivolous because no real failure occurred.

Keeping track of which components move to service in the next while is going to be a real PITA. Don’t we all have more urgent issues to deal with than scrap booking which component implementations changed to services in the latest build?

I hate to point out that as a user of the API I don’t give a flying hoot about the implementation being a component, a service or pixie dust magic.

I just want an instance of the effing thing so I can get something done.

Please stop logging these component requests for services as errors until you have completed the move from components to services and components are fully deprecated when the calls to instantiate them will start to fail in an upcoming release.

Otherwise, it is a going to be a freaking game of whack-a-mole from build to build as more components become services.

Right now these “errors” are nothing but noise in sea of real changes to the API that must be handled by plugins.

Thank you.


Use `getService` or `getComponent` only in the implementation of `getInstance`. Do not call it directly otherwise. If some platform component or service doesn't have corresponding `getInstance`, it means that it is internal API. If you think that still `getInstance` should be added, please file issue and specify for which service `getInstance` is required.


Vladimir Krivosheev, you are correct and I must apologize for my frustrated tone.

I really should ask my wife to play the good bar tender and take away my keyboard after a long day of work. My judgment is too impaired to communicate with others. Please accept my apology.

I am tripping over old code which I copied from some implementation I found long ago and getting frustrated by its brittleness.

I went over all the instances where component or service was used in my plugins and found that all could be replaced by getInstance() going back to 2017. Only DebugLogManager did not have it until lately and that one you cleaned up and added getInstance() so I only need to use get component for it on older IDEs.



Please sign in to leave a comment.