This page describes important aspects of the deprecation of the sap.ui.core.Core
API facade, as most of its methods have been deprecated. It shows a migration path away from the deprecated legacy APIs and towards their future-proof alternatives.
Core
The following is an alphabetical list of API methods on sap.ui.core.Core
. Meant as a compact and practical overview, it is derived from the API Reference, which may provide complementary information.
Legacy API Method | Deprecation Information | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[`applyChanges`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/applyChanges) | Applications and controls should not call this method explicitly as the framework handles necessary rendering. The `applyChanges()` method enforces a synchronous rendering and must not be used in future-proof, productive code. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[`applyTheme`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/applyTheme) | Use [`Theming.setTheme()`](https://ui5.sap.com/#/api/module:sap/ui/core/Theming%23methods/sap/ui/core/Theming.setTheme) instead. However, this will no longer support providing a new theme root via an "@" symbol. In URL parameters, usage of the "@" symbol is still available. See [Setting Themes](/docs/04_Essentials/setting-themes-e9fc648.html) for more details. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[`attachControlEvent`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/attachControlEvent) | Applications and controls should avoid listening to **all** control events, but rather listen to specific events provided by the control classes. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[`attachFormatError`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/attachFormatError) | Use [`ManagedObject#attachFormatError()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/attachFormatError) instead. See related information for `attachParseError()`. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[`attachInit`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/attachInit) | Use [`Core.ready()`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/ready) instead. While the behavior is nearly identical, the `ready()` function also allows for Promise chaining and awaiting the Core ready state. ``` sap.ui.require(["sap/ui/core/Core"], async function(Core) { Core.ready(() => { // this callback is executed directly in case the Core is // already in ready state, otherwise it is executed at a later point in time }); // You can also use the ready() function as a Promise, e.g. Core.ready().then(...) // or await it await Core.ready(); }); ``` As an alternative to programmatically chaining to the Core's ready state, you can also use a dedicated `on-init` module, which will be required and executed automatically once the Core is ready: ``` <script id='sap-ui-bootstrap' data-sap-ui-async='true' data-sap-ui-resource-roots='{"my": "./"}' data-sap-ui-on-init='module:my/initModule' ...> </script> ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[`attachInitEvent`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/attachInitEvent) | Use [`Core.ready()`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/ready) instead. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[`attachIntervalTimer`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/attachIntervalTimer) | Use [`IntervalTrigger.addListener()`](https://ui5.sap.com/#/api/sap.ui.core.IntervalTrigger%23methods/sap.ui.core.IntervalTrigger.addListener) instead. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[`attachLocalizationChanged`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/attachLocalizationChanged) |
Use [`Localization#attachChange()`](https://ui5.sap.com/#/api/module:sap/base/i18n/Localization%23methods/attachChange) instead.
Instead of relying on `Localization.attachChange()` and manually attaching an event handler for `localizationChanged`, we recommend to use the generic control hook **`onLocalizationChanged`** on your `sap.ui.core.Element` subclasses instead.
> ### Note:
> The generic control hook has been renamed from `onlocalizationChanged` to `onLocalizationChanged` \(mind the capital letter "L"\).
>
> The generic control hook captures all changes on settings exposed via the `sap/base/i18n/Localization` facade, as well as the changes to settings exposed via the`sap/base/i18n/Formatting` facade.
The old `LocalizationChanged` event was fired on each relevant localization **and** format settings change.
The `change` event of the new `Localization` facade only captures the settings that are changeable via said facade. However, if you are interested in the changes of the format settings, additionally use the `change` event of the `sap/base/i18n/Formatting` facade.
> ### Note:
> The Event object has a different API than on the Core facade. There is no more `getParameters()`, but simple properties like the Web API events \(see the sample below\).
>
> See [`Localization$ChangeEvent`](https://ui5.sap.com/#/api/module:sap/base/i18n/Localization$ChangeEvent) or [`Formatting$ChangeEvent`](https://ui5.sap.com/#/api/module:sap/base/i18n/Formatting$ChangeEvent), respectively.
Instead of the former APIs `onlocalizationChanged()` or `attachLocalizationChanged()`, see the following sample:
```
/// generic control hook
MyControl.prototype.onLocalizationChanged = function() {};
// Localization API
sap.ui.require([
"sap/base/i18n/Localization",
"sap/base/i18n/Formatting"
], (Localization, Formatting) => {
Localization.attachChange((oEvent) => {
// Note: The event callback has no
[`attachParseError`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/attachParseError)
|
Use [`ManagedObject#attachParseError()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/attachParseError) instead.
Overall, the events `parseError`, `validationError`, `formatError` and `validationSuccess` have been deprecated. Use the corresponding APIs on subclasses of `sap/ui/base/ManagedObject`.
Component-based applications should rather prefer framework controlled validation handling \(manifest flag `"sap.ui5"/"handleValidation"`\).
Tests and samples that are not Component-based should attach validation event listeners to a suitable control in the control tree instead.
```
sap.ui.require([
"sap/ui/core/Component"
], async (Component) => {
const oComponent = await Component.create({
name: "my.component"
});
const fnParseErrorHandler = function () {
// Error handling
};
oComponent.attachParseError(fnParseErrorHandler);
oComponent.detachParseError(fnParseErrorHandler);
});
```
|
[`attachThemeChanged`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/attachThemeChanged)
|
For applications and test code, see [`Theming.attachApplied()`](https://ui5.sap.com/#/api/module:sap/ui/core/Theming%23methods/attachApplied) as an alternative. For controls, use the generic control hook **`onThemeChanged`** on your `sap.ui.core.Element` subclasses instead.
> ### Note:
> The Event object has a different API than on the Core facade. There is no more `getParameters()`, but simple properties like the Web API events.
> ### Caution:
> The handler of the **`applied`** event will be executed immediately once, in case all \*.css files are loaded and there are no further requests pending for the theme.
>
> After that, it will only be executed in case of new \*.css files, which may happen for a complete theme change or loading of additional libraries. Keep in mind that the **`onThemeChanged`** hook is not executed initially in case the theme is already applied.
|
[`attachValidationError`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/attachValidationError)
|
Use [`ManagedObject#attachValidationError()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/attachValidationError) instead.
See related information for `attachParseError()`.
|
[`attachValidationSuccess`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/attachValidationSuccess)
|
Use [`ManagedObject#attachValidationSuccess()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/attachValidationSuccess) instead.
See related information for `attachParseError()`.
|
[`byFieldGroupId`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/byFieldGroupId)
|
Use [`Control#getControlsByFieldGroup()`](https://ui5.sap.com/#/api/sap.ui.core.Control%23methods/getControlsByFieldGroup) instead.
|
[`byId`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/byId)
|
Use [`Element.getElementById()`](https://ui5.sap.com/#/api/sap.ui.core.Element%23methods/sap.ui.core.Element.getElementById) instead.
```
sap.ui.require(["sap/ui/core/Element"], async function(Element) {
const oMyElement = Element.getElementById("myId");
});
```
|
[`createComponent`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/createComponent)
|
Use [`Component.create()`](https://ui5.sap.com/#/api/sap.ui.core.Component%23methods/sap.ui.core.Component.create) instead.
|
[`createRenderManager`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/createRenderManager)
|
A separate `RenderManager` should not be used.
|
[`createUIArea`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/createUIArea)
|
Use [`Control#placeAt()`](https://ui5.sap.com/#/api/sap.ui.core.Control%23methods/placeAt) instead.
|
[`detachControlEvent`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/detachControlEvent)
|
See `attachControlEvent()` above.
|
[`detachFormatError`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/detachFormatError)
|
Use [`ManagedObject#detachFormatError()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/detachFormatError) instead.
See related information for `attachParseError()`.
|
[`detachIntervalTimer`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/detachIntervalTimer)
|
Use [`IntervalTrigger.removeListener()`](https://ui5.sap.com/#/api/sap.ui.core.IntervalTrigger%23methods/sap.ui.core.IntervalTrigger.removeListener) instead.
|
[`detachLocalizationChanged`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/detachLocalizationChanged)
|
Use [`Localization#detachChange()`](https://ui5.sap.com/#/api/module:sap/base/i18n/Localization%23methods/detachChange) instead.
|
[`detachParseError`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/detachParseError)
|
Use [`ManagedObject#detachParseError()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/detachParseError) instead.
See related information for `attachParseError()`.
|
[`detachThemeChanged`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/detachThemeChanged)
|
See [`Theming.detachApplied()`](https://ui5.sap.com/#/api/module:sap/ui/core/Theming%23methods/detachApplied) instead.
|
[`detachValidationError`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/detachValidationError)
|
Use [`ManagedObject#detachValidationError()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/detachValidationError) instead.
See related information for `attachParseError()`.
|
[`detachValidationSuccess`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/detachValidationSuccess)
|
Use [`ManagedObject#detachValidationSuccess()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/detachValidationSuccess) instead.
See related information for `attachParseError()`.
|
[`fireFormatError`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/fireFormatError)
|
Use [`ManagedObject#fireFormatError()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/fireFormatError) instead.
|
[`fireParseError`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/fireParseError)
|
Use [`ManagedObject#fireParseError()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/fireParseError) instead.
|
[`fireValidationError`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/fireValidationError)
|
Use [`ManagedObject#fireValidationError()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/fireValidationError) instead.
|
[`fireValidationSuccess`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/fireValidationSuccess)
|
Use [`ManagedObject#fireValidationSuccess()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/fireValidationSuccess) instead.
|
[`getApplication`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getApplication)
|
The `Component` class is enhanced to take care about the application code.
|
[`getComponent`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getComponent)
|
Use [`Component.getComponentById()`](https://ui5.sap.com/#/api/sap.ui.core.Component%23methods/sap.ui.core.Component.getComponentById) instead.
|
[`getConfiguration`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getConfiguration)
|
See [Deprecated Configuration API](/docs/04_Essentials/deprecated-configuration-api-2acafbf.html) for detailed information to handle legacy `sap.u.core.Configuration` via replacements for the respective APIs.
|
[`getControl`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getControl)
|
Use [`Element.getElementById()`](https://ui5.sap.com/#/api/sap.ui.core.Element%23methods/sap.ui.core.Element.getElementById) instead. See example at `byId()`.
|
[`getCurrentFocusedControlId`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getCurrentFocusedControlId)
|
Use [`Element.getActiveElement()`](https://ui5.sap.com/#/api/sap.ui.core.Element%23methods/sap.ui.core.Element.getActiveElement) to get the currently focused element. You can then retrieve the ID of that element with [`Element#getId()`](https://ui5.sap.com/#/api/sap.ui.core.Element%23methods/getId). Keep in mind that `Element.getActiveElement()` may return `undefined`.
|
[`getElementById`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getElementById)
|
Use [`Element.getElementById()`](https://ui5.sap.com/#/api/sap.ui.core.Element%23methods/sap.ui.core.Element.getElementById) instead. See example at `byId()`.
|
[`getEventBus`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getEventBus)
|
Use [`EventBus.getInstance()`](https://ui5.sap.com/#/api/sap.ui.core.EventBus%23methods/sap.ui.core.EventBus.getInstance) for global usage instead. However, the global `EventBus` should only be used if there is no other option to communicate between different instances. Whenever possible, you should prefer native control events, View or Component \(lifecycle\) events.
```
sap.ui.require([
"sap/ui/core/EventBus"
], (EventBus) => {
const oEventBus = EventBus.getInstance();
});
```
If needed, a new private `EventBus` instance may be created via the constructor, which decouples it from any other parties subscribed to the global `EventBus`:
```
const oMyOwnEventBus = new EventBus();
oMyEventBus.subscribe("my-channel-id", "my-event-id")
oMyEventBus.publish("my-channel-id", "my-event-id", { /* data */ })
```
|
[`getLibraryResourceBundle`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getLibraryResourceBundle)
|
Use [`Lib.getResourceBundleFor()`](https://ui5.sap.com/#/api/sap.ui.core.Lib%23methods/sap.ui.core.Lib.getResourceBundleFor) instead.
Note that the new API may unintentionally still load the ResourceBundle for the given library synchronously, which is to be avoided. Therefore, make sure to always either load the library beforehand or maintain it as a **Component** or **Library** dependency, so that you can prevent such synchronous loading of \*.properties files.
```
// Retrieve ResourceBundle when library was already loaded beforehand.
// This is the case for controls inside their own library
sap.ui.require(["sap/ui/core/Lib"], async (Library) => {
// ensures the library is loaded
await Library.load({ name: "sap.m" });
// ResourceBundle can be retrieved
const oRB = Library.getResourceBundleFor("sap.m")
});
```
|
[`getLoadedLibraries`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getLoadedLibraries)
|
Applications should avoid performing operations on all loaded libraries. This concept is reserved for the framework itself and dedicated support use cases.
|
[`getMessageManager`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getMessageManager)
|
Use [`Messaging`](https://ui5.sap.com/#/api/module:sap/ui/core/Messaging) instead.
```
// example, replacing legacy sap.ui.getCore().getMessageManager().addMessage()
sap.ui.require([
"sap/ui/core/Messaging",
"sap/ui/core/message/Message
], (Messaging, Message) => {
Messaging.addMessage(new Message({
text: "My message text"
}));
});
```
|
[`getModel`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getModel)
|
Deprecated without direct replacement. See the information on `setModel()` below for a potential use via [`ManagedObject#getModel()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/getModel) instead.
|
[`getRenderManager`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getRenderManager)
|
A separate `RenderManager` should not be used.
|
[`getRootComponent`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getRootComponent)
|
Use [`sap/ui/core/ComponentSupport`](https://ui5.sap.com/#/api/module:sap/ui/core/ComponentSupport) instead. See also [Declarative API for Initial Components](/docs/04_Essentials/declarative-api-for-initial-components-82a0fce.html).
|
[`getStaticAreaRef`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getStaticAreaRef)
|
Use [`StaticArea.getDomRef()`](https://ui5.sap.com/#/api/module:sap/ui/core/StaticArea%23methods/sap/ui/core/StaticArea.getDomRef) instead. It provides more possibilities, e.g. you can also retrieve the static UIArea directly, if needed.
```
sap.ui.require([
"sap/ui/core/StaticArea"
], (StaticArea) => {
// Direct replacement
const oStaticArea = StaticArea.getDomRef();
// Retrieving the static UIArea directly
oStaticUIArea = StaticArea.getUIArea();
// Check whether the given DOM element is part of the static area
const bContainedInArea = StaticArea.contains(myControl.getDomRef())
});
```
|
[`getTemplate`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getTemplate)
|
Use an [`XMLView`](https://ui5.sap.com/#/api/sap.ui.core.mvc.XMLView) or a [Typed View](/docs/04_Essentials/typed-view-e6bb33d.html) instead.
|
[`getUIArea`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getUIArea)
|
For access to the static UIArea, use the [`StaticArea`](https://ui5.sap.com/#/api/module:sap/ui/core/StaticArea) instead.
|
[`getUIDirty`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/getUIDirty)
|
Applications and controls should avoid querying the rendering state and should rely on the standard rendering lifecycle of the framework.
|
[`hasModel`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/hasModel)
|
Use [`ManagedObject#hasModel()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/hasModel) instead.
|
[`includeLibraryTheme`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/includeLibraryTheme)
|
Applications and controls should avoid interfering with the loading of library.css files. All library theme files are maintained and orchestrated by the framework.
Use [`Lib.load()`](https://ui5.sap.com/#/api/sap.ui.core.Lib%23methods/sap.ui.core.Lib.load) instead to ensure the loading of the corresponding theme files.
|
[`initLibrary`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/initLibrary)
|
Use [`Lib.init()`](https://ui5.sap.com/#/api/sap.ui.core.Lib%23methods/sap.ui.core.Lib.init) instead.
```
// the object is no longer passed into sap.ui.getCore().initLibrary()
sap.ui.require(["sap/ui/core/Lib"], (Library) => {
Library.init({
name: "my.library",
version: "${version}",
dependencies: ["sap.ui.core", "..."],
types: [
...
],
interfaces: [],
controls: [
...
],
elements: [
...
],
extensions: {
...
}
});
});
```
|
[`isInitialized`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/isInitialized)
|
Deprecated without replacement. It should no longer be necessary as it was mainly used to avoid accessing APIs before the Core was ready, but these other Core APIs have been deprecated as well.
```
// Nevertheless, if you still have a need for isInitialized, maybe use the following
sap.ui.require(["sap/ui/core/Core"], async function(Core) {
let isInitialized = false;
Core.ready(() => {
isInitialized = true;
});
if (isInitialized) {
...
}
});
```
|
[`isLocked`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/isLocked)
|
Locking the event handling of the `sap.ui.core.Core` is considered an anti-pattern and should be avoided.
|
[`isMobile`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/isMobile)
|
Use [`Device.browser.mobile`](https://ui5.sap.com/#/api/sap.ui.Device.browser) instead.
|
[`isStaticAreaRef`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/isStaticAreaRef)
|
Use [`StaticArea.contains()`](https://ui5.sap.com/#/api/module:sap/ui/core/StaticArea%23methods/sap/ui/core/StaticArea.contains) instead.
|
[`isThemeApplied`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/isThemeApplied)
|
For applications and test code, see [`Theming.attachApplied()`](https://ui5.sap.com/#/api/module:sap/ui/core/Theming%23methods/attachApplied) as an alternative. For controls, use the generic control hook **`onThemeChanged`** on your `sap.ui.core.Element` subclasses instead.
See `attachThemeChanged` for related information.
|
[`loadLibrary`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/loadLibrary)
|
Use [`Lib.load()`](https://ui5.sap.com/#/api/sap.ui.core.Lib%23methods/sap.ui.core.Lib.load) instead.
```
// instead of legacy loading via sap.ui.getCore().loadLibrary("my.library")
sap.ui.require(["sap/ui/core/Lib"], (Library) => {
Library.load({
name: "my.library"
});
});
```
|
[`lock`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/lock)
|
Locking the event handling of the `sap.ui.core.Core` is considered an anti-pattern and should be avoided.
|
[`notifyContentDensityChanged`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/notifyContentDensityChanged)
|
Use [`Theming.notifyContentDensityChanged()`](https://ui5.sap.com/#/api/module:sap/ui/core/Theming%23methods/sap/ui/core/Theming.notifyContentDensityChanged) instead.
|
[`registerPlugin`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/registerPlugin)
|
Albeit plugins are not meant for public usage, the common need to access the set of all controls/elements or all components can now be achieved using the [`sap.ui.core.Element.registry`](https://ui5.sap.com/#/api/sap.ui.core.Element.registry) or [`sap.ui.core.Component.registry`](https://ui5.sap.com/#/api/sap.ui.core.Component.registry) APIs, respectively.
|
[`sap.ui.core.Core.extend`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/sap.ui.core.Core.extend)
|
`sap.ui.core.Core` is a singleton and should not be sub-classed.
|
[`sap.ui.core.Core.getMetadata`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/sap.ui.core.Core.getMetadata)
|
`sap.ui.core.Core` is a singleton and the metadata of the internal class should not be accessed.
|
[`setModel`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/setModel)
|
Deprecated without direct replacement. The future-proof Core facade no longer acts as a model provider.
Component-based applications should prefer manifest models.
Tests and samples which are not Component-based may attach models to a suitable control in the control tree instead, e.g. via [`ManagedObject#setModel()`](https://ui5.sap.com/#/api/sap.ui.base.ManagedObject%23methods/setModel).
|
[`setRoot`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/setRoot)
|
Use [`oControl.placeAt(oDomRef, "only")`](https://ui5.sap.com/#/api/sap.ui.core.Control%23methods/placeAt) instead.
|
[`setThemeRoot`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/setThemeRoot)
|
Theme roots should not be changed at runtime. Instead, provide the corresponding `sap-ui-theme-roots` configuration option via either the bootstrap, meta tag, or an URL parameter. See [Setting Themes](/docs/04_Essentials/setting-themes-e9fc648.html) for more details.
|
[`unlock`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/unlock)
|
Locking the event handling of the `sap.ui.core.Core` is considered an anti-pattern and should be avoided.
|
[`unregisterPlugin`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/unregisterPlugin)
|
See `registerPlugin` above.
|
|