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.
CoreThe 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. For more information, see [Theme Configuration and Management](/docs/04_Essentials/theme-configuration-and-management-e9fc648.html). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [`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: ``` ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [`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.
Instead of the former APIs `onlocalizationChanged()` or `attachLocalizationChanged()`, see the following examples:
```
// generic control hook in Control development
MyControl.prototype.onLocalizationChanged = function() {
// ...
};
```
```
// generic Localization API use
// Localization required from "sap/base/i18n/Localization",
// Formatting required from "sap/base/i18n/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 \(e.g. add `"handleValidation": true` in manifest section `sap.ui5`\).
Tests and samples that are not Component-based should attach validation event listeners to a suitable control in the control tree instead.
```
// Component required from "sap/ui/core/Component"
const oComponent = await Component.create({name: "my.component"});
const fnParseErrorHandler = function () {/* ... */};
oComponent.attachParseError(fnParseErrorHandler, myListener);
oComponent.detachParseError(fnParseErrorHandler, myListener);
```
|
[`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/sap/ui/core/Theming.attachApplied) as an alternative.
> ### 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.
|
[`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#getControlsByFieldGroupId()`](https://ui5.sap.com/#/api/sap.ui.core.Control%23methods/getControlsByFieldGroupId) 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.
However, unless explicitly documented otherwise, avoid relying on `Core.byId` or `Element.getElementById` in these cases:
- When the creation of the target element is outside your project's control.
- When developing applications that run inside an application container such as the SAP Fiori launchpad.
Certain events, such as `routePatternMatched` or `patternMatched` from `sap/ui/core/routing/Route` or `Router` provide a reference to a `View` instance. From there, you can access the target element using [`View#byId`](https://ui5.sap.com/#/api/sap.ui.core.mvc.View%23methods/byId).
When creating a new element programmatically \(e.g., in a Controller\), use one of the applicable [`createId` APIs](https://ui5.sap.com/#/search/createId/?category=apiref) to generate a unique stable ID based on the parent element. This allows accessing the target element using the parent element without relying on `Core.byId` or `Element.getElementById`. See also [ID Handling in OpenUI5: The Complete Guide](/docs/05_Developing_Apps/id-handling-in-openui5-the-complete-guide-f51dbb7.html).
When possible, consider manipulating the UI through data binding instead of accessing elements via any `byId`. Changes in the model automatically update the UI, and with two-way binding enabled, user input updates the model directly.
|
[`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/sap/base/i18n/Localization.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/sap/ui/core/Theming.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.
```
// EventBus required from "sap/ui/core/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();
oMyOwnEventBus.subscribe("my-channel-id", "my-event-id");
oMyOwnEventBus.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 **without** `"lazy": true`, so that you can prevent such synchronous loading of `*.properties` or `*.messagebundle` files.
```
// Lib required from "sap/ui/core/Lib"
// Ensure having the target library loaded before accessing its resource bundle, by loading it either via manifest or on-demand with:
await Lib.load({ name: "sap.m" });
// ResourceBundle can be retrieved
const oRB = Lib.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()
// Messaging required from "sap/ui/core/Messaging",
// Message required from "sap/ui/core/message/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.
```
// StaticArea required from "sap/ui/core/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.
```
// Lib required from "sap/ui/core/Lib"
Lib.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 [`sap/ui/care/Core.ready`](https://ui5.sap.com/#/api/sap.ui.core.Core%23methods/ready) method:
```
// Core required from "sap/ui/core/Core"
Core.ready(myCallback);
// or
await Core.ready();
```
|
[`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/sap/ui/core/Theming.attachApplied) as an alternative.
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.
```
// Lib required from "sap/ui/core/Lib"
await Lib.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/ElementRegistry`](https://ui5.sap.com/#/api/module:sap/ui/core/ElementRegistry) or [`sap/ui/core/ComponentRegistry`](https://ui5.sap.com/#/api/module:sap/ui/core/ComponentRegistry) 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 [Theme Configuration and Management](/docs/04_Essentials/theme-configuration-and-management-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.
|
|