[
https://issues.apache.org/jira/browse/IGNITE-2560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15160344#comment-15160344
]
Semen Boikov commented on IGNITE-2560:
--------------------------------------
Reviewed, there are some problems:
- for me all new tests fail with error:
{noformat}
Caused by: java.lang.IllegalArgumentException: Unwrapping to class is not
supported: class org.apache.ignite.internal.processors.cache.GridCacheContext
at
org.apache.ignite.internal.processors.cache.CacheLazyEntry.unwrap(CacheLazyEntry.java:146)
at
org.apache.ignite.internal.processors.cache.CacheInvokeEntry.unwrap(CacheInvokeEntry.java:131)
at
org.apache.ignite.internal.processors.cache.EntryProcessorResourceInjectorProxy.process(EntryProcessorResourceInjectorProxy.java:68)
at
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:2186)
{noformat}
- can not find changes for local/atomic cache
- I think it makes sense to add flag 'entryProcessorAnnotations' in
GridResourceIoc.ClassDescriptor to avoid extra checks on each 'invoke' call
(and remove method 'isAnnotationsPresent' you added)
- need to add tests for both methods 'invokeAll(Map map)' and 'invokeAll(Set
keys, EntryProcessor entryProcessor)' and check in tests all supported
annotations
- need test all transaction types and not only case when tx is rolled back,
also for tx cache need check case without starting explicit transaction (just
'cache.invoke' outside of IgniteTransactions.start()/commit)
- please change exception thrown by EntryProcessorResourceInjectorProxy: 'throw
new RuntimeException(e)' -> 'throw new IgniteException("Failed to inject entry
processor resources', e);'
> Support injections in entry processors
> --------------------------------------
>
> Key: IGNITE-2560
> URL: https://issues.apache.org/jira/browse/IGNITE-2560
> Project: Ignite
> Issue Type: Improvement
> Components: cache
> Reporter: Valentin Kulichenko
> Assignee: Alexey Stelmak
> Fix For: 1.6
>
>
> Currently resources are not injected in entry processor, which is not
> consistent with other functionality, like closures, jobs, listeners, etc.
> To avoid performance degradation we should introspect the class only once,
> cache this information and do not try to inject if there are no annotations.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)