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)
false
public 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.ProviderMode
public UserCodeDeploymentConfig.ProviderMode getProviderMode()
public UserCodeDeploymentConfig setClassCacheMode(UserCodeDeploymentConfig.ClassCacheMode classCacheMode)
UserCodeDeploymentConfig.ClassCacheMode
public UserCodeDeploymentConfig.ClassCacheMode getClassCacheMode()
Copyright © 2021 Hazelcast, Inc.. All Rights Reserved.