[
https://issues.apache.org/jira/browse/GEODE-393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16061420#comment-16061420
]
ASF GitHub Bot commented on GEODE-393:
--------------------------------------
Github user jhuynh1 commented on a diff in the pull request:
https://github.com/apache/geode/pull/589#discussion_r123830138
--- Diff:
geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionContextImpl.java
---
@@ -37,20 +38,25 @@
private String functionId = null;
+ private Cache cache = null;
+
private ResultSender resultSender = null;
private final boolean isPossDup;
public FunctionContextImpl(final String functionId, final Object args,
ResultSender resultSender) {
- this.functionId = functionId;
- this.args = args;
- this.resultSender = resultSender;
- this.isPossDup = false;
+ this(null, functionId, args, resultSender, false);
+ }
+
+ public FunctionContextImpl(final Cache cache, final String functionId,
final Object args,
+ ResultSender resultSender) {
+ this(cache, functionId, args, resultSender, false);
}
- public FunctionContextImpl(final String functionId, final Object args,
ResultSender resultSender,
- boolean isPossibleDuplicate) {
+ public FunctionContextImpl(final Cache cache, final String functionId,
final Object args,
+ ResultSender resultSender, boolean isPossibleDuplicate) {
--- End diff --
Sure we can't remove GemFireCacheImpl.getInstance now and we might not be
able to ever... but in order for it to be possible, this change would need to
be made anyways if I am not mistaken... not making these constructor changes
will hinder the effort later. Since the work is already done, was there a
reason why we didn't want to make these signature changes? Is it too
cumbersome with the number of variables being passed in?
> FunctionContext should provide a Cache
> --------------------------------------
>
> Key: GEODE-393
> URL: https://issues.apache.org/jira/browse/GEODE-393
> Project: Geode
> Issue Type: Improvement
> Components: functions
> Reporter: Dan Smith
> Assignee: David Anuta
> Labels: starter
>
> FunctionContext has methods to get the arguments to the function and the
> result sender, but there is no way to get the Cache or DistributedSystem.
> This means pretty much any function will need to statically look up the cache
> using CacheFactory.getAnyInstance(). While that works, it makes it impossible
> to write unit tests for functions by passing in a mock cache.
> Note that onRegion functions are provided a RegionFunctionContext, which does
> provide these functions with a means to look up the cache, but not all
> functions are applied to a region.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)