In Liferay DXP, you can set an application’s configuration to different levels of scope: System, Instance, Site, or Portlet. For example, if you create an application to have instance scoped configuration, the application can be independently configured for each instance you have set up in your Liferay DXP installation. This is useful because it gives more flexibility and control to each user. For example administrators of a DXP instance can set a configuration for their own instance that is independent from other instances.
To learn more about scope, see Understanding Configuration Scope.
To see an example of an instance scoped configuration, see the example portlet from Setting and Accessing Configurations
Note, portlet scoped configuration takes a different approach. See Portlet Level Configuration for more information.
Specify Scope in the Configuration Interface¶
To set the scope of a configuration, specify the scope in the configuration interface. Use the
@ExtendedObjectClassDefinition annotation to set your scope. Use
Scope.SYSTEM for system scope. Use
Scope.COMPANY for instance scope. Use
Scope.GROUP for site scope.
@ExtendedObjectClassDefinition( category = "n2f3", scope = ExtendedObjectClassDefinition.Scope.COMPANY )
Use the Configuration Provider¶
To retrieve the configuration, make use of
ConfigurationProvider. The Configuration Provider API provides an easy way to access the configuration. Choose the specific method for your application needs:
getSystemConfiguration(): Obtains system-scoped configuration. The application’s system level configuration is found in Control Panel → Configuration → System Settings.
getCompanyConfiguration(): Obtains instance-scoped configuration. Use an instance of
companyId. For example,
_portal.getCompanyId(renderRequest). The application’s instance level configuration is found in Control Panel → Configuration → Instance Settings.
getGroupConfiguration(): Gets Site-scoped configuration. Use an instance of
groupId. For example,
_portal.getScopeGroupId(renderRequest). The application’s Site level configuration is found in Product Menu → Configuration → Site Settings. Note, this is available in Liferay 7.4.
For portlet scoped configuration see Portlet Level Configuration.