com.atlassian.jira.config
Interface FeatureManager

All Known Implementing Classes:
BootstrapFeatureManager, DefaultFeatureManager, MockFeatureManager

@PublicApi
public interface FeatureManager

Component responsible for providing information whether certain features in JIRA are enabled or disabled.

Since:
v4.4

Field Summary
static String SYSTEM_PROPERTY_PREFIX
          The prefix used for enabling dark features from the command line.
 
Method Summary
 void disableSiteDarkFeature(String feature)
          Disables a site-wide feature.
 void disableUserDarkFeature(ApplicationUser user, String feature)
          Disables a feature for a particular user.
 void disableUserDarkFeature(com.atlassian.crowd.embedded.api.User user, String feature)
          Deprecated. Use disableUserDarkFeature(com.atlassian.jira.user.ApplicationUser, String feature) instead. Since v6.0.
 void enableSiteDarkFeature(String feature)
          Enables a site-wide feature.
 void enableUserDarkFeature(ApplicationUser user, String feature)
          Enables a feature for a particular User.
 void enableUserDarkFeature(com.atlassian.crowd.embedded.api.User user, String feature)
          Deprecated. Use enableUserDarkFeature(com.atlassian.jira.user.ApplicationUser, String feature) instead. Since v6.0.
 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.
 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(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.
 boolean isOnDemand()
          Convenience method equivalent to calling isEnabled(CoreFeatures.ON_DEMAND).
 

Field Detail

SYSTEM_PROPERTY_PREFIX

static final String SYSTEM_PROPERTY_PREFIX
The prefix used for enabling dark features from the command line. For example, one might use -Datlassian.darkfeature.com.atlassian.jira.config.FAST_TABS=true as a JVM argument in order to enable fast tabs.

See Also:
Constant Field Values
Method Detail

isEnabled

boolean isEnabled(String featureKey)
Checks whether feature featureKey is enabled either in the running JIRA instance or for the current user.

Parameters:
featureKey - feature key
Returns:
true, if feature identified by featureKey is enabled, false otherwise

isEnabled

@Internal
boolean isEnabled(CoreFeatures feature)
Checks whether feature is enabled either in the running JIRA instance or for the current user. This method should be prefered over 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.

Parameters:
feature - the core feature to check
Returns:
true if feature is enabled; false otherwise

isEnabled

@Internal
boolean isEnabled(Feature feature)
Checks whether or not the specified feature is enabled. This method should be prefered over 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.

Parameters:
feature - the feature to check
Returns:
true if feature is enabled; false otherwise
Since:
v6.0

getEnabledFeatureKeys

Set<String> getEnabledFeatureKeys()
Returns a set containing the feature keys of all features that are currently enabled.

Returns:
a set containing the feature keys of all features that are currently enabled
Since:
v5.0

getDarkFeatures

DarkFeatures getDarkFeatures()
Creates DarkFeatures instances from the PropertySet associated with the current user.

Returns:
Returns the Dark Features state for the current user.

isOnDemand

boolean isOnDemand()
Convenience method equivalent to calling isEnabled(CoreFeatures.ON_DEMAND).

Returns:
true if this is JIRA OnDemand; false otherwise
Since:
v6.0

enableUserDarkFeature

void enableUserDarkFeature(com.atlassian.crowd.embedded.api.User user,
                           String feature)
Deprecated. Use enableUserDarkFeature(com.atlassian.jira.user.ApplicationUser, String feature) instead. Since v6.0.

Enables a feature for a particular User. Raises a FeatureEnabledEvent.

Since JIRA 5.1, this method raises a FeatureEnabledEvent if it is successful.

Parameters:
user - the user to enable the feature for
feature - the feature to enable

disableUserDarkFeature

void disableUserDarkFeature(com.atlassian.crowd.embedded.api.User user,
                            String feature)
Deprecated. Use disableUserDarkFeature(com.atlassian.jira.user.ApplicationUser, String feature) instead. Since v6.0.

Disables a feature for a particular user.

Since JIRA 5.1, this method raises a FeatureDisabledEvent if it is successful.

Parameters:
user - the user to disable the feature for
feature - the feature to disable

enableUserDarkFeature

void enableUserDarkFeature(ApplicationUser user,
                           String feature)
Enables a feature for a particular User. Raises a FeatureEnabledEvent.

Since JIRA 5.1, this method raises a FeatureEnabledEvent if it is successful.

Parameters:
user - the user to enable the feature for
feature - the feature to enable

disableUserDarkFeature

void disableUserDarkFeature(ApplicationUser user,
                            String feature)
Disables a feature for a particular user.

Since JIRA 5.1, this method raises a FeatureDisabledEvent if it is successful.

Parameters:
user - the user to disable the feature for
feature - the feature to disable

enableSiteDarkFeature

void enableSiteDarkFeature(String feature)
Enables a site-wide feature.

Since JIRA 5.1, this method raises a FeatureEnabledEvent if it is successful.

Parameters:
feature - the feature to enable

disableSiteDarkFeature

void disableSiteDarkFeature(String feature)
Disables a site-wide feature. Since JIRA 5.1, this method raises a FeatureDisabledEvent if it is successful.

Parameters:
feature - the feature to disable

hasSiteEditPermission

boolean hasSiteEditPermission()
Returns true if the currently logged in user has permission to edit site dark features.

Returns:
true if the currently logged in user has permission to edit site dark features.
Since:
5.2

getDarkFeaturesForUser

DarkFeatures getDarkFeaturesForUser(@Nullable
                                    ApplicationUser user)
Parameters:
user - the user being queried; null represents the anonymous user
Returns:
Returns the dark features state for the current user.

isEnabledForUser

boolean isEnabledForUser(ApplicationUser user,
                         String featureKey)
Checks whether a feature with given featureKey is enabled in the running JIRA instance for the given user.

Parameters:
user - the user being queried
featureKey - feature key
Returns:
true, if feature identified by featureKey is enabled, false otherwise


Copyright © 2002-2014 Atlassian. All Rights Reserved.