public class UserCodeDeploymentConfig extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
UserCodeDeploymentConfig.ClassCacheMode
Controls caching of caches loaded from remote members
|
static class |
UserCodeDeploymentConfig.ProviderMode
Controls how to react on receiving a classloading request from a remote member
|
| Constructor and Description |
|---|
UserCodeDeploymentConfig() |
| Modifier and Type | Method and Description |
|---|---|
String |
getBlacklistedPrefixes()
Return currently configured blacklist prefixes.
|
UserCodeDeploymentConfig.ClassCacheMode |
getClassCacheMode()
Return the current ClassCacheMode
|
String |
getProviderFilter()
Get current filter or
null when no filter is defined. |
UserCodeDeploymentConfig.ProviderMode |
getProviderMode()
Return the current ProviderMode
|
String |
getWhitelistedPrefixes()
Return currently configured whitelist prefixes
|
boolean |
isEnabled()
Returns true when User Code Deployment is enabled
|
UserCodeDeploymentConfig |
setBlacklistedPrefixes(String blacklistedPrefixes)
Comma separated list of prefixes of classes which will never be loaded remotely.
|
UserCodeDeploymentConfig |
setClassCacheMode(UserCodeDeploymentConfig.ClassCacheMode classCacheMode)
Configure caching of classes loaded from remote members.
|
UserCodeDeploymentConfig |
setEnabled(boolean enabled)
Enable or disable User Code Deployment.
|
UserCodeDeploymentConfig |
setProviderFilter(String providerFilter)
Filter to constraint members to be used for classloading request when a user class
is not available locally.
|
UserCodeDeploymentConfig |
setProviderMode(UserCodeDeploymentConfig.ProviderMode providerMode)
Configure behaviour when providing classes to remote members.
|
UserCodeDeploymentConfig |
setWhitelistedPrefixes(String whitelistedPrefixes)
Comma separated list of prefixes of classes which will be loaded remotely.
|
public UserCodeDeploymentConfig setEnabled(boolean enabled)
falsepublic boolean isEnabled()
true when User Code Deployment is enabledpublic UserCodeDeploymentConfig setProviderFilter(String providerFilter)
HAS_ATTRIBUTE:foo this will send classloading requests
only to members which has a member attribute foo set. Value is ignored,
it can be any type. A present of the attribute is sufficient.
This facility allows to have a fine grained control on classloading. You can e.g. start Hazelcast lite
members dedicated for class-serving.
Example usage:
This member will load classes only from members with the class-provider attribute set.
It won't ask any other member to provide a locally unavailable class:
Config hazelcastConfig = new Config();
UserCodeDeploymentConfig userCodeDeploymentConfig = hazelcastConfig.getUserCodeDeploymentConfig();
userCodeDeploymentConfig.setProviderFilter("HAS_ATTRIBUTE:class-provider");
HazecastInstance instance = Hazelcast.newHazelcastInstance(hazelcastConfig);
This member is marked with the class-provider attribute - the member configured above may him
it to provide a class which is not locally available:
Config hazelcastConfig = new Config();
MemberAttributeConfig memberAttributes = hazelcastConfig.getMemberAttributeConfig();
memberAttributes.setAttribute("class-provider", "true");
HazecastInstance instance = Hazelcast.newHazelcastInstance(hazelcastConfig);
Setting the filter to null will allow to load classes from all members.
Default: null
Member.setStringAttribute(String, String)public String getProviderFilter()
null when no filter is defined.null when no filter is definedsetProviderFilter(String)public UserCodeDeploymentConfig setBlacklistedPrefixes(String blacklistedPrefixes)
For example setting a blacklist prefix to com.foo will disable remote loading of all classes
from the com.foo package, but also classes from all sub-packages won't be loaded.
Eg. com.foo.bar.MyClass will be black-listed too.
When you set the blacklist to com.foo.Class then the Class will obviously be black-listed,
but a class com.foo.ClassSuffix will be blacklisted too.
Setting the prefixes to null will disable the blacklist.
Default: null
public String getBlacklistedPrefixes()
setBlacklistedPrefixes(String)public UserCodeDeploymentConfig setWhitelistedPrefixes(String whitelistedPrefixes)
Use this to enable User Code Deployment of selected classes only and disable remote loading for all other classes. This gives you a nice control over classloading.
The prefixes are interpreted by using the same rules as described at setBlacklistedPrefixes(String)
Setting the prefix to null will disable the white-list and all non-blacklisted classes will be allowed
to load from remote members.
public String getWhitelistedPrefixes()
public UserCodeDeploymentConfig setProviderMode(UserCodeDeploymentConfig.ProviderMode providerMode)
Default: UserCodeDeploymentConfig.ProviderMode.LOCAL_AND_CACHED_CLASSES
UserCodeDeploymentConfig.ProviderModepublic UserCodeDeploymentConfig.ProviderMode getProviderMode()
public UserCodeDeploymentConfig setClassCacheMode(UserCodeDeploymentConfig.ClassCacheMode classCacheMode)
UserCodeDeploymentConfig.ClassCacheModepublic UserCodeDeploymentConfig.ClassCacheMode getClassCacheMode()
Copyright © 2020 Hazelcast, Inc.. All Rights Reserved.