public class DefaultFeatureManager extends Object implements CachingFeatureManager, InitializingComponent
FeatureManager
.SYSTEM_PROPERTY_PREFIX
Constructor and Description |
---|
DefaultFeatureManager(JiraAuthenticationContext authenticationContext,
FeatureStore featureStore,
JiraProperties jiraSystemProperties,
com.atlassian.tenancy.api.TenantAccessor tenantAccessor,
FeatureFlagProviderAccessor featureFlagProviderAccessor,
com.atlassian.cache.CacheManager cacheManager,
RequestCacheFactory cacheFactory,
InstanceFeatureManager instanceFeatureManager,
FeatureFlagActivatorAccessor featureFlagActivatorAccessor) |
Modifier and Type | Method and Description |
---|---|
void |
afterInstantiation() |
void |
disableSiteDarkFeature(String feature)
Disables a site-wide feature.
|
void |
disableUserDarkFeature(ApplicationUser user,
String feature)
Disables a feature for a particular user.
|
void |
enableSiteDarkFeature(String feature)
Enables a site-wide feature.
|
void |
enableUserDarkFeature(ApplicationUser user,
String feature)
Enables a feature for a particular User.
|
DarkFeatures |
getDarkFeatures()
Creates
DarkFeatures instances from the PropertySet associated
with the current user. |
DarkFeatures |
getDarkFeaturesForUser(ApplicationUser user) |
Set<String> |
getEnabledFeatureKeys()
Returns a set containing the feature keys of all features that are currently enabled.
|
io.atlassian.fugue.Option<FeatureFlag> |
getFeatureFlag(String featureKey)
Return a feature flag by key
|
Set<FeatureFlag> |
getRegisteredFlags() |
boolean |
hasSiteEditPermission()
Returns true if the currently logged in user has permission to edit site dark features.
|
boolean |
isEnabled(CoreFeatures feature)
Checks whether
feature is enabled either in the running JIRA instance
or for the current user. |
boolean |
isEnabled(Feature feature)
Checks whether or not the specified feature is enabled.
|
boolean |
isEnabled(FeatureFlag featureFlag)
Checking the state of feature flag
|
boolean |
isEnabled(String featureKey)
Checks whether feature
featureKey is enabled either in the running JIRA instance
or for the current user. |
boolean |
isEnabledForUser(ApplicationUser user,
String featureKey)
Checks whether a feature with given featureKey is enabled in the running JIRA instance for the given user.
|
void |
onClearCache(ClearCacheEvent event) |
void |
onComponentManagerStateChangedEvent(ComponentManagerStateChangedEvent event) |
void |
reset()
Clears the cache and reloads the features from the data source
|
public DefaultFeatureManager(JiraAuthenticationContext authenticationContext, FeatureStore featureStore, JiraProperties jiraSystemProperties, com.atlassian.tenancy.api.TenantAccessor tenantAccessor, FeatureFlagProviderAccessor featureFlagProviderAccessor, com.atlassian.cache.CacheManager cacheManager, RequestCacheFactory cacheFactory, InstanceFeatureManager instanceFeatureManager, FeatureFlagActivatorAccessor featureFlagActivatorAccessor)
public void afterInstantiation() throws Exception
afterInstantiation
in interface InitializingComponent
Exception
public boolean isEnabled(FeatureFlag featureFlag)
FeatureManager
isEnabled
in interface FeatureManager
featureFlag
- defined feature flagpublic boolean isEnabled(String featureKey)
FeatureManager
featureKey
is enabled either in the running JIRA instance
or for the current user.
If the featureKey relates to a feature flag that is defined, then it will also take the
default values into consideration.isEnabled
in interface FeatureManager
featureKey
- feature keytrue
, if feature identified by featureKey is enabled, false
otherwisepublic io.atlassian.fugue.Option<FeatureFlag> getFeatureFlag(String featureKey)
FeatureManager
getFeatureFlag
in interface FeatureManager
featureKey
- the feature key stringpublic boolean isEnabled(Feature feature)
FeatureManager
FeatureManager.isEnabled(String)
for internal feature checks,
particularly for core features that are not user-settable, as it will skip
loading the current user's preferences when possible.isEnabled
in interface FeatureManager
feature
- the feature to checktrue
if feature
is enabled; false
otherwisepublic boolean isEnabledForUser(@Nullable ApplicationUser user, String featureKey)
FeatureManager
isEnabledForUser
in interface FeatureManager
user
- the user being queriedfeatureKey
- feature keytrue
, if feature identified by featureKey is enabled, false
otherwisepublic boolean isEnabled(CoreFeatures feature)
FeatureManager
feature
is enabled either in the running JIRA instance
or for the current user. This method should be prefered over
FeatureManager.isEnabled(String)
for internal feature checks, particularly for
core features that are not user-settable, as it will skip loading the
current user's preferences when possible.isEnabled
in interface FeatureManager
feature
- the core feature to checktrue
if feature
is enabled; false
otherwisepublic Set<FeatureFlag> getRegisteredFlags()
getRegisteredFlags
in interface FeatureManager
public Set<String> getEnabledFeatureKeys()
FeatureManager
getEnabledFeatureKeys
in interface FeatureManager
public DarkFeatures getDarkFeatures()
FeatureManager
DarkFeatures
instances from the PropertySet associated
with the current user.getDarkFeatures
in interface FeatureManager
public DarkFeatures getDarkFeaturesForUser(@Nullable ApplicationUser user)
getDarkFeaturesForUser
in interface FeatureManager
user
- the user being queried; null
represents the anonymous userpublic void enableUserDarkFeature(ApplicationUser user, String feature)
FeatureManager
FeatureEnabledEvent
.
Since JIRA 5.1, this method raises a FeatureEnabledEvent
if it is successful.
enableUserDarkFeature
in interface FeatureManager
user
- the user to enable the feature forfeature
- the feature to enablepublic void disableUserDarkFeature(ApplicationUser user, String feature)
FeatureManager
Since JIRA 5.1, this method raises a FeatureDisabledEvent
if it is successful.
disableUserDarkFeature
in interface FeatureManager
user
- the user to disable the feature forfeature
- the feature to disablepublic void enableSiteDarkFeature(String feature)
FeatureManager
Since JIRA 5.1, this method raises a FeatureEnabledEvent
if it is successful.
enableSiteDarkFeature
in interface FeatureManager
feature
- the feature to enablepublic void disableSiteDarkFeature(String feature)
FeatureManager
Since JIRA 5.1, this method raises a FeatureDisabledEvent
if it is successful.
disableSiteDarkFeature
in interface FeatureManager
feature
- the feature to disablepublic boolean hasSiteEditPermission()
FeatureManager
hasSiteEditPermission
in interface FeatureManager
@EventListener public void onClearCache(ClearCacheEvent event)
@EventListener public void onComponentManagerStateChangedEvent(ComponentManagerStateChangedEvent event)
public void reset()
CachingFeatureManager
reset
in interface CachingFeatureManager
Copyright © 2002-2024 Atlassian. All Rights Reserved.