[ https://issues.apache.org/jira/browse/IGNITE-2560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15160344#comment-15160344 ]
Semen Boikov edited comment on IGNITE-2560 at 2/24/16 8:14 AM: --------------------------------------------------------------- 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);' - inside GridCacheMapEntry.innerGet0 and innerUpdate entry processor class name is passed to EVT_CACHE_OBJECT_READ, when proxy is used then original entry processor class name is lost, need to fix this and add test was (Author: sboikov): 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)