package Ġplugin . extensions . core Ċ Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġplugin . extensions . Extension Ċ import Ġplugin . extensions . Extension Holder Ċ import Ġjava . util .* Ċ Ċ interface ĠExtension Registry Ġ{ ĊĠ Ġfun Ġregister ( e : ĠExtension ) Ċ } Ċ Ċ @ Component Ċ class ĠExtensions Ġ: ĠExtension Registry , ĠExtension Holder Ġ{ ĊĠ Ġprivate Ġval Ġholder Ġ= ĠIdentity HashMap < Extension , ĠExtension >() ĊĊĠ Ġoverride Ġfun Ġregister ( e : ĠExtension ) Ġ{ ĊĠĠĠ Ġprintln (" ExtensionRegistry : ĠRegistered Ġ${ e . java Class . simple Name }") ĊĠĠĠ Ġholder . put ( e , Ġe ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġval Ġextensions : ĠList < Extension > ĊĠĠĠ Ġget () Ġ= Ġholder . keys . filter NotNull (). toList (). sorted By Ġ{ Ġit . java Class . simple Name Ġ} Ċ } Ċ