[
https://issues.jboss.org/browse/ISPN-5131?page=com.atlassian.jira.plugin....
]
Sebastian Łaskawiec updated ISPN-5131:
--------------------------------------
Description:
h2. Overview
Support the deployment and configuration of a custom cache store.
h2. Client Perspective
In order to create a deployable Cache Store the client will have to implement
{{AdvancedLoadWriteStoreFactory}} (which will contain factory methods for creating
{{AdvancedLoadWriteStore}}). Next, the factory will have to be annotated with
{{@NamedFactory}} and placed into a jar together with proper entry of
{{META-INF/services/org.infinispan.persistence.AdvancedLoadWriteStoreFactory}}. The last
activity is to deploy given jar into Hotrod server.
h2. Implementation overview
The implementation is based on Deployable Filters and Converters.
Currently all writers and loaders are instantiated in
{{PersistenceManagerImpl#createLoadersAndWriters}}. This implementation will be modified
to use {{LoadWriteStoreRegistry}}, which will contain a list of
{{AdvancedLoadWriteStoreFactories}}. One of the factories will be added by default - the
local one (which will the same mechanism as we do now -
{{Util.getInstance(classAnnotation)}}. Other {{AdvancedLoadWriteStoreFactories}} will be
added after deployment scanning.
h2. Implementation doubts and questions:
* Should we expose a factory for {{AdvancedLoadWriteStore}} or should we include also
{{ExternalStore}} (or even separate factory for {{CacheLoader}} and {{CacheWriter}}?
* How to ensure that deployment scanning has finished before creating instantiating
{{AdvancedLoadWriteStore}}?
was:
h2. Overview
Support the deployment and configuration of a custom cache store.
h2. Client Perspective
In order to create a deployable Cache Store the client will have to implement
{{AdvancedLoadWriteStoreFactory}} (which will contain factory methods for creating
{{AdvancedLoadWriteStore}}). Next the factory will have to be annotated with
{{@NamedFactory}} and placed into a jar together with proper entry of
{{META-INF/services/org.infinispan.persistence.AdvancedLoadWriteStoreFactory}}. The last
activity is to deploy given jar into Hotrod server.
h2. Implementation overview
The implementation is based on Deployable Filters and Converters.
Currently all writers and loaders are instantiated in
{{PersistenceManagerImpl#createLoadersAndWriters}}. This implementation will be modified
to use {{LoadWriteStoreRegistry}}, which will contain a list of
{{AdvancedLoadWriteStoreFactories}}. One of the factories will be added by default - the
local one (which will the same mechanism as we do now -
{{Util.getInstance(classAnnotation)}}. Other {{AdvancedLoadWriteStoreFactories}} will be
added after deployment scanning.
h2. Implementation doubts and questions:
* Should we expose a factory for {{AdvancedLoadWriteStore}} or should we include also
{{ExternalStore}} (or even separate factory for {{CacheLoader}} and {{CacheWriter}}?
* How to ensure that deployment scanning has finished before creating instantiating
{{AdvancedLoadWriteStore}}?
Deploy custom cache store to Infinispan Server
----------------------------------------------
Key: ISPN-5131
URL:
https://issues.jboss.org/browse/ISPN-5131
Project: Infinispan
Issue Type: Feature Request
Components: Loaders and Stores, Server
Reporter: Tristan Tarrant
Assignee: Sebastian Łaskawiec
Fix For: 7.2.0.Final
h2. Overview
Support the deployment and configuration of a custom cache store.
h2. Client Perspective
In order to create a deployable Cache Store the client will have to implement
{{AdvancedLoadWriteStoreFactory}} (which will contain factory methods for creating
{{AdvancedLoadWriteStore}}). Next, the factory will have to be annotated with
{{@NamedFactory}} and placed into a jar together with proper entry of
{{META-INF/services/org.infinispan.persistence.AdvancedLoadWriteStoreFactory}}. The last
activity is to deploy given jar into Hotrod server.
h2. Implementation overview
The implementation is based on Deployable Filters and Converters.
Currently all writers and loaders are instantiated in
{{PersistenceManagerImpl#createLoadersAndWriters}}. This implementation will be modified
to use {{LoadWriteStoreRegistry}}, which will contain a list of
{{AdvancedLoadWriteStoreFactories}}. One of the factories will be added by default - the
local one (which will the same mechanism as we do now -
{{Util.getInstance(classAnnotation)}}. Other {{AdvancedLoadWriteStoreFactories}} will be
added after deployment scanning.
h2. Implementation doubts and questions:
* Should we expose a factory for {{AdvancedLoadWriteStore}} or should we include also
{{ExternalStore}} (or even separate factory for {{CacheLoader}} and {{CacheWriter}}?
* How to ensure that deployment scanning has finished before creating instantiating
{{AdvancedLoadWriteStore}}?
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)