Anchor | ||||
---|---|---|---|---|
|
...
Expand | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||
XperienCentral R45Release date: September 10, 2024
Check Configuration FilesSee Check Configuration Files. Check Custom Media Item CodeIf you implement a custom media item, you will most likely need to modify your custom media item controller. Usually, For example, change;
to BeanUtils.copyProperties(mediaItemVersion, myFormBackingObject, new String[ {"presentation", "presentationVariant"}); and change
to BeanUtils.copyProperties(myFormBackingObject, mediaItemVersion, new String[]{"presentation", "presentationVariant"});
New situation without jQuery:
Old situation:
New situation with jQuery:
New situation without jQuery:
Summary
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 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 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 " |
...
IAF_ShowFormFragment
IAF_HideFormFragment
IAF_ShowError
IAF_HideError
IAF_SubmitForm
IAF_AfterSubmit
IAF_AjaxShowFormStep
IAF_FormLoaded
IAF_ClientSideFrameworkLoaded
For the following events, no changes have to be made if you keep using jQuery:
IAF_ShowFormFragment
IAF_HideFormFragment
IAF_SubmitForm
IAF_FormLoaded
IAF_ClientSideFrameworkLoaded
If you do want to rewrite your custom JavaScript to not include jQuery, rewrite your code as follows:
Old situation:
New situation without jQuery:
The same applies for the other events.
For the following events changes have to be made regardless of whether you keep using jQuery or not:
IAF_ShowError
IAF_HideError
IAF_AfterSubmit
IAF_AjaxShowFormStep
In the old case these jQuery events had specific data which was added to them, but the way you have to retrieve this data has changed.
IAF_ShowError
: passes on error div ID and the errorsIAF_HideError
: passes on error div IDIAF_AfterSubmit
: passes on data returned by XCIAF_AjaxShowFormStep
: passes on form step data returned by XCFor these events you can apply the following changes to your code:
IAF_ShowError
Old situation:
New situation with jQuery:
New situation without jQuery:
IAF_HideError
Old situation:
New situation with jQuery:
New situation without jQuery:
IAF_AfterSubmit
Old situation:
New situation with jQuery: