From what I understood from a quick read of the results of Google, a plug-in adapter is an adapter that is not hardcoded with respect to a particular adapter. On the surface (the adapterโs own interface), itโs all the same, but it can adapt to various adapters with different interfaces. I found this thread quite explanatory:
Basically, this allows the adapter when the adaptable (receiver) protocol is not known at compile time using reflection. When you create an adapter instance, you pass its name to the adapttee method to invoke, as well as any necessary metadata for translating input types. When the adapter receives a method call to the target interface, it uses reflection to invoke the corresponding method specified on the adapter.
And this :
The primary responsibility of the Viewer is to populate the widget from the domain of the model without any assumptions about the domain itself. The JFace viewer uses the mechanism of delegating objects in an adapter template with a plug-in adapter, the above requirement.

Think of it as faces from Alien ; when he hugs his face, all you see is the mucous back of the face. You can stick it with a stick and try to wring your hands (adapter interface). But basically, he can hug the face of any person (adaptable), regardless of the features of the face. Maybe I pushed him a little, but, hey, I love the Alien.
Ates goral
source share