[JBoss JIRA] (ISPN-6572) Improve JCache Remote behaviour when Management port unavailable
by Galder Zamarreño (JIRA)
Galder Zamarreño created ISPN-6572:
--------------------------------------
Summary: Improve JCache Remote behaviour when Management port unavailable
Key: ISPN-6572
URL: https://issues.jboss.org/browse/ISPN-6572
Project: Infinispan
Issue Type: Enhancement
Components: JCache, Remote Protocols
Reporter: Galder Zamarreño
Assignee: Galder Zamarreño
Fix For: 9.0.0.Alpha2, 9.0.0.Final
* Checking the existence of a cache should be done using RemoteCacheManager.getCache() to avoid the need to check cache existence via Management port.
* If Management port connection fails, the transaction should be laundered into an Exception that is more meaningful for the end user.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 8 months
[JBoss JIRA] (ISPN-6542) Subclasses of AbstractWriteKeyCommand don't marshal the Params params field
by Krzysztof Sobolewski (JIRA)
[ https://issues.jboss.org/browse/ISPN-6542?page=com.atlassian.jira.plugin.... ]
Krzysztof Sobolewski updated ISPN-6542:
---------------------------------------
Steps to Reproduce: For example, run the test at https://gist.github.com/ksobolew/74bb8ff6b321786e64a62ecd0e4c5878/664ca4f...; it was made for something else but it exhibits the failure in its #testLoadRemote test. In short: what you need is a write or read-write invocation of eval() in FunctionalAPI on a key of which the local node is not an owner. (was: For example, run the test at https://gist.github.com/ksobolew/74bb8ff6b321786e64a62ecd0e4c5878; it was made for something else but it exhibits the failure in its #testLoadRemote test. In short: what you need is a write or read-write invocation of eval() in FunctionalAPI on a key of which the local node is not an owner.)
> Subclasses of AbstractWriteKeyCommand don't marshal the Params params field
> ---------------------------------------------------------------------------
>
> Key: ISPN-6542
> URL: https://issues.jboss.org/browse/ISPN-6542
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.1.Final
> Reporter: Krzysztof Sobolewski
> Assignee: Radim Vansa
>
> I'm attempting to use the Functional API, but I'm unable to because of an exception like this:
> java.util.concurrent.ExecutionException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from FunctionalCachestoreTest-NodeB-820, see cause for remote stack trace
> at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
> at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
> (...)
> Caused by: java.lang.NullPointerException
> at org.infinispan.interceptors.CacheWriterInterceptor.visitWriteCommand(CacheWriterInterceptor.java:233)
> at org.infinispan.interceptors.CacheWriterInterceptor.visitReadWriteKeyCommand(CacheWriterInterceptor.java:215)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.CacheLoaderInterceptor.visitDataCommand(CacheLoaderInterceptor.java:190)
> at org.infinispan.interceptors.CacheLoaderInterceptor.visitReadWriteKeyCommand(CacheLoaderInterceptor.java:331)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:496)
> at org.infinispan.interceptors.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:561)
> at org.infinispan.interceptors.EntryWrappingInterceptor.visitReadWriteKeyCommand(EntryWrappingInterceptor.java:379)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitNonTxDataWriteCommand(AbstractLockingInterceptor.java:97)
> at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitDataWriteCommand(NonTransactionalLockingInterceptor.java:41)
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitReadWriteKeyCommand(AbstractLockingInterceptor.java:160)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:343)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:281)
> at org.infinispan.statetransfer.StateTransferInterceptor.visitReadWriteKeyCommand(StateTransferInterceptor.java:204)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
> at org.infinispan.commands.AbstractVisitor.visitReadWriteKeyCommand(AbstractVisitor.java:203)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:110)
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:79)
> at org.infinispan.commands.AbstractVisitor.visitReadWriteKeyCommand(AbstractVisitor.java:203)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
> at org.infinispan.commands.AbstractVisitor.visitReadWriteKeyCommand(AbstractVisitor.java:203)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:335)
> at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:43)
> at org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:51)
> at org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokePerform(BasePerCacheInboundInvocationHandler.java:92)
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:34)
> ... 3 more
> The line where the exception occurs is:
> Param<PersistenceMode> persistMode = command.getParams().get(PersistenceMode.ID);
> Turns out that command.getParams() returns null. Investigating further, it looks like the "params" field of ReadWriteKeyCommand is not marshaled; the receiver then unmarshals everythng except the "params" field, which remains null on the remote node, where the command fails.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 8 months
[JBoss JIRA] (ISPN-6542) Subclasses of AbstractWriteKeyCommand don't marshal the Params params field
by Krzysztof Sobolewski (JIRA)
[ https://issues.jboss.org/browse/ISPN-6542?page=com.atlassian.jira.plugin.... ]
Krzysztof Sobolewski commented on ISPN-6542:
--------------------------------------------
I can attest that the pull request fixed the linked test case.
> Subclasses of AbstractWriteKeyCommand don't marshal the Params params field
> ---------------------------------------------------------------------------
>
> Key: ISPN-6542
> URL: https://issues.jboss.org/browse/ISPN-6542
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.1.Final
> Reporter: Krzysztof Sobolewski
> Assignee: Radim Vansa
>
> I'm attempting to use the Functional API, but I'm unable to because of an exception like this:
> java.util.concurrent.ExecutionException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from FunctionalCachestoreTest-NodeB-820, see cause for remote stack trace
> at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
> at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
> (...)
> Caused by: java.lang.NullPointerException
> at org.infinispan.interceptors.CacheWriterInterceptor.visitWriteCommand(CacheWriterInterceptor.java:233)
> at org.infinispan.interceptors.CacheWriterInterceptor.visitReadWriteKeyCommand(CacheWriterInterceptor.java:215)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.CacheLoaderInterceptor.visitDataCommand(CacheLoaderInterceptor.java:190)
> at org.infinispan.interceptors.CacheLoaderInterceptor.visitReadWriteKeyCommand(CacheLoaderInterceptor.java:331)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:496)
> at org.infinispan.interceptors.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:561)
> at org.infinispan.interceptors.EntryWrappingInterceptor.visitReadWriteKeyCommand(EntryWrappingInterceptor.java:379)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitNonTxDataWriteCommand(AbstractLockingInterceptor.java:97)
> at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitDataWriteCommand(NonTransactionalLockingInterceptor.java:41)
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitReadWriteKeyCommand(AbstractLockingInterceptor.java:160)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:343)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:281)
> at org.infinispan.statetransfer.StateTransferInterceptor.visitReadWriteKeyCommand(StateTransferInterceptor.java:204)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
> at org.infinispan.commands.AbstractVisitor.visitReadWriteKeyCommand(AbstractVisitor.java:203)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:110)
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:79)
> at org.infinispan.commands.AbstractVisitor.visitReadWriteKeyCommand(AbstractVisitor.java:203)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
> at org.infinispan.commands.AbstractVisitor.visitReadWriteKeyCommand(AbstractVisitor.java:203)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:335)
> at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:43)
> at org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:51)
> at org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokePerform(BasePerCacheInboundInvocationHandler.java:92)
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:34)
> ... 3 more
> The line where the exception occurs is:
> Param<PersistenceMode> persistMode = command.getParams().get(PersistenceMode.ID);
> Turns out that command.getParams() returns null. Investigating further, it looks like the "params" field of ReadWriteKeyCommand is not marshaled; the receiver then unmarshals everythng except the "params" field, which remains null on the remote node, where the command fails.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 8 months
[JBoss JIRA] (ISPN-6300) Parameters, CacheManager and Marshaller are not passed to JavaScript in case of mode=distributed
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-6300?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-6300:
----------------------------------
Status: Pull Request Sent (was: Coding In Progress)
Git Pull Request: https://github.com/infinispan/infinispan/pull/4272
> Parameters, CacheManager and Marshaller are not passed to JavaScript in case of mode=distributed
> ------------------------------------------------------------------------------------------------
>
> Key: ISPN-6300
> URL: https://issues.jboss.org/browse/ISPN-6300
> Project: Infinispan
> Issue Type: Bug
> Components: Tasks
> Affects Versions: 8.1.2.Final
> Reporter: Anna Manukyan
> Assignee: Galder Zamarreño
> Fix For: 9.0.0.Alpha2, 9.0.0.Final
>
>
> When in javascript file the mode is set to distributed, the cacheManager, marshaller and parameters are not passed from the server.
> {code}
> // mode=distributed,language=javascript,parameters=[a]
> cache.put("a", a)
> cacheManager.getAddress()
> {code}
> Java Call:
> {code}
> CompletableFuture<ArrayList<JGroupsAddress>> resultsFuture = scriptingManager.runScript("distExec.js", new TaskContext().cache(cache(0)).addParameter("a", "value"));
> {code}
> The following line execution throws:
> {code}
> Caused by: <eval>:3 ReferenceError: "a" is not defined
> or
> "cacheManager" is not defined if the cache put is commented.
> {code}
> UPDATE:
> When the same script is run using on Hotrod Server via Hotrod client, the following exception is thrown:
> {code}
> org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=53 returned server error (status=0x85): java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ExecTest-NodeA-26018, see cause for remote stack trace
> java.util.concurrent.ExecutionException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ExecTest-NodeA-26018, see cause for remote stack trace
> org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ExecTest-NodeA-26018, see cause for remote stack trace
> org.infinispan.commons.marshall.NotSerializableException: jdk.nashorn.api.scripting.ScriptObjectMirror
> an exception which occurred:
> in field ecmaError
> in field cause
> in field cause
> in object org.infinispan.commons.CacheException@5f8d3629
> -> toString = org.infinispan.commons.CacheException: ISPN026003: Script execution error
> in object org.infinispan.remoting.responses.ExceptionResponse@19da5d4b
> -> toString = ExceptionResponse
> at org.infinispan.client.hotrod.impl.protocol.Codec20.checkForErrorsInResponseStatus(Codec20.java:343)
> at org.infinispan.client.hotrod.impl.protocol.Codec20.readPartialHeader(Codec20.java:132)
> at org.infinispan.client.hotrod.impl.protocol.Codec20.readHeader(Codec20.java:118)
> at org.infinispan.client.hotrod.impl.operations.HotRodOperation.readHeaderAndValidate(HotRodOperation.java:56)
> at org.infinispan.client.hotrod.impl.operations.ExecuteOperation.executeOperation(ExecuteOperation.java:49)
> at org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation.execute(RetryOnFailureOperation.java:54)
> at org.infinispan.client.hotrod.impl.RemoteCacheImpl.execute(RemoteCacheImpl.java:703)
> at org.infinispan.client.hotrod.ExecTest.testScriptExecutionWithPassingParams(ExecTest.java:119)
> ...
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 8 months
[JBoss JIRA] (ISPN-6300) Parameters, CacheManager and Marshaller are not passed to JavaScript in case of mode=distributed
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-6300?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-6300:
----------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> Parameters, CacheManager and Marshaller are not passed to JavaScript in case of mode=distributed
> ------------------------------------------------------------------------------------------------
>
> Key: ISPN-6300
> URL: https://issues.jboss.org/browse/ISPN-6300
> Project: Infinispan
> Issue Type: Bug
> Components: Tasks
> Affects Versions: 8.1.2.Final
> Reporter: Anna Manukyan
> Assignee: Galder Zamarreño
> Fix For: 9.0.0.Alpha2, 9.0.0.Final
>
>
> When in javascript file the mode is set to distributed, the cacheManager, marshaller and parameters are not passed from the server.
> {code}
> // mode=distributed,language=javascript,parameters=[a]
> cache.put("a", a)
> cacheManager.getAddress()
> {code}
> Java Call:
> {code}
> CompletableFuture<ArrayList<JGroupsAddress>> resultsFuture = scriptingManager.runScript("distExec.js", new TaskContext().cache(cache(0)).addParameter("a", "value"));
> {code}
> The following line execution throws:
> {code}
> Caused by: <eval>:3 ReferenceError: "a" is not defined
> or
> "cacheManager" is not defined if the cache put is commented.
> {code}
> UPDATE:
> When the same script is run using on Hotrod Server via Hotrod client, the following exception is thrown:
> {code}
> org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=53 returned server error (status=0x85): java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ExecTest-NodeA-26018, see cause for remote stack trace
> java.util.concurrent.ExecutionException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ExecTest-NodeA-26018, see cause for remote stack trace
> org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ExecTest-NodeA-26018, see cause for remote stack trace
> org.infinispan.commons.marshall.NotSerializableException: jdk.nashorn.api.scripting.ScriptObjectMirror
> an exception which occurred:
> in field ecmaError
> in field cause
> in field cause
> in object org.infinispan.commons.CacheException@5f8d3629
> -> toString = org.infinispan.commons.CacheException: ISPN026003: Script execution error
> in object org.infinispan.remoting.responses.ExceptionResponse@19da5d4b
> -> toString = ExceptionResponse
> at org.infinispan.client.hotrod.impl.protocol.Codec20.checkForErrorsInResponseStatus(Codec20.java:343)
> at org.infinispan.client.hotrod.impl.protocol.Codec20.readPartialHeader(Codec20.java:132)
> at org.infinispan.client.hotrod.impl.protocol.Codec20.readHeader(Codec20.java:118)
> at org.infinispan.client.hotrod.impl.operations.HotRodOperation.readHeaderAndValidate(HotRodOperation.java:56)
> at org.infinispan.client.hotrod.impl.operations.ExecuteOperation.executeOperation(ExecuteOperation.java:49)
> at org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation.execute(RetryOnFailureOperation.java:54)
> at org.infinispan.client.hotrod.impl.RemoteCacheImpl.execute(RemoteCacheImpl.java:703)
> at org.infinispan.client.hotrod.ExecTest.testScriptExecutionWithPassingParams(ExecTest.java:119)
> ...
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 8 months
[JBoss JIRA] (ISPN-6571) Adapt to configuration template changes
by Vladimir Blagojevic (JIRA)
Vladimir Blagojevic created ISPN-6571:
-----------------------------------------
Summary: Adapt to configuration template changes
Key: ISPN-6571
URL: https://issues.jboss.org/browse/ISPN-6571
Project: Infinispan
Issue Type: Bug
Components: Console
Affects Versions: 9.0.0.Alpha1
Reporter: Vladimir Blagojevic
Fix For: 9.0.0.Alpha3
ISPN-6301 introduced boolean configuration field 'template'. There are two types of configurations: "template" (they have the template attribute set to true) and "concrete" (template is false). We need to adapt javascript model to reflect this change as we used template for template name.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 8 months
[JBoss JIRA] (ISPN-1103) Soft schema-based storage
by Randall Hauch (JIRA)
[ https://issues.jboss.org/browse/ISPN-1103?page=com.atlassian.jira.plugin.... ]
Randall Hauch resolved ISPN-1103.
---------------------------------
Resolution: Rejected
Rejecting, since there is no reason for this anymore.
> Soft schema-based storage
> -------------------------
>
> Key: ISPN-1103
> URL: https://issues.jboss.org/browse/ISPN-1103
> Project: Infinispan
> Issue Type: Feature Request
> Components: Core
> Reporter: Manik Surtani
> Assignee: Randall Hauch
> Priority: Critical
>
> This JIRA is about storing metadata alongside values. Perhaps encapsulating values as SchematicValues, which could be described as:
> {code}
> class SchematicValue {
> String jsonMetadata;
> String jsonObject;
> }
> {code}
> Metadata would allow for a few interesting features:
> * Extracting of lifespan and timestamp data if manipulated over a remote protocol (REST, HotRod, etc)
> * Content type for REST responses
> * Timestamps and SHA-1 hashes, useful for for HTTP headers (e.g., ETag, Cache-control, etc.)
> * Validation information (may not be processed by Infinispan, but can be used by client libs)
> * Classloader/marshaller/classdef version info
> * General structure of the information stored
> * Reference to the schema for this document
> * Storage of older versions
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 8 months