Similar to an Operating System, Enonic XP supports development and deployment of applications.
Applications are standalone software executables that can be installed and run on top of Enonic XP. Applications are powered by the XP runtime, which also supports multiple applications running in the same instance. Once started, applications get access to the platform services, such as the NoSQL storage.
A single application may offer many different capabilities, from web apps and cms specific functionality to low level OSGi services that can be used by other apps.
Enonic market is the go-to place for official apps from Enonic, as well as 3rd party applications. The marketplace also offers starter kits and software libraries that help you create new apps better and faster.
There are three ways, by default, to get your applications running on Enonic XP:
- Via Admin Interface
Applications can be manually installed through the admin tool "Applications", packaged with Enonic XP. The applications will be available for all nodes in an XP cluster.
- Via Management API
Applications can be installed, in an automated way, through the Management API. The applications will be available for all nodes in an XP cluster.
- Via File system
File system deployment is most commonly used in development phases, but it can also be applied for specialized deployments scenarios. These applications will only be available on the local node and overrides already existing applications
Consider a microservice style highly isolated and controlled deployment, you will bundle your app(s) together with the XP runtime and launch it as a separate instance.
In addition to installing and uninstalling, XP applications may be started and stopped. This is referred to as the life cycle of the application. During the stop and start phases, applications themselves may execute custom code.
Once installed, applications are automatically started on all nodes. During the startup, if it exists, the application’s main.js script will be executed.
Before uninstalled, applications are automatically stopped on all nodes. During the stopping, if it exists, the disposer of the application’s main.js script will be executed.
Applications can be configured with deployment specific settings per node in the cluster. The configuration will automatically be injected when the applications starts.
Configuration files may be updated and will be accessible by the application, without restarting the XP nodes or even the applications.
More info can be found under
Application configuration in Configuration Files.
To create an application you need to setup a project. Projects contain all code and configuration required to build the application.
For more details, check out the project reference documentation.
XP apps are powered by the XP runtime.
XP applications can also make use of Java. Developers with special requirements may take advantage of advanced platform capabilities such as exposing and consuming services from other applications within the same instance. Learn more about using Java in XP apps
Enonic XP provides the concept of libraries in order to speed up development and re-use of functionality and code. Technically, libraries are very similar to applications, but the main difference is that a library cannot be installed and started by itself. So, a library may consist of all the same objects you find in applications - such as Assets, Content Types and HTTP Controllers - things you may need in an application.
Libraries are added to your application by simply referring to them in your build script. Read more about this on our Build system documentation.
There are endless use cases for the XP platform, but the typical scenarios are listed below:
Read more about webapps and the webapp engine
A unique feature of XP is the embedded Content Management capabilities.
You may build applications that go from serving content from an API (Headless CMS) via traditional web sites to Hybrid CMS - offering the best of both worlds.
The CMS offering essentially consist of three parts:
Content Studio - Editorial admin interface, available as an app on Enonic Market
Content API - Built on top of the NoSQL Storage
Site Engine - Built on top of the HTTP engine
XP apps may also be used by ID providers. Once installed and configured, an ID provider application can join the request pipeline of other sites and applications, dynamically providing authentication and authorization when needed. There are multiple standard ID providers available on Enonic Market.
Learn more about the identity and access management
Read more about tasks and the task engine
Read more about Admin tools