Anchor | ||||
---|---|---|---|---|
|
...
Click an XperienCentral version for specific upgrade information.
Expand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
XperienCentral R45Release date: September 9, 2024
Check Configuration FilesSee Check Configuration Files. Audit Trail Database ModificationsIn some cases, the Audit Trail panel can cause the XperienCentral environment to freeze up. This is caused by the out of control growth of some database tables related to the audit information that is collected and stored. To solve this problem, the application manager or a developer must execute two queries on the database used to store the Audit Trail history. These queries create two new indices. Creating the indices is optional but GX Software recommends that you do so. You can upgrade XperienCentral to version R45 without the new indices.
Execute the following two queries on the database containing the Audit Trail:
Deprecated ComponentsIn XperienCentral version R45, a number of deprecated components have been removed. If you have custom code that makes use of any of these components, you must modify it. The following components have been deprecated/removed:
|
Expand | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||
XperienCentral R44Release date: June 17, 2024
Check Configuration FilesSee Check Configuration Files. Image MapsIn XperienCentral R44 support for image maps has been removed. Any image maps that are still present when upgrading to R44 (or later) will be removed automatically. Solr Index ReplicationIn XperienCentral versions R44 and higher, replication of the Solr index over multiple nodes in a cluster can now be done via the database. This improves index consistency and performance. When you enable Solr replication on a clustered environment selecting
GraphQL LoggingBy default, the GraphQL Java dependency is logging too much information. For this reason GX Software strongly recommends that you change the log level of this logger. Follow these steps: TomcatAdd the following line to the
JBossAdd the following lines to
Restart Tomcat/JBoss. Includes in PresentationsThe presentation include functionality has been removed in XperienCentral R44. If you use the DependenciesThe following packages have been removed from XperienCentral in version R44: The following packages have been added to XperienCentral in version R44: |
...
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
XperienCentral R43Release date: March 4, 2023
Check Configuration FilesSee Check Configuration Files. WebManagerAPI.getWrapper() Method ModificationIn XperienCentral versions R42 and earlier, calling
should be changed to
Delete the formupload DirectoryAfter upgrading to R43, delete all files from the form upload directory. The form upload directory is specified by the setting Add New Location for Presentation JSPsIn XperienCentral R43, the XperienCentral XSL stylesheets were combined into 1 new file. In the General tab of the Setup Tool, you need to add the new location Remove Deprecated PluginsAfter upgrading, remove the following plugins manually in the Plugins Management Console:
|
...
Expand | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||
XperienCentral R42Release date: December 4, 2023
Check Configuration FilesSee Check Configuration Files. GraphQL APIThe Spring MVC UpgradeSpring MVC was upgraded from 3.2.18 to 5.3.30 in this release. If any of the controllers in your project directly or indirectly extend from For example:
should be changed to
addValidatorsIf your project has controllers that directly or indirectly extend from BaseWemanagerController, and this controller registers a validator through binder.addValidator(new ...Validator), change this to addValidator(new ...Validator). This method is present on BaseWebmanagerController.java. Notes for ReusablesIf your project uses reusables, those might need to be upgraded as well. For each reusable that your project uses, check whether it contains any controllers that directly or indirectly extend from Updated DependenciesThe Removed DependencyThe dependency Moved DependenciesThe Maven dependency Apache SolrWhen using a custom solrconfig.xml, update the Lucene Match version to 9.8.0:
XperienCentral R42 has been updated to Apache Solr version 9. After upgrading XperienCentral, manually rebuild both the backend and frontend indexes. Custom Indexable JCR PropertiesWhen using custom indexable JCR properties when calling the wmpformpresentation PluginThe following files in the form presentation plugin have been minified and renamed. If you refer to these static files in your code, you will need to update these references accordingly:
|
...
Expand | ||
---|---|---|
| ||
XperienCentral R41Release date: September 20, 2023
Check Configuration FilesSee Check Configuration Files. Rebuild the Content IndexDue to a change in the Search functionality, you must rebuild the content index. To do so, manually remove the YourKit Java ProfilerThe YourKit Java Profiler has been removed from XperienCentral in version R41. If your deployment uses a custom implementation of YourKit, search for references in your Apache DerbyApache Derby has been removed from XperienCentral in version R41. If your deployment uses a custom implementation of Derby, you must remove all references to it from your project. jQueryIn this version of XperienCentral, jQuery has been reverted to version 3.5.1. |
...
Expand | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
XperienCentral R40Release date: July 20, 2023
Check Configuration FilesSee Check Configuration Files. Best Practices for Strict Content Security Policy (CSP) ConfigurationsIt is recommended that you no longer use event attributes like
should be replaced by something similar to this:
This recommendation also goes for the
Guava is Replaced by CaffeineIn R40, the Guava Java-based library has been replaced by the Google Caffeine caching library. If your deployment makes use of Guava in custom code, you must modify it to use Caffeine. XperienCentral Online Help ComponentThe Online Help component has been removed from XperienCentral in version R40. You must therefore modify any custom plugins that have a dependency on this component. solrconfig.xmlThe luceneMatchVersion in any custom |
...
Expand | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
XperienCentral R37.1Release date: July 10, 2023
Check Configuration FilesSee Check Configuration Files. Best Practices for Strict Content Security Policy (CSP) ConfigurationsIt is recommended that you no longer use event attributes like
should be replaced by something similar to this:
This recommendation also goes for the
Angular and CSS StylingBeginning in XperienCentral R39.0, GX Software recommends that you prevent Angular panels from rendering inline CSS styling. You should configure your Content Security Policy to block this. In Angular version 12, the so called "critical CSS" is rendered inline by default. This can be changed easily by setting the Password RequirementsThe password strength requirements have been modified in XperienCentral R39. A password must now contain 12 or more characters. While existing passwords will still work after upgrading to R39, GX Software recommends that you encourage your users to change their password after upgrading. XperienCentral Online Help ComponentThe Online Help component has been removed from XperienCentral in version R37.1. You must therefore modify any custom plugins that have a dependency on this component. |
...
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
XperienCentral R39Release date: April 6, 2023
Check Configuration FilesSee Check Configuration Files. Filename ChangesThe following files have been modified in this version of XperienCentral. If you have custom code that references the following files by name, you must modify your code to pick up these changes.
Angular and CSS StylingBeginning in XperienCentral R39.0, GX Software recommends that you prevent Angular panels from rendering inline CSS styling. You should configure your Content Security Policy to block this. In Angular version 12, the so called "critical CSS" is rendered inline by default. This can be changed easily by setting the Java Min/Max VersionIn XperienCentral R39, Java 17 is the minimum and maximum supported version. Password RequirementsThe password strength requirements have been modified in XperienCentral R39. A password must now contain 12 or more characters. While existing passwords will still work after upgrading to R39, GX Software recommends that you encourage your users to change their password after upgrading. Remove the XML Parser PluginAfter upgrading to XperienCentral R39, you should manually remove the "GX WebManager - XML Parser" plugin to avoid errors in the log. See Plugins Management Console. The wmedit: button tagThe Content Security Policy configurationA Content Security Policy is used to let the user's browser know from which location resources like Javascript or CSS can be loaded. XperienCentral now supports the configuration of a CSP within XperienCentral itself. Configuration takes places via the Content Security Configuration panel, found in the main menu under Application Tools. Disabling the Content Security Policy FilterThe filter that adds both the CSP header and the nonces (if applicable) can be bypassed when starting XperienCentral. This can be used if the CSP is configured on Apache HTTPD for example or when you are accidentally locked out of XperienCentral due to a CSP misconfiguration. For more information on Content Security Policy configuration see https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP Changes in xslStyleSheetIn R39, an extra XSL template for
|
...
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
XperienCentral R38Release date: October 28, 2022
Check Configuration FilesSee Check Configuration Files. Interactive Forms File Name Changes
If you have custom code that uses these files, you need to modify your code to pick up these name changes. These name changes are only relevant for projects that do not use the default Shared languagesIn XperienCentral version R38, language labels are no longer implicitly shared between channels. When you want to keep sharing the labels of a specific language between 2 channels, perform the following steps before upgrading to R38:
Upgrading to R38 has no impact when a language was already shared in the way described above. |
...
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
XperienCentral R37Release date: August 24, 2022
Check Configuration FilesSee Check Configuration Files. Interactive Forms Form Fragment APIThe API for form fragments was changed in R37. The Interactive Forms |
Code Block | ||
---|---|---|
| ||
<input type="hidden" name="pageid" value="${presentationcontext.page.id}" /> |
Search & Retrieve API
The setting contentindex_index_readonly_nodes
has been added to the application_settings
section of the General tab of the Setup Tool. If the Search & Retrieve API is used on a clustered environment, this setting should be enabled, otherwise the API will not return any results. When this setting is enabled the content index should also be rebuilt.
...
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
XperienCentral R36Release date: June 15, 2022
Check Configuration FilesSee Check Configuration Files. SEO UpdatesIn R35 and earlier, the To make sure this works as intended check the following settings in the Setup tool:
In R35, the default value was
If Apache is used, this field is usually empty and can be left as is.
The value of this field should be set to
Please also make sure that all changes in
|
Code Block | ||
---|---|---|
| ||
RewriteCond %{REQUEST_URI} !^/web/ RewriteCond %{REQUEST_URI} !^/admin/ RewriteRule ^/(.*)\.htm$ /web/$1.htm [PT,L] |
The last line should be updated to
Code Block | ||
---|---|---|
| ||
RewriteRule ^/(.*)\.htm$ /web/seo/$1.htm [PT,L] |
This applies to both the back- and frontend vhost
configurations.
In order to run XperienCentral without extensions at all, see Running XperienCentral without a Friendly URL Extension.
Friendly URL Extension Setting
The setting frontend_settings.friendly_url_extension
was removed in R36.
URL Transformations
When transforming a URL from a URL without a context path to one with a context path in custom code, you should now also add the SEO path to the updated URL. This kind of logic is often used in custom implementations of the MetaDataProvider
interface.
Update your Solr Configuration
In R36, the Solr version has been upgraded to version 8.11.1, therefore you must make the following changes:
In solrconfig.xml
, change the declaration:
<luceneMatchVersion>6.6.6</luceneMatchVersion>
to
<luceneMatchVersion>8.11.1</luceneMatchVersion>
The eDismax query parser parameter lowercaseOperators
now defaults to false
if the luceneMatchVersion
in solrconfig.xml
is 7.0.0 or above, therefore you must set the lowercaseOperators
parameter explicitly to true
:
<bool name="lowercaseOperators">true</bool>
The following spatial-related fields have been removed:
LatLonType
GeoHashField
SpatialVectorFieldType
SpatialTermQueryPrefixTreeFieldType
Choose one of these field types instead:
LatLonPointSpatialField
SpatialRecursivePrefixTreeField
RptWithGeometrySpatialField
Extra Steps
- Stop Tomcat if it is running.
- Remove the directory
<webmanager-root>/work/searchengine
. - If you have a custom
solrconfig.xml
, you need to modify it — open it in a text editor. - Save your custom
solrconfig.xml
. - Start Tomcat.
- Log in to XperienCentral.
Real-time indexing
If you use real-time indexing (the XperienCentral Realtime Indexing reusable):
- Navigate to Configuration > Realtime Indexing.
- Select the "Indexing" tab.
- Select all the websites that you want to index in the top part of the panel.
- Click [Index selected items].
No real-time indexing
If you do not use real-time indexing (the XperienCentral Realtime Indexing reusable):
- Open the Setup Tool.
- Select the Search Tools tab.
- Click [Index] in the "INDEX URL" section.
Custom Solr Queries
Check the changes that have been made between Solr versions 6.6.6 and 8.11.1 in order to determine whether you need to modify your custom Solr queries. See https://solr.apache.org/guide/8_11/major-changes-in-solr-8.html.
Deprecated Functionalities
Some query functionalities have been deprecated and/or removed, so it might be necessary to rewrite custom queries. See Solr upgrade (R36/Solr 8.11.1) for specific use cases that GX Software has encountered (login required).
Rebuild the Content Index
Due to a change in the Search functionality, you must rebuild the content index. To do so, manually remove the <webmanager-root>/work/contentindex
directory after the upgrade and allow it to be regenerated after restarting XperienCentral. Selecting contentindex_queue_empty_reindex
in the General tab of the Setup Tool is not sufficient to trigger the regeneration of the content index.
...
Expand | ||
---|---|---|
| ||
XperienCentral R35Release date: February 7, 2022
Check Configuration FilesSee Check Configuration Files. SSI URLsNew security measures were introduced in this version that prevent the manipulation of URLs that contain SSI object IDs and/or presentation IDs. In general the cache will still be filled with files that contain pre-upgrade SSI URLs after an upgrade, which will lead to SSIs not being loaded and to the following message being logged in the Catalina logs: nl.gx.webmanager.servlet.ControllerServlet.checkSsiObjectIdUrlSignature Block ssiObjectId request XXXXXXX because it is not allowed in this context This can be prevented by either clearing the frontend cache during the upgrade or, if that is not an option, by disabling the fragment.tag and fragmentLabel.tagThe files Changes to fragment.tagThis file has been updated to always render the HTML for the fragment label in the IAF Panel. Additionally, an ID is added to the Changes to fragmentLabel.tagIf you select "Required field" for a form fragment, you see that change immediately in the Interactive Forms panel. In earlier versions, this was not the case. In order to make this possible, the HTML is now always rendered in the Interactive Forms panel.
|
Expand | ||||
---|---|---|---|---|
| ||||
XperienCentral R34Release date: November 18, 2021
Check Configuration FilesSee Check Configuration Files. Deprecated Media Repository Method RemovedThe following method which was deprecated in 2009 has been removed from
JBoss upgradeFrom R34 onwards, JBoss 7.2 EAP is the supported JBoss version. JBoss 7.2 EAP and higher incorporates JDK 11 support. In order to upgrade, download the JBoss 7.2.0 EAP application server from https://developers.redhat.com/products/eap/download. See https://access.redhat.com/articles/2026253 for the supported configurations. In order to run XC on the JBoss application platform, use the standalone.xml and standalone.conf delivered with the XC SDK. For more information, see the updated JBoss information on the Linux Server Installation page. MySQL Connector Upgrade
|
...
Expand | ||||
---|---|---|---|---|
| ||||
XperienCentral R33.1Release date: September 27, 2021
Check Configuration FilesSee Check Configuration Files. CSRF Approved URL SettingA new CSRF setting has been added that allows you to approve URLs and bypass the CSRF checks. See the setting
Minimum Java VersionBeginning in R33.1, the minimum Java version required to run XperienCentral is Java 11. The maximum Java version supported is Java 13. This is also required for the XperienCentral add-ons:
Add New Java OptionAs a result of the minimum Java version being raised to Java 11, you must modify your Tomcat For JAVA_OPTS:
For Catalina add:
|
...
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
XperienCentral R33Release date: July 30, 2021
Check Configuration FilesSee Check Configuration Files. Google Sitemap Automatic UploadIn XperienCentral R33, a new setting for controlling whether XperienCentral automatically uploads generated sitemaps to Google has been introduced. The setting Because it is disabled by default, when upgrading from R32, the option must be enabled manually if XperienCentral should continue to automatically submit the sitemap to Google. New Channel for the Interactive Forms PanelBeginning in XperienCentral version R33, the Interactive Forms panel uses the "iafpanel" channel to render forms. This mechanism makes it possible to decouple the IAF visual representations from the website presentation. New presentations should use it for all standard fragment types unless the representation inside the IAF panel must resemble the website's presentation. When upgrading, there are 3 possible options for handling this situation:
fragmentDiv tagWhen the An example how this can be implemented can be found in the standard IAF CSRF SettingsTo better protect websites hosted by XperienCentral against CSRF attacks, a new mechanism has been introduced that uses a CSRF token that is stored in a cookie, and an SHA-256 hash of this token plus a random 16 character long nonce, postfixed with the used nonce, must be included in all non-GET requests to the server as a header or form field. This change could affect custom functionality in the following ways:
See also /wiki/spaces/PD/pages/24718337 for more information. formvalidationbindings.jsThe following changes have been made to the
Interactive Forms Upload ElementThe Upload element in Interactive Forms has been modified to allow multiple file uploads. You can also set a minimum and maximum number of allowed files in an Upload element. See Creating Forms for complete information. Modular Content Tag Property change (v2.0.13)Properties of type
Previously, the tag name would be retrieved using Previously in Java
Now in Java
Previously in JSP Code
Now in JSP Code
Interactive Forms Deprecated MethodsIn XperienCentral versions R33 and higher, the following form methods have been deprecated. FormScopeThe following method has been deprecated:
use the following method instead:
FormValuesMapThe following method has been deprecated:
use the following method instead:
UploadFragmentScopeAll methods have been deprecated. Use the following method instead:
|
...
Expand | ||
---|---|---|
| ||
XperienCentral R32Release date: May 12, 2021
Check Configuration FilesSee Check Configuration Files. Rebuild the Content IndexDue to a change in the Search functionality, you must rebuild the content index. To do so, manually remove the Check Google Sitemap Generator ScheduleIn R32, XperienCentral generates and uploads a Google Sitemap by default once per day. If you do not want to generate a sitemap, clear the field Changes to the XperienCentral APIRemoved MethodsThe following deprecated methods have been removed in R32:
Added MethodsThe methods
The purpose of the Lead field is to provide a short summary of the content item's content and can be used, for example, as a summary in a search function or in a Content Overview. One important difference is that, as designed, the Meta Description field is not meant to be visible to end users while the Lead Text is. The following methods have been moved from
Furthermore, the following methods have been added to
|
...
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
XperienCentral R31Release date: March 4, 2021
Check Configuration FilesSee Check Configuration Files. Default Content Language
New WYSIWYG Editor in Interactive FormsIn XperienCentral R31, a new WYSIWYG editor has been introduced in Interactive Forms. It generates HTML in a slightly different way than the old editor. The changes introduced by the new WYSIWYG editor are:
After ugrading to XperienCentral R31, HTML already stored in existing form elements remains unchanged. All new HTML produced after the upgrade will be generated in the new way. If you edit an existing WYSIWYG form element, it will be upgraded after saving. In some cases, extra whitespace may be introduced between elements. GX Software recommends that you check new or modified WYSIWYG form elements after upgrading to R31 in order to determine whether you need to tweak your CSS to accommodate the behavior of the new WYSIWYG editor. Connector Definition for AJP/1.3 ConnectionsIn Tomcat versions 8.5.51, 9.0.31 and later, the connector definition in the
getPersonalizationXMLDataThe getPersonalizationXMLData method in the PersonalizationXMLDataProvider API has been changed from
to
If you use this method, you must refactor your code to cope with the modification. getMediaItemVersionsIn version R31 of XperienCentral, the tag Replace all instances of the
to
See getMediaItemVersions and the Javadoc for Delete Cache Before to Logging in to an XperienCentral R31 Installation Running LocallyDue to a change to internal JavaScript files in this release, GX Software strongly recommends that you delete your browser cache if you run a local installation of XperienCentral R31 after upgrading but before logging in for the first time. This does not apply to XperienCentral running on an Apache web server. GX WebManager JUnit Wrapper BundleBeginning in XperienCentral version R31, the JUnit wrapper bundle is no longer deployed to XperienCentral by default. It is possible that plugins (including any reusables) built against older versions of XperienCentral still have an indirect dependency on this plugin which results in those dependent plugins not starting when XperienCentral is started. There are two ways to fix this issue:
|
...
Expand | ||
---|---|---|
| ||
XperienCentral R30.1Release date: December 10, 2020
Check Configuration FilesSee Check Configuration Files. XSS Features
External Application Support
Uploaded File Handling
See also Linux Server Installation. xss_allowlist_siteworks_expressionsThe setting |
...
Expand | ||
---|---|---|
| ||
XperienCentral R29.3Release date: December 2, 2020
Check Configuration FilesSee Check Configuration Files. XSS Features
External Application Support
Uploaded File Handling
See also Linux Server Installation. xss_allowlist_siteworks_expressionsThe setting
and
|
...
Expand | ||
---|---|---|
| ||
XperienCentral R30Release date: October 28, 2020
Check Configuration FilesSee Check Configuration Files. |
...
Expand | ||
---|---|---|
| ||
XperienCentral R29.2Release date: October 8, 2020
Check Configuration FilesSee Check Configuration Files. |
...
Expand | ||||
---|---|---|---|---|
| ||||
XperienCentral R29.1
Release date: September 7, 2020
Check Configuration FilesSee Check Configuration Files. Changes to the Interactive Forms Date ValidatorThe date validator in Interactive Forms now only accepts the Additionally, you need to check any post-processing code that further handles dates submitted in an Interactive Form. For example, if the date submitted in the form is used in an email handler or stored in a database, you need to evaluate how this change affects any further processing you do on data received in forms. |
...
Expand | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
XperienCentral R29
Release date: July 21, 2020
Check Configuration FilesSee Check Configuration Files. New Method for Retrieving Media Items in Content OverviewsIn this release, the Dynamic Content Overview now supports an explicit fallback language selection. For this implementation, the API of
For example, in
must be replaced by:
New Mechanism for Generating Download LinksBeginning in version R29, SEO URLs are now available for downloads. If download elements are linked to downloads in the Content Repository, a small change is required to use these new SEO URLs. The change must be applied to each presentation of a download element (any presentation with scope
Beginning in R29, use the
New Security Protocol Setting for Frontend ServersIn XperienCentral R29, a new preview functionality was introduced. Among other things, this feature enables visitors who do not have permission to log in to the XperienCentral backend to nevertheless preview unpublished content. For this reason, the new setting
|
...
Expand | ||||
---|---|---|---|---|
| ||||
XperienCentral R28Release date: May 13, 2020
Check Configuration FilesSee Check Configuration Files. Performance Dashboard is RemovedThe Performance Dashboard has been removed from XperienCentral in R28. Use the Monitoring Dashboard to view statistics and metrics related to your XperienCentral deployment. See also Administrative Pages. While the upgrade scripts for XperienCentral should in principle remove all components related to the Performance Dashboard, in some circumstances it may not, therefore you need to manually remove any remnants. Follow these steps:
See also Plugins Management Console. Code ChangesThe
must be changed to:
JCR IndexBeginning in R28, XperienCentral uses an XperienCentral-optimized indexing solution to support queries on frontend nodes instead of the Apache Jackrabbit JCR. This solution generally improves performance and drastically reduces the amount of time it takes to bring a new frontend node online in cloud deployments when traffic demands increase. The new indexing solution will always be used in XperienCentral even if the old JCR index is not disabled. The old JCR index should be disabled on production environments if possible. See also the new JCR Index Settings that have been added to the Setup Tool. JCR Query ReplacementIf you use custom JCR queries in your deployment, they should be replaced in order to use the new API. The following shows a typical query replacement: Queries similar to this:
should be changed to something like this:
Disabling the Built-in Apache Jackrabbit JCR IndexTo disable the old Apache Jackrabbit JCR index, follow these steps:
Content API User CredentialsIn the Connector API, there are two locations in Configuration > Import/Export Configuration where user credentials define which user account executes import/export jobs: one on the Configuration tab and one on the Job tab. The Job tab previously contained the fields "Username", "Password" and "Use application key". The Cofiguration tab contained the same fields with an additional "Website" field. These fields have been replaced by a single "User" drop-down list. In R28 a new System user option has been introduced in the User Authorization panel. Only user accounts designated as system users can be authorized to execute automated export/import jobs. Re-add Users as System UsersAfter upgrading to R28, the existing username(s) will still be used by the Connector API. As soon as you open either of the panels, however, the user(s) might not be selectable anymore and if you re-save the configuration, the jobs might stop running. This is the intended behavior. The solution is to navigate to the Authorization panel, designate new system users and then designate them as the user accounts that run jobs on the Configuration and Job tabs in Import/Export Configuration. |
...
Expand | ||
---|---|---|
| ||
XperienCentral R27Release date: March 26, 2020 Check Configuration FilesSee Check Configuration Files. Language Version Support for Media ItemsBeginning in XperienCentral 10.27.0, each version of a media item has a specific language defined for it. During the upgrade R27 or higher, each media item is assigned the default editing language of the home page. A consequence of this is that media items might not be shown any longer if its language differs from that of the page on which it should be shown. This is also the case for (lead) images stored in the Content Repository. This can be solved in many cases by defining a fallback language for the languages on your channel. If the fallback language for Dutch is set to English, for example, and there is no Dutch media item to be shown on a Dutch page, then the English version will be shown. This is the case for all kinds of media items, images as well as articles, for example. Check the following to ensure that media items in your channel(s) are handled appropriately:
Modify your Solr ConfigurationIn this version of XperienCentral, the Lucene version has been upgraded to version 6.6.6, therefore you must make the following changes to Change the declaration
to
and add the following declaration to the
Deprecated MethodThe following method has been deprecated in the XperienCentral API in this release:
Removed Methods/InterfacesThe following methods and interfaces have been removed from the XperienCentral API in this release:
Update your Presentation JSPsYou need to update your presentation JSPs if they use the following methods:
Perform a global search in your presentation JSPs for the string " |
...
Expand | ||
---|---|---|
| ||
XperienCentral R26.1Release date: January 21, 2020 Check Configuration FilesSee Check Configuration Files. Solr SearchThe search functionality has been upgraded to Solr 6 in this version of XperienCentral. After upgrading, perform the following steps in order to prepare your deployment for Solr 6:
Realtime indexing If you use real-time indexing (the XperienCentral Realtime Indexing reusable):
No realtime indexing
|
...
nl.gx.webmanager.cms.integration.QueryParameter
Removed method
getFormElement()
,Don't replace this method.
Removed method
getFormElementHtml()
.Don't replace this method.
nl.gx.webmanager.cms.mediarepository.MediaItemDownloadVersion
Removed method
getDate()
.Replace with
getFileModifiedDate()
- calltoString()
if you need a string.nl.gx.webmanager.cms.mediarepository.MediaItemImageVersion
Removed method
getResizedImage(int sizeId)
.Replace with
Image.getSizedImage(int,int)
.Removed method
getResizedImage(int width, int height)
.Replace with Image.getSizedImage(int,int).
nl.gx.webmanager.wcb.WcbHelper
Removed method
getWcbResourcePrefix(final WCB_RESOURCETYPE wcbResourceType, final String personalName)
.Replace with
wcbResourceType.getTargetLocation(personalName){}
.Removed method
getWcbDeployedName(final String src, final String personalName)
.Replace with
src.replace(WCBConstants.WCB_RESOURCE_INSERT_COMPONENT_FILE_ID, personalName)
.Removed class WcbHelper.
First replace the methods above and then remove the unused import.
nl.gx.webmanager.wcb.ComponentDefinition
Removed method
getNameSpace()
.Replace with
getComponentBundleDefinition().getNameSpace()
.nl.gx.webmanager.cms.integration.DatabasePageType
Removed interface
DatabasePageType
.Replace with
DatabaseEntity
.org.osgi.framework.BundleContext.ComponentBundleDefinition
Removed method
getWCBKey()
.Remove all instances of this method.
nl.gx.webmanager.cms.mediarepository.MediaCollectionOverviewElement
Removed method
getIncludingTerms()
.Replace with
getMandatoryTerms()
.nl.gx.webmanager.cms.layout.PagePart
Removed method
getBannerServiceUrl()
.Don't replace this method.
nl.gx.webmanager.wcb.MenuItemComponentDefinition
Removed method
getTargetMenu()
.Replace with
nl.gx.webmanager.wcb.paneltype.PanelComponentDefinition#getMenuCategory()
.Removed method
getTargetMenuLocationAfter()
.Don't replace this method.
Removed method
getTargetMenuLocationBefore()
.Don't replace this method.
Removed method
getSubMenu()
.Don't replace this method.
Removed method
getSubMenuTextMessageKey()
.Don't replace this method.
Removed method
getSubMenuLocationAfter()
.Don't replace this method.
Removed method
getSubMenuLocationBefore()
.Don't replace this method.
nl.gx.webmanager.wcb.dojotype.DojoModule.ModuleType
Removed
enum constant SidebarWidget
.Replace with
SIDEBAR_WIDGET
.Removed
enum constant Module
.Replace with
MODULE
.Removed
enum constant SimpleSearch
.Replace with
SIMPLE_SEARCH
.Removed
enum constant Panel
.Replace with
PANEL
.nl.gx.webmanager.services.history.HistoryEvent
Removed
String constant TOUCH
.Use
EntityEvent.UPDATE
.nl.gx.webmanager.services.datasource.Provider
Removed method
getSpecification()
.Don't replace this method.
nl.gx.webmanager.cms.workflow.WorkflowModel
Removed method
createInstance(String name)
.Use WorkflowService.createWorkflowModelInstance(workflowModel).
nl.gx.webmanager.cms.core.implementation.Image
Removed method
getHtmlTag()
.Create HTML using a JSP.
nl.gx.webmanager.wcb.pagemetadatatype.PageMetaDataComponentDefinition
Removed
enum PageMetaDataPosition
.Page metadata position is no longer supported - remove all instances of this
enum
.nl.gx.webmanager.cms.element.TableRow
Removed method
setNrRows(int rowcount)
.Remove all calls to this method.
Removed method
getNrRows(int rowcount)
.Remove all calls to this method.
nl.gx.webmanager.services.history.Action
Removed
enum constant PAGEMODEL_UPDATE
.Do not replace.
nl.gx.webmanager.services.defaultprofileprovider.DefaultProfile
Removed method
getPassWord()
.Do not replace.
nl.gx.webmanager.wcb.elementtype.ElementComponentDefinition
Removed method getAccessKey()
Do not replace.
nl.gx.webmanager.services.seo.PageFriendlyURLEntity
Removed method getPageVersionId()
Use getVersionId().
Removed method getDepth()
Use getURLIdentifier().split(SEOUtil.getPathSeparator()).length.
nl.gx.webmanager.services.contentapi.LinkManagementService
Removed method
createRelatedExternalLink(ElementHolder elementHolder, String url)
.Use c
reateRelatedLink(ElementHolder, java.lang.Class<? extends RelatedLink>
.Removed method
updateRelatedExternalLink(ElementHolder elementHolder, String code, String url)
.Use
createRelatedLink(ElementHolder, java.lang.Class<? extends RelatedLink>)
and then update the Link object itself.nl.gx.webmanager.cms.element.DownloadElement
Removed method
getSeeEvent()
.Don't replace.
nl.gx.webmanager.services.seo.entity.PageFriendlyURLEntityMutator
Removed method
renamePathPart(int depth, String replace)
.Replace with
setURLPath(String)
.Removed method
renameStartPath(int depth, String replace)
.Replace with
setURLPath(String)
.nl.gx.webmanager.wcb.paneltype.PanelComponentDefinition
Removed method
getAccessKey()
.Do not replace.
nl.gx.webmanager.contentapi.event.PageVersionEvent
Removed method
getTargetPageVersion()
.Replace with getPageVersion().
nl.gx.webmanager.cms.workflow.WorkflowActivityState
Removed method
getStateName()
.Replace with
getState().name
.nl.gx.webmanager.contentapi.event.MediaItemEvent
Removed constructor
MediaItemEvent(Type eventType, MediaItem mediaItem, String eventAction, Object source, int discussionId, Website[] websites)
.Replace with
MediaItemEvent(Type eventType, MediaItem mediaItem, String eventAction, Object source,Website[] websites)
.Removed constructor
MediaItemEvent(Type eventType, MediaItem mediaItem, String eventAction, Object source, int discussionId, Website[] websites, Class<? extends MediaItem> scope)
.Replace with
MediaItemEvent(Type eventType, MediaItem mediaItem, String eventAction, Object source, Website[] websites, Class<? extends MediaItem> scope)
.Removed constructor
MediaItemEvent(Type eventType, MediaItem mediaItem, MediaItem originalMediaItem, String eventAction, Object source, int discussionId, Website[] websites)
.Replace with
MediaItemEvent(Type eventType, MediaItem mediaItem, MediaItem originalMediaItem, String eventAction, Object source, Website[] websites)
.Removed constructor
MediaItemEvent(Type eventType, MediaItem mediaItem, MediaItem originalMediaItem, String eventAction, Object source, int discussionId, Website[] websites, Class<? extends MediaItem> scope)
.Replace with
MediaItemEvent(Type eventType, MediaItem mediaItem, MediaItem originalMediaItem, String eventAction, Object source, Website[] websites, Class<? extends MediaItem> scope)
.Removed method
getDiscussionId()
.Replace with
getMediaItem().getPlanned().getForum().getId()
.nl.gx.webmanager.wcb.ComponentManager
Removed method
installBundle(Bundle bundle)
.Replace with
startComponent(Component component) or startComponentBundle(ComponentBundle componentBundle)
.Removed method
updateBundle(Bundle bundle)
.Replace with
startComponent(Component component) or startComponentBundle(ComponentBundle componentBundle)
.nl.gx.webmanager.cms.mediarepository.implementation.MediaCollectionOverviewElementImpl
Removed method
getContentDependentOperator()
.Replace with
getContentRelatedOperator.getId()
.Removed method
getTerms(final boolean excluding)
.Replace with
getTerms(TermsDeclaration.EXCLUDING_TERMS) or ArrayUtils.addAll(getTerms(TermsDeclaration.OPTIONAL_TERMS),getTerms(TermsDeclaration.MANDATORY_TERMS)).
nl.gx.webmanager.services.seo.FriendlyURLEntity
Removed method
isCurrent()
.Replace with
getReference() == null
.nl.gx.webmanager.services.seo.SeoService
Removed method
activateFriendlyURL(PageVersion pageVersion)
.Replace with
publishFriendlyURL(PageVersion)
.Removed method
activateFriendlyURL(MediaItemVersion mediaItemVersion)
.Replace with
publishFriendlyURL(MediaItemVersion)
.Removed method
getFriendlyURL(ResourceInstance resourceInstance)
.Replace with
getFriendlyURL(PageVersion, ResourceInstance)
.Removed method
getFriendlyURL(MediaItemVersion mediaItemVersion, Website website)
.Replace with
getFriendlyURL(PageVersion, MediaItemVersion)
.Removed method
getPageFriendlyURL(int pageVersionId, String host)
.Replace with
getFriendlyURL(PageVersion)
.Removed method
getMediaItemFriendlyURL(int mediaItemVersionId, String host)
.Replace with
getFriendlyURL(MediaItemVersion, Website)
.Removed method
getDBPageFriendlyURL(int dbId, int typeOfPageId, String host)
.Replace with
getFriendlyURL(ResourceInstance)
.Removed method
getMediaItemBaseEntityURLTitle(int mediaItemVersionId)
.Replace with
FriendlyURLEntity.getBaseURLTitleEntityIdentifier() which can be retrieved through getFriendlyURLEntity(MediaItemVersion)
.Removed method
translateTitleToURLTitle(String title)
.Replace with
getFriendlyURL(PageVersion)} and FriendlyURLEntity.getURLTitle()
.Removed method
translateTitleToURLIdentifier(String title)
.Replace with
getFriendlyURL(PageVersion)} and FriendlyURLEntity.getURLTitle()
.Removed method
updateFriendlyURL(MediaItemVersion mediaItemVersion, String urlTitleOverrule)
.Do not replace.
nl.gx.webmanager.cms.mediarepository.implementation.MediaitemReferenceImpl
Removed class
MediaitemReferenceImpl
.Replace with the Index service.
nl.gx.webmanager.cms.core.implementation.DownloadImpl
Removed method
getInstance(final String url)
.Just create an instance manually.
nl.gx.webmanager.cms.element.implementation.JCRElementBase
Removed method
getMailing()
.Don't replace.
nl.gx.webmanager.cms.element.implementation.TableRowImpl
Removed constructor method
TableRowImpl(final HtmlObject obj, final HttpServletRequest req, final HttpServletResponse res)
.Replace with another constructor.
nl.gx.webmanager.springmvc.controller.component.ElementComponentController
Removed method
initFormBackingObject(final Element element, final Element fbo)
.Replace with
BeanUtils.copyProperties(element, formBackingObject)
.nl.gx.webmanager.cms.forum.implementation.ForumMessageImpl
Removed method
getInstance(final Forum forum, final int id, final HttpServletRequest req, final HttpServletResponse res)
,Don't replace this method.
nl.gx.webmanager.authorization.Permission.Permissions
Removed class
Permissons
.Don't replace.
nl.gx.webmanager.springmvc.controller.component.MediaItemComponentController
Removed method
initFormBackingObject(final MediaItemVersion mediaItemVersion, final Element fbo)
,Replace with
BeanUtils.copyProperties(element, formBackingObject)
.nl.gx.webmanager.cms.core.implementation.ImageImpl
Removed method
getFileLocation(final String url, final boolean deescape)
.Replace with
getFile()
.nl.gx.webmanager.cms.element.implementation.RichTextElementImpl
Removed method
convertToXhtml(final Website website, final String source)
.Replace with
convertToXhtml(source)
.nl.gx.webmanager.foundation.DatabaseUtil
Removed class
DatabaseUtil
.Replace with
nl.gx.webmanager.services.datasource.QueryManagerService
.nl.gx.webmanager.taglib.GetMediaItemsTag
Removed class
GetMediaItemsTag
.Replace with
GetMediaItemVersionsTag
.nl.gx.webmanager.cms.presentation.implementation.PresentationImpl
Removed method
setJspPageContext (final HttpServletRequest request, final PageContext pageContext)
.Replace with
pushJspPageContext(request, pageContext)
.nl.gx.webmanager.springmvc.controller.platform.PlatformController
Removed method
publishUpdateEvent(final Object entity, final Event.Type type)
.Replace with
publishEvent(Event)
.nl.gx.webmanager.springmvc.controller.BaseWebmanagerController
Removed method
getEditLanguageLabel(final String label)
.Don't replace this method.
nl.gx.webmanager.taglib.FunctionLibrary
Removed method
filterHTML(String html, final String whitelistName, final String[] tags)
.Replace with one of these methods :
filterHTMLBasic(String)
,filterHTMLRelaxed(String),filterHTMLTags(String, String)
,filterHTMLTagsAndAttributes(String,String,String)
.nl.gx.webmanager.foundation.Utilities
Removed method
getImageSize(String filename)
.Replace with
getImageSize(File)
.nl.gx.webmanager.authorization.impl.ToolbarElement
Removed class
ToolbarElement
.Don't use this class.
nl.gx.webmanager.wcb.Component
Removed method
purgeContent()
.Replace with
onPurge()
.nl.gx.webmanager.wcb.paneltype.impl.PanelComponentDefinitionImpl
Removed method
setAccessKey(final char accessKey)
.Don't use this method - access keys on panel components are no longer supported.
nl.gx.webmanager.services.seo.handler.FriendlyUrlHandler
Removed method
activate(final PageVersion pageVersion)
.Replace with
currentRollOver(final PageVersion version)
.Removed method
activate(final MediaItemVersion mediaItemVersion)
.Replace with
currentRollOver(final MediaItemVersion version)
.nl.gx.product.wmpdeviceatlas.api.DeviceAtlasService
Removed method
getDeviceMap()
.Don't replace this method.
Removed method
getDeviceProperties(String userAgent)
.Replace with
getDeviceProperties(HttpServletRequest)
.nl.gx.forms.wmpformmanager.api.form.impl.FormSectionImpl
Removed method
getActiveVersion()
.Replace with
getCurrent()
.Removed method
setActiveVersion(final BasicFormSectionVersion activeVersion)
.Don't replace this method.
nl.gx.webmanager.wcb.foundation.ComponentBase
Removed method
setComponentBundle(final ComponentBundleImpl componentBundle)
.Replace with
setComponentBundle(final ComponentBundle componentBundle)
.nl.gx.webmanager.wcb.foundation.ComponentBundleDefinitionImpl
Removed method
setWCBKey(final String wcbKey)
.Don't replace.
nl.gx.webmanager.wcb.foundation.ComponentDefinitionImpl
Removed method
setNameSpace(final String nameSpace)
.Don't replace.
nl.gx.webmanager.wcb.foundation.MenuItemComponentDefinitionImpl
Removed method
setTargetMenu(final String targetMenu)
.Don't replace.
Removed method
setTargetMenuLocationAfter (final String menuItem)
.Don't replace.
Removed method
setTargetMenuLocationBefore (final String menuItem)
.Don't replace.
Removed method
setSubMenu(final String subMenu)
.Don't replace.
Removed method
setSubMenuLocationAfter(final String subMenuLocationAfter)
.Don't replace.
Removed method
setSubMenuLocationBefore(final String subMenuLocationBefore)
.Don't replace.
Removed method
setSubMenuTextMessageKey(final String subMenuTextMessageKey)
.Don't replace.
nl.gx.webmanager.wcb.elementtype.impl.ElementComponentDefinitionImpl
Removed method
getStaticBackendDir()
.Replace with
getBackendResourcesDir
.nl.gx.webmanager.handler.config.Config
Removed class
Config
.Replace with
nl.gx.webmanager.handler.util.Util
.nl.gx.siteworks.parser.library.AuthorisarionLibrary
Removed method
canView(SiteWorksParserData parserData)
.Replace with
isUserLoggedIn(parserData)
.Removed method
canCreate(SiteWorksParserData parserData)
.Replace with
isUserLoggedIn(parserData)
.Removed method
canDelete(SiteWorksParserData parserData)
.Replace with
isUserLoggedIn(parserData)
.Removed method
canEdit(SiteWorksParserData parserData)
.Replace with
isUserLoggedIn(parserData)
.Removed method
canCreate(SiteWorksParserData parserData, int objectId)
.Replace with
isUserLoggedIn(parserData)
.Removed method
canEdit(SiteWorksParserData parserData, int objectId)
.Replace with
isUserLoggedIn(parserData)
.Removed method
canDelete(SiteWorksParserData parserData, int objectId)
.Replace with
isUserLoggedIn(parserData)
.Removed method
canView(SiteWorksParserData parserData, int objectId)
.Replace with
isUserLoggedIn(parserData)
.nl.gx.siteworks.parser.library.MiscLibrary
Removed method
getDebugLevel()
,Don't replace.
nl.gx.siteworks.util.SiteWorksUtil
Removed method
firstUpper(final String string)
.Use Apache
StringUtils.capitalize(string)
.nl.gx.forms.wmpformmanager.api.form.impl.FormImpl
Removed method
getActiveVersion()
.Replace with
getCurrent()
.Removed method s
etActiveVersion(final BasicFormVersion activeVersion)
.Don't replace.
nl.gx.product.wmasolrsearch.api.SearchService
Removed method
indexPages(String[] urls, String[] hostnames, int depth, boolean clearRest)
.Replace with
indexPages(List<String> urls, Set<String> hostnames, int depth, boolean clearRest)
.nl.gx.siteworks.parser.library.CoreLibrary
Removed method
getValue(int objectId, DotExpression dotExpression, SiteWorksParserData parserData)
.Replace with
getAssignment(int objectId, String dotExpression, SiteWorksParserData parserData)
.nl.gx.forms.wmpformapi.engine.FormValuesMap
Removed method
getUploadedFile(String key)
.Replace with
getUploadedFiles(String key)
.nl.gx.forms.wmpformapi.api.form.State
Removed enum
State
.Don't replace.
nl.gx.forms.wmpformmanager.api.form.impl.FormSectionVersionImpl
nl.gx.forms.wmpformapi.api.BasicVersion
nl.gx.forms.wmpformmanager.api.form.impl.FormVersionImpl
Removed method
getState()
.Don't replace.
Removed method
setState(State state)
.Don't replace.
Removed method
getStateValue()
.Don't replace.
Removed method
setStateValue(String state)
.Don't replace.
Old workflow states active, inactive, development have been removed from XperienCentral. If you still need to migrate away from these old states, contact a GX consultant.
nl.gx.product.wmasolrsearch.api.UrlProvider
Removed method
getUrls(boolean includeAll)
.Replace with
getUrlList(boolean includeAll)
.nl.gx.product.wmasolrsearch.searchengine.server.Session
Removed method
execute(String query)
.Don't replace this method.
Removed method
select(String query)
.Don't replace this method.
Removed
method gc()
.Don't replace this method.
Removed method
shutdown()
.Don't replace this method.
Removed method
reset()
.Don't replace this method.
Removed method
execute(String query)
.Don't replace this method.
nl.gx.forms.wmpformapi.api.form.FormVersion
Removed method
isCurrentlyActive()
.Replace with
isPublic()
.nl.gx.forms.wmpformapi.engine.FormScope
Removed method
setUploadFragmentValue(String fragment, UploadedFile file)
.Replace with
setUploadFragmentValues(fragment, Collections.singletonList(file))
.nl.gx.forms.wmpformapi.engine.UploadFragmentScope
Removed method
getOriginalFilename()
.Replace with
getValues().get(0).getOriginalFilename()
.Removed method
getContentType()
.Replace with
getValues().get(0).getContentType()
.Removed method
getCurrentFilename()
.Replace with
getValues().get(0).getFile().getAbsolutePath()
.Removed method
getSize()
.Replace with
getValues().get(0).getSize()
.Removed method
setContentType(String contenType)
.Don't replace this method.
Removed method
setCurrentFilename(String filename)
.Don't replace this method.
Removed method
setOriginalFilename(String filename){}
.Don't replace this method.
Removed method
setSize(long size)
.Don't replace this method.
Removed method
clearFile()
.Replace with
clearFiles()
.nl.gx.forms.wmpuserprofilesformlogic.api.WebUserService
Removed method
userNameNotInUseByAnotherUser(Website website, String userName)
.Replace with
userNameExists(Website website, String userName)
.Removed method
emailNotInUseByAnotherUser(Website website, String email)
.Replace with
emailExists(Website website, String userName)
.nl.gx.forms.wmpformapi.api.base.SimpleParameter
Removed method
getOverridden()
.Replace with
getParameterMode()
.nl.gx.proxy.config.Config
Removed method
getStringValue(String name, String defaultValue)
.Replace with
getStringValue(String name)
.Removed method
getIntValue(String name, String defaultValue)
.Replace with
getIntValue(String name)
.nl.gx.siteworks.core.Session
Removed method
createSession()
.Replace with
createSession(true)
.nl.gx.siteworks.parser.library.DateLibrary
Removed method
week(SWDate date)
.Replace with
dateToString(date, string, string)
.Modular Content
nl.gx.product.wmamodularcontent.api.ModularContentTypeManagementService
Removed method
getUsageInItem(String id)
.Replace with
getUsageInItem(ModularContentType modularContentType)
.nl.gx.product.wmamodularcontent.api.TemplatePropertyType
Removed constructor
TemplatePropertyType(String identifier, String label, TemplatePropertySubtype... subtypes)
.Replace with another constructor.
Removed constructor
TemplatePropertyType(String identifier, String label, List<TemplatePropertySubtype> subtypes)
.Replace with another constructor.