Dirk Rudolph created SLING-11133:
------------------------------------
Summary: Cache model for its implementation type
Key: SLING-11133
URL: https://issues.apache.org/jira/browse/SLING-11133
Project: Sling
Issue Type: Improvement
Components: Sling Models
Reporter: Dirk Rudolph
Fix For: Models Implementation 1.5.2
Currently the ModelAdapterFactory caches a cacheable model for the requested
type only
https://github.com/apache/sling-org-apache-sling-models-impl/blob/master/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java#L430-L432
{code}
if (result.wasSuccessful() && modelAnnotation.cache() && adaptableCache !=
null) {
adaptableCache.put(requestedType, new
SoftReference<Object>(result.getValue()));
}
{code}
However, if a model is an adapter of multiple types an instance of it can also
be returned for more than just the requested type.
While it is not save to cache the model for all of its adapter types (see
SLING-11074), it is certainly save to cache the model for its implementation
type additionally to the requested type.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)