|Breaking changes XP 7 contains breaking changes. Follow the upgrade instructions carefully to secure a successful upgrade.|
Enonic XP 7 takes a major leap in simplifying application development and making the platform leaner and more flexible.
The biggest highlights of XP 7 is not the core platform, but all the changes around it:
New documentation - The documentation you are reading was created from scratch for XP 7
Developer portal - All XP related developer resources and docs in one place
Enonic CLI - For managing XP development project, also replaces the toolbox shell script
Native distributions. The Java Virtual Machine is now bundled with XP
Content Studio - Is now available as an app to download from Enonic Market.
In order for developers to better and more easily navigate the XP ecosystem, we created a dedicated portal. The portal contains
XP docs: The XP core platform documentation (which you are reading now)
Reference docs: For all XP related apps, starters, libraries and more that are built by Enonic.
Hands on guides: Practical how-to guides an tutorials, including the getting started page
The portal is naturally an XP app itself. The geeky fact is that all docs and most guides are written in Asciidoctor together with the actual product code.
When we commit, changes to the docs are automatically checked out, compiled and imported to XP as content. This optimize how developers produce content, while taking advantage of everything XP offers at the same time.
We plan to release the core elements of the doc portal on the market in the future.
The brand new Enonic Command Line Interface - "Enonic CLI" was also released at the same time as XP 7. It is versioned independently for more frequent updates. The CLI not only replaces the old toolbox script, it also introduces new and flexible ways of installing XP and managing projects and development environments.
Installing CLI, Enonic XP, building and deploying your first app can now be done with a few simple commands, as described in the getting started section of the developer portal
The CLI is available for Mac, Linux and Windows. For more information, check out the full documentation.
The biggest conceptual change to XP is that Java (the JVM) is no longer required in order to run XP. XP 7 ships with Java 11 embedded. As such, we now release native distributions of XP for the three major platforms, Mac, Windows and Linux. Expect future versions of XP to make more use of native capabilities and non-Java based functionality. As always, you will never have to worry about portability when writing XP apps.
There are several reasons for this move:
Developers no longer need to install or juggle with different versions of the JVM
Installation of XP is faster and sleeker than ever
We can take advantage of native/non-Java functionality when required
With this change, XP is now available in SDK and Server version. The SDK includes the full Java Development Kit, whereas the server edition uses a slimmed down version of the JVM, and may be further optimized for production use.
Content Studio, the CMS editorial interface has been moved out of the XP core. It is now available as a separate application on Enonic Market
Content Studio can now be released more frequently than the XP core. Expect new versions of Content Studio to be released along with new features in the XP core.
For Content Studio release notes, check out the new documentation.
XP 7 introduces a new feature in the rich text editor called "Image styles". Image styles consist of both client side styling (css), and image service rendering specifications.
The rich text editor was previously limited to pre-defined and hard-coded styles, such as
cinema (21:9) or
square(1:1). Now, application developers may define custom styles that control both server side rendering aspect ratio, and specify classes to annotate the specific image.
Customers with many sites have requested better support for isolation of sites, and specific access rights to each. Our solution to create sites in different "projects", each project will be using its own repo. XP 7 (and Content Studio) does not yet fully implement this features, but prepares the foundation for supporting it.
You will notice this through the following change:
The default CMS repo is renamed from "cms-repo" to "com.enonic.cms.default".
New projects will be using the extension as project name, i.e. project "myproject" will use repo "com.enonic.cms.myproject"
The site engine URLs now contain project name - i.e.
References to images or other content in the rich text editor are now stored explicitly in the underlying node API. The publishing wizard will now identify and include these dependencies like all other references - no more missed items during publishing.
Content flagged with a language is now automatically stemmed during indexing (trimming words to their root form for better hits). This is done using the standard Elasticsearch stemmer. This is achieved by adding a stemmed version of the
_allText property, combined with a new query function.
Pages, and their components are now indexed differently. Rather than just looking for text within a page, developers may now search for any configuration property, or metadata within a page.
As an example, one may now search the use of a specific part within a site.
The XP storage has been refactored for improved performance and disk usage.
XP persists all data in so-called blobstore segments, one segment for each type of data to persist. XP 7 introduces new segments for indexconfig and permissions, enabling re-use of these across nodes, and node versions.
This reduces the use of disk space significantly.
Additionally, each repository now has it’s own root entry in the blobstore. This makes it possible to directly manage blobs associated with a single repository.
XP automatically creates new versions for each modification of a node. Where XP 6 would persist all versions forever, XP 7 by default treats all versions as transient. This means that all versions that are not currently in a branch, may be garbage collected at any time in the future.
To prevent versions from being removed, one may also commit.
For the Content API specifically, publishing an item will automatically create a commit, effectively placing a stamp on the specific versions being published. Commits have id, committer, and optionally a commit message as meta data.
|XP 7 does not yet implement the garbage collector that removes uncommitted versions, this will be part of an upcoming release.|