Class UserCodeDeploymentConfig
- java.lang.Object
-
- com.hazelcast.config.UserCodeDeploymentConfig
-
public class UserCodeDeploymentConfig extends java.lang.Object
Configuration of User Code Deployment. When enabled, it allows Hazelcast members to load classes from other cluster members. This simplifies deployment as you do not have to deploy your domain classes into the classpath of all cluster members.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
UserCodeDeploymentConfig.ClassCacheMode
Controls caching of classes loaded from remote membersstatic class
UserCodeDeploymentConfig.ProviderMode
Controls how to react to receiving a classloading request from a remote member
-
Constructor Summary
Constructors Constructor Description UserCodeDeploymentConfig()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object o)
java.lang.String
getBlacklistedPrefixes()
Return currently configured blacklist prefixes.UserCodeDeploymentConfig.ClassCacheMode
getClassCacheMode()
Return the current ClassCacheModejava.lang.String
getProviderFilter()
Get current filter ornull
when no filter is defined.UserCodeDeploymentConfig.ProviderMode
getProviderMode()
Return the current ProviderModejava.lang.String
getWhitelistedPrefixes()
Return currently configured whitelist prefixesint
hashCode()
boolean
isEnabled()
Returns true if User Code Deployment is enabledUserCodeDeploymentConfig
setBlacklistedPrefixes(java.lang.String blacklistedPrefixes)
Comma-separated list of class prefixes 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(java.lang.String providerFilter)
Filter to limit members that can 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(java.lang.String whitelistedPrefixes)
Comma-separated list of class prefixes which will be loaded remotely.
-
-
-
Method Detail
-
setEnabled
public UserCodeDeploymentConfig setEnabled(boolean enabled)
Enable or disable User Code Deployment. Default:false
-
isEnabled
public boolean isEnabled()
Returns true if User Code Deployment is enabled- Returns:
true
when User Code Deployment is enabled
-
setProviderFilter
public UserCodeDeploymentConfig setProviderFilter(java.lang.String providerFilter)
Filter to limit members that can be used for classloading request when a user class is not available locally.Filter format:
HAS_ATTRIBUTE:foo
this will send classloading requests only to members which have a member attributefoo
set. Attribute value is ignored, it can be of any type, a presence of the attribute is sufficient.This facility allows to have a fine grained control over 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"); HazelcastInstance instance = Hazelcast.newHazelcastInstance(hazelcastConfig);
In the following example, the started member will be marked with the
class-provider
attribute - the member configured above may use it to provide a class which is not locally available:Config hazelcastConfig = new Config(); MemberAttributeConfig memberAttributes = hazelcastConfig.getMemberAttributeConfig(); memberAttributes.setAttribute("class-provider", "true"); HazelcastInstance instance = Hazelcast.newHazelcastInstance(hazelcastConfig);
Setting the filter to null allows using any member to load classes.
Default:
null
- Returns:
- this instance of UserCodeDeploymentConfig for easy method-chaining
- See Also:
Member.getAttribute(String)
-
getProviderFilter
public java.lang.String getProviderFilter()
Get current filter ornull
when no filter is defined.- Returns:
- current filter or
null
when no filter is defined - See Also:
setProviderFilter(String)
-
setBlacklistedPrefixes
public UserCodeDeploymentConfig setBlacklistedPrefixes(java.lang.String blacklistedPrefixes)
Comma-separated list of class prefixes which will never be loaded remotely. A prefix can be a package name or a class name.For example, setting a blacklist prefix to
com.foo
will disable remote loading of all classes from thecom.foo
package and its sub-packages. Eg.com.foo.bar.MyClass
will be black-listed too.The prefix is compared to the class name string. For example, when you set the blacklist to
com.foo.Class
, the classcom.foo.ClassSuffix
will be blacklisted too.Setting the prefixes to
null
or to empty string will disable the blacklist.Default:
null
- Returns:
- this instance of UserCodeDeploymentConfig for easy method-chaining
-
getBlacklistedPrefixes
public java.lang.String getBlacklistedPrefixes()
Return currently configured blacklist prefixes.- Returns:
- currently configured blacklist prefixes
- See Also:
setBlacklistedPrefixes(String)
-
setWhitelistedPrefixes
public UserCodeDeploymentConfig setWhitelistedPrefixes(java.lang.String whitelistedPrefixes)
Comma-separated list of class prefixes which will be loaded remotely.Use this to limit User Code Deployment to selected classes only and disable remote loading for all other classes.
The prefixes are interpreted using the same rules as described in
setBlacklistedPrefixes(String)
.Setting the prefixes to
null
or empty string will disable the white-list and all non-blacklisted classes will be allowed to load from remote members.- Returns:
- this instance of UserCodeDeploymentConfig for easy method-chaining
-
getWhitelistedPrefixes
public java.lang.String getWhitelistedPrefixes()
Return currently configured whitelist prefixes- Returns:
- currently configured whitelist prefixes
-
setProviderMode
public UserCodeDeploymentConfig setProviderMode(UserCodeDeploymentConfig.ProviderMode providerMode)
Configure behaviour when providing classes to remote members.Default:
UserCodeDeploymentConfig.ProviderMode.LOCAL_AND_CACHED_CLASSES
- Returns:
- this instance of UserCodeDeploymentConfig for easy method-chaining
- See Also:
UserCodeDeploymentConfig.ProviderMode
-
getProviderMode
public UserCodeDeploymentConfig.ProviderMode getProviderMode()
Return the current ProviderMode- Returns:
- current ProviderMode
-
setClassCacheMode
public UserCodeDeploymentConfig setClassCacheMode(UserCodeDeploymentConfig.ClassCacheMode classCacheMode)
Configure caching of classes loaded from remote members.- Returns:
- this instance of UserCodeDeploymentConfig for easy method-chaining
- See Also:
UserCodeDeploymentConfig.ClassCacheMode
-
getClassCacheMode
public UserCodeDeploymentConfig.ClassCacheMode getClassCacheMode()
Return the current ClassCacheMode- Returns:
- current ProviderMode
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-