Repository: ignite Updated Branches: refs/heads/ignite-2004 241ea988b -> d46d2f550
documentation Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d46d2f55 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d46d2f55 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d46d2f55 Branch: refs/heads/ignite-2004 Commit: d46d2f5501b2e264b72ac876ec2d862f18ba26ec Parents: 241ea98 Author: Yakov Zhdanov <[email protected]> Authored: Fri Apr 22 15:42:43 2016 +0300 Committer: Yakov Zhdanov <[email protected]> Committed: Fri Apr 22 15:42:43 2016 +0300 ---------------------------------------------------------------------- .../org/apache/ignite/cache/query/ContinuousQuery.java | 11 ++++++++--- .../apache/ignite/configuration/IgniteConfiguration.java | 3 +-- .../java/org/apache/ignite/lang/IgniteAsyncCallback.java | 8 ++++++-- 3 files changed, 15 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d46d2f55/modules/core/src/main/java/org/apache/ignite/cache/query/ContinuousQuery.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/query/ContinuousQuery.java b/modules/core/src/main/java/org/apache/ignite/cache/query/ContinuousQuery.java index ed0d4e8..237447b 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/query/ContinuousQuery.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/query/ContinuousQuery.java @@ -23,6 +23,7 @@ import javax.cache.event.CacheEntryEventFilter; import javax.cache.event.CacheEntryUpdatedListener; import org.apache.ignite.IgniteCache; import org.apache.ignite.cache.CacheEntryEventSerializableFilter; +import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.lang.IgniteAsyncCallback; /** @@ -94,11 +95,15 @@ import org.apache.ignite.lang.IgniteAsyncCallback; * be empty in this case, but it will still unregister listeners when {@link QueryCursor#close()} * is called. * <p> - * {@link CacheEntryEventFilter} and {@link CacheEntryUpdatedListener} support {@link IgniteAsyncCallback} annotation. - * If they are annotated in this case invocation of local listener and remote filter will be executing in non-system - * thread that allow to use cache operations inside of implementations. + * {@link IgniteAsyncCallback} annotation is supported for {@link CacheEntryEventFilter} + * (see {@link #setRemoteFilterFactory(Factory)}) and {@link CacheEntryUpdatedListener} + * (see {@link #setLocalListener(CacheEntryUpdatedListener)}). + * If filter and/or listener are annotated with {@link IgniteAsyncCallback} then annotated callback + * is executed in async callback pool (see {@link IgniteConfiguration#getAsyncCallbackPoolSize()}) + * and notification order is kept the same as update order for given cache key. * * @see IgniteAsyncCallback + * @see IgniteConfiguration#getAsyncCallbackPoolSize() */ public final class ContinuousQuery<K, V> extends Query<Cache.Entry<K, V>> { /** */ http://git-wip-us.apache.org/repos/asf/ignite/blob/d46d2f55/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java index 202a052..e791a0f 100644 --- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java +++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java @@ -730,8 +730,7 @@ public class IgniteConfiguration { /** * Size of thread pool that is in charge of processing asynchronous callbacks. * <p> - * This pool will be used for case when need to perform cache operation in callbacks but in system thread is not - * safe (potential deadlock, starvation and etc). For example {@link ContinuousQuery}. + * This pool is used for callbacks annotated with {@link IgniteAsyncCallback}. * <p> * If not provided, executor service will have size {@link #DFLT_PUBLIC_THREAD_CNT}. * http://git-wip-us.apache.org/repos/asf/ignite/blob/d46d2f55/modules/core/src/main/java/org/apache/ignite/lang/IgniteAsyncCallback.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/lang/IgniteAsyncCallback.java b/modules/core/src/main/java/org/apache/ignite/lang/IgniteAsyncCallback.java index c50fce3..1e04ce6 100644 --- a/modules/core/src/main/java/org/apache/ignite/lang/IgniteAsyncCallback.java +++ b/modules/core/src/main/java/org/apache/ignite/lang/IgniteAsyncCallback.java @@ -30,8 +30,10 @@ import org.apache.ignite.configuration.IgniteConfiguration; /** * If callback has this annotation then it will be executing in another thread. * <p> - * Now this annotation is supported {@link CacheEntryUpdatedListener} and {@link CacheEntryEventFilter} - * for {@link ContinuousQuery}. + * Currently this annotation is supported for: + * <ol> + * <li>{@link ContinuousQuery} - {@link CacheEntryUpdatedListener} and {@link CacheEntryEventFilter}.</li> + * </ol> * <p> * For example, if {@link CacheEntryEventFilter filter} or {@link CacheEntryListener} * has the annotation then callbacks will be executing to asyncCallback thread pool. It allows to use cache API @@ -99,6 +101,8 @@ import org.apache.ignite.configuration.IgniteConfiguration; * </pre> * * @see IgniteConfiguration#getAsyncCallbackPoolSize + * @see ContinuousQuery#getRemoteFilterFactory() + * @see ContinuousQuery#getLocalListener() */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE)
