Description
Problem
Sometimes user could have mixed cluster when some nodes are running Java and some nodes running in platform mode. Obviously, in such deployments it is impossible to invoke non-Java code on Java nodes.
It appears to be a serious limitation for users. For example, if cache nodes are Java-only, it is impossible to set remote filter from .NET.
Known problematic places:
- Remote filter in continuous query
- Compute API
- Scan Queries
- Cache.invokes
- "load cache" with non-null predicate
- services
- messaging remote listener
- events remote query
Proposed solution
1) Define two new types:
JavaObject - encoded Java object; identified by a fully-qualified class name and a map of properties.
JavaObjectFactory - factory object for more complex cases when some additional logic on Java side is required. Factory must support injections.
2) Implement corresponding wrappers in .NET and ensure they are unwrapped correctly.
3) Support individual features from the list above.