Primary purpose (GROOVY-11158): preserve runtime binary compatibility for classes compiled by Groovy 4 and Groovy 5 (and by earlier releases that always used classic call sites). Those classes link against CallSiteArray and CallSite; with this optional module on the classpath they must still load and execute on Groovy 6. The public linkage surface of those types is stable for that reason.
The same types also support compiling with indy disabled. Groovy 6 core uses invokedynamic for new compilation by default and does not depend on this package. Add groovy-callsite only when classic bytecode must still be produced or executed.
Prefer invokedynamic call sites for new code. This entire package is planned for deprecation/removal in a future Groovy version.
| Interface | Description |
|---|---|
| CallSite | Classic (non-invokedynamic) call site. |
| Class | Description |
|---|---|
| AbstractCallSite | Base class for all classic (non-invokedynamic) call sites. |
| BooleanClosureForMapPredicate |
|
| BooleanClosurePredicate |
|
| BooleanClosureWrapper | Helper class for internal use only. |
| BooleanReturningMethodInvoker | Helper class for internal use only. |
| CachedMethodCallSites | Creates optimized call sites for CachedMethod instances. |
| CallSiteArray | Array of classic (non-invokedynamic) call sites for a compiled class. |
| CallSiteClassLoader | Class loader used when generating specialized classic call-site classes. |
| CallSiteGenerator | Generates specialized call-site classes for the classic (non-indy) call-site cache. |
| ConstructorMetaClassSite | |
| ConstructorMetaMethodSite | Call site for invoking static methods metaclass - cached method - not cached |
| ConstructorSite | |
| ConstructorSite.ConstructorSiteNoUnwrap | Call site where we know there is no need to unwrap arguments |
| ConstructorSite.ConstructorSiteNoUnwrapNoCoerce | Call site where we know there is no need neither unwrap nor coerce arguments |
| ConstructorSite.NoParamSite | |
| ConstructorSite.NoParamSiteInnerClass | |
| GetEffectivePogoFieldSite | |
| GetEffectivePojoPropertySite | |
| MetaClassCallSites | Builds classic (non-indy) call sites for a MetaClassImpl. |
| MetaClassConstructorSite | Call site for constructor metaclass - cached method - not cached |
| MetaClassSite | Call site which holds reference to metaclass. |
| MetaMethodSite | Call site which caches meta method |
| NullCallSite | |
| PerInstancePojoMetaClassSite | |
| PlainObjectMetaMethodSite | Plain ordinary object call site metaclass - cached method - cached |
| PogoGetPropertySite | |
| PogoInterceptableSite | Call site for GroovyInterceptable |
| PogoMetaClassGetPropertySite | |
| PogoMetaClassSite | |
| PogoMetaMethodSite | POGO call site metaclass - cached method - cached |
| PogoMetaMethodSite.PogoCachedMethodSite | |
| PogoMetaMethodSite.PogoCachedMethodSiteNoUnwrap | |
| PogoMetaMethodSite.PogoCachedMethodSiteNoUnwrapNoCoerce | |
| PogoMetaMethodSite.PogoMetaMethodSiteNoUnwrap | Call site where we know there is no need to unwrap arguments |
| PogoMetaMethodSite.PogoMetaMethodSiteNoUnwrapNoCoerce | Call site where we know there is no need neither unwrap nor coerce arguments |
| PojoMetaClassGetPropertySite | |
| PojoMetaClassSite | POJO call site metaclass - cached method - not cached |
| PojoMetaMethodSite | POJO call site metaclass - cached method - cached |
| PojoMetaMethodSite.PojoCachedMethodSite | |
| PojoMetaMethodSite.PojoCachedMethodSiteNoUnwrap | |
| PojoMetaMethodSite.PojoCachedMethodSiteNoUnwrapNoCoerce | |
| PojoMetaMethodSite.PojoMetaMethodSiteNoUnwrap | Call site where we know there is no need to unwrap arguments |
| PojoMetaMethodSite.PojoMetaMethodSiteNoUnwrapNoCoerce | Call site where we know there is no need neither unwrap nor coerce arguments |
| StaticMetaClassSite | Call site for invoking static methods metaclass - cached method - not cached |
| StaticMetaMethodSite | POJO call site metaclass - cached method - cached |
| StaticMetaMethodSite.StaticMetaMethodSiteNoUnwrap | Call site where we know there is no need to unwrap arguments |
| StaticMetaMethodSite.StaticMetaMethodSiteNoUnwrapNoCoerce | Call site where we know there is no need neither unwrap nor coerce arguments |