You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 186 Next »

This topic provides extra information and tasks you must perform when upgrading your XperienCentral installation to a specific version. The modifications per version are not cumulative which means that you need to apply the changes for all versions between your current version and the one you are upgrading to. For example, if you upgrade from XperienCentral 10.22.1 to R25, you need to apply the changes described in this topic for all versions from R23 up to and including R25. For general upgrade information, see Upgrading a Linux Installation or Upgrading a Windows Installation.


See also Changelog per Version for information on issues resolved in each XperienCentral release.


Click an XperienCentral version for specific upgrade information.

XperienCentral R27

Release date: March 26, 2020

Set the Default Language for all Media Items

When upgrading to R27, XperienCentral will assign a default language for all media items (all content items besides pages and page sections). The language that is chosen for media items is the language defined for the home page in the General tab of the Properties Widget. Before upgrading to R27, perform the following steps:

  1. Navigate to the home page of your web initiative.
  2. Click [Edit] in the Properties Widget.
  3. Navigate to the General tab.
  4. Check the "Language" setting.
  5. If you want to assign the language that is currently defined for the home page to all media items during the upgrade to R27, proceed to step 9.
  6. If you want to assign a different language to all media items during the upgrade to R27, select it from the drop-down list.
  7. Click [Save].

    When you change the language for the home page in this way, it applies to the page, not the page version. This means that the language will change for the page and all versions of it as well.

  8. If your XperienCentral has more than one web initiative, repeat the steps above for each web initiative.
  9. Upgrade your XperienCentral version to R27.

Deprecated Methods/Interfaces

The following methods and interfaces have been deprecated in the XperienCentral API in this release:

  • MediaRepositoryManagementService.createMediaItemVersion (MediaItem,MediaItemVersion) — Use createMediaItemVersion(MediaItemVersion) instead.
  • MediaRepository.createContent — Use MediaRepositoryManagementService.createMediaItem(Website, String) instead.
  • PageVersion.getPersonalization() — Use getPersonalizationItem() instead.
  • Element.getPersonalization() — Use getPersonalizationItems() instead.
  • Element.setPersonalization() — Use setPersonalizationItems() instead.
  • FileNode

  • PollElement

  • PollItem

  • WhoIsWhoElement

Update your Presentation JSPs

You need to update your presentation JSPs if they use the following methods:

  • PageVersion.getPersonalization()
  • Element.getPersonalization()

Perform a global search in your presentation JSPs for the string ".personalization" to ensure that you catch all instances.



XperienCentral R26.1

Release date: January 21, 2020

The 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:

  1. Stop Tomcat if it is running.
  2. Remove the directory <webmanager-root>/work/searchengine.
  3. Start Tomcat.
  4. Log in to XperienCentral.

Realtime 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 realtime indexing



XperienCentral R26

Release date: December 11, 2019

  • The behavior of the setting http_use_proxy has changed. Beginning in XperienCentral R26, proxy system properties set outside of XperienCentral are no longer overwritten when this setting is clear (false). See the "application_settings" section of the General tab in the Setup Tool.
  • Support for Flash films has been removed from XperienCentral in R26. All Flash content elements in your content items will be removed when you upgrade to this version of XperienCentral. The Flash files themselves will still be present in the Content Repository but they cannot be accessed.




XperienCentral R24.2

Release date: November 19, 2019

Support for Flash films has been removed from XperienCentral in R24.2. All Flash content elements in your content items will be removed when you upgrade to this version of XperienCentral. The Flash files themselves will still be present in the Content Repository but they cannot be accessed.


Upgrading from R24.2 to R25.0 is not supported.




XperienCentral R25

Release date: October 9, 2019

Several changes/additions have been made to XperienCentral API interfaces. If you extend any of these interfaces and have developed your own implementations for them, you may experience failing project builds with XperienCentral R25. Some modifications may have to be implemented for newly added methods. If your custom code extends any of the interfaces listed below, you will have to add new methods to your implementations. See the XperienCentral Javadoc for complete information. The modified interfaces are:

  • Presentable
  • TableElement
  • DownloadElement
  • ImageElement
  • MediaCollectionOverviewElement
  • ListElement
  • PageCollectionElement
  • QueryElement
  • RssFeedElement
  • SearchElement
  • RichTextElement

Upgrading from R24.2 to R25.0 is not supported.





XperienCentral R24.1

Release date: July 2, 2019

Startup performance has been significantly improved. Bundles are now updated only if they have been modified. In XperienCentral R24.0 and earlier, all bundles were updated at startup, regardless of whether they had been modified. Beginning in XperienCentral R24.1, bundles are only updated if:

  • The version is newer than the one installed.
  • The last modified date of the bundle's Bnd-LastModified header in the META-INF/MANIFEST.MF (if present) is more recent than the last modified date of the installed bundle.
  • The Bundle-Date in the META-INF/MANIFEST.MF is more recent than the last modified date of the installed bundle.

This means that if you update anything in the bundle but not these two properties, the bundle will not be updated. This applies to updating bundles in the WAR file, bundles copied to the work/deploy directory and to bundles manually uploaded from the Plugins panel.






XperienCentral R24

Release date: June 5, 2019

Access to the Administrative Pages is no longer restricted to users who have the basic HTTP credentials for a page. When a user has the permission "Access debugging tools" in the category "System utilities" and the user is logged in, they no longer need to provide additional credentials in order to access the Administrative Pages. As a consequence however, the credentials dialog no longer appears automatically when access is requested. If the user is not logged in, they will need to first navigate to:

<xperiencentral-server>/web/admin/login

where <xperiencentral-server> is the name of the server on which XperienCentral is running,

Modular Content Plugin

  • Uninstall the Plugin "Add-on - Modular Content" from the Plugins panel before installing the updated deploy. After installing the updated deploy, install the bundle "wmamodularcontent-1.1.0.jar" from the Plugins panel. This plugin can be found in the edition-bundles directory of the XperienCentral SDK.

Monitoring Framework Plugin

  • After every change in a schedule of one or more indicator sets, the "Add-on - XC Monitoring Framework API" plugin has to be restarted via the Plugins panel to ensure the updated schedule is taken into account.






XperienCentral R23

Release date: March 8, 2019

  • Beginning with this XperienCentral release, the version number is no longer prefixed with "10." XperienCentral releases are now designated using "R" together with the major/minor version number (R23, R24, R24.1, and so forth).
  • In this release XperienCentral has been split into two modes: the original XperienCentral is named XperienCentral Traditional and a new mode named XperienCentral Headless. When upgrading to this release or newer, a new license is required. The new license has a new XperienceCentral version node to determine which version of XperienCentral has to be loaded and it makes some changes in the licensed components.
  • The Community Edition plugin is licensed beginning in XperienCentral R23. Customers that depend on presentations from this bundle should do one of the following:
    • Add the presentations from the CE plugin that are depended on to their own presentation plugin;
    • Request that the CE style presentation plugin be added to their configuration license file (configuration.xml).




XperienCentral 10.22.1

Release date: January 9, 2019

  • In XperienCentral 10.22.1 the jQuery library has been upgraded to version 1.12.4. Where JQuery code is used in a widget, design templates or other custom code, the new version might cause compatibility problems. Please check for compatibility problems in your jQuery code when upgrading to XperienCentral 10.22.1 or higher.
  • Support for Tomcat 8.5.35 has been added. To use this version, you require a different database driver when using MSSQL as your database, See the XperienCentral Installation Guides for more information. Changes to the server.xml and the database drivers in the Tomcat lib directory are required.
  • The bundles "GX Webmanager - DatasourceProvider (MS-SQL JDBC 1.1)" and "GX Webmanager - DatasourceProvider (jTDS 1.2.3)" are no longer supported and should be removed after upgrading.
  • Support for Apache Maven 3.6.0 has been added.






 XperienCentral 10.22.0

See also the XperienCentral 10.22 Changelog for information on the issues that have been fixed and other product improvements.

DependencyManager

In XperienCentral 10.22.0, the DependencyManager implementation has been changed. This has an impact for plugins that use the DependencyManager object in their Activator class with package name org.apache.felix.dependencymanager. In XperienCentral versions prior to 10.22.0, the library DependencyManager version 3.0.0 and DependencyManager Compat 3.0.0 were available. In XperienCentral 10.22 and higher, the Compat library has been removed.

If the Compat library class org.apache.felix.dependencymanager.DependencyManager was present, it was used as a compatibility version for the DependencyManger 3.0.0 (non Compat). All DependencyManager object implementations in plugin Activators where the version of Compat is used will no longer work in XperienCentral versions 10.22.0 and later. In the locations where this variant is used, you must refactor to the DependencyManager 3.0.0/4.4.1 (org.apache.felix.dm.DependencyManager) (non Compat) variant. 

For project plugins the refactoring should be straightforward when upgrading to XperienCentral 10.22 or higher. For plugins that must be deployed on all XperienCentral versions (reusables), a fix is available and implemented in the reusable Utility Services (version 1.6.2).

You must refactor your plugins or reusables in the following cases:

Project Plugins 

If your Activator uses the DependencyManager object with package name org.apache.felix.dependencymanager, change this to org.apache.felix.dm and replace the createService() method with createComponent(). The Service class is no longer available. If your Activator overrides the init() method, refactor this to override the start method and retrieve the DependencyManager object from the ComponentBundleActivatorBase class.

Reusable Plugins 

The same situation applies as above, except you need to add an extra subclass in the Activator class in order to be compatible with XperienCentral versions 10.22.0 higher. If the reusable already uses the Utility Services dependency, you can use the com.gxwebmanager.solutions.wmsutilityservices.osgi.CompatibleActivatorBase in your Activator class. If not, you can add the dependency or copy the class to your own plugin, however, this is not recommended. Also add the  org.apache.felix.dm.*;version="[3.0,5.0)" import package to your pom.xml maven-bundle-plugin. This will ensure that the old 3.0.0 and new 4.4.1 DependencyManager version can be used by your reusable.

If your Activator class uses the createServiceDependency() method to add a Service to the DependencyManager (in REST cases for example), you must refactor this implementation to use the addServiceDependency() method from the CompatibleActivatorBase class in reusable Utility Services.

If your Activator class does not use a DependencyManager object and the Activator class extends from the XperienCentral ComponentBundleActivatorBase class, no refactoring is required. You may need to build your plugin against the XperienCentral 10.22 or newer version.


The required changes described above should be sufficient to make your plugins compatible with XperienCentral 10.22.0 and higher. In some cases, however, this may not be sufficient and further refactoring may be needed. Contact your GX consultant if you have any questions or are unable to get your plugins to work.


When refactoring is finished and XperienCentral has been upgraded to this version or higher, the DependencyManager Compat 3.0.0 bundle can be unstalled.

Custom Facets

Two facets for the keywords field have been added in this release. In order to be able to uniquely identify a facet, changes have been made that affect custom made facet components. The following changes must be made in your project code:

  • In the interface SearchFacetComponentDefinition, the method getIdentifier() has been added. Every class implementing this interface must therefore add this method. The identifier should be a unique string identifying the facet.
  • The constructor of the class SimpleSearchFacetComponentDefinition has been changed. It now includes a parameter for the unique identifier. The new signature is:

    SimpleSearchFacetComponentDefinition(String identifier, String widgetId, Class<?> valuesType, List<String> path, int priority, Map<Locale, String> titles, int position, Map<String, String> properties

    All references to this constructor should be changed.
  • For projects or reusables that use custom Dojo facet search code (those that extend \wmpgui\widgets\advancedsearch\facet\FacetWidget.js) there are some more API changes that you must be aware of:
    • FacetWidget now has an extra member for the facet identifier. This is accessible in widgets via the FacetWidget method called getFacetIdentifier(). Also, the constructor for it has been changed to:

      FacetWidget(fieldIdentifier, facetTitle, facetProperties, facetIdentifier)

    • If you define a FacetQuery in your custom facet widget, the constructor for this object is extended with a parameter for the facet identifier. The constructor is now:

      FacetQuery(fieldIdentifier, facetIdentifier, facetParameters, valueCountQueries, valuesFilter, valuesLimit)

    • If you define FacetDefinition objects in your custom widget code, the constructor has been changed to:

      FacetDefinition(fieldIdentifier, name, properties, facetIdentifier, FacetWidget)


It will depend on your specific use case how your code should be changed. It may be the case, for example, that your custom code uses a FacetQuery just for showing a result set without having to do any filtering. In this case, an empty string can be used for the facet identifier field in your FacetQuery constructor. In other cases where your FacetQuery is indeed bound to a certain facet, you need to use the facet identifier for that facet.

Other Changes

  • The formvalidation.js file in the wmpformpresentation plugin has been changed and needs to be updated when overruled in a custom presentation.
  • The Is Used In widget can now recognize custom media items. You do need to make some modifications to your code, however. See Custom Media Items and the Is Used In Widget.




 

XperienCentral 10.21.1

A problem has been fixed that caused deleted elements to not be completely removed which resulted in excessive space being taken up in the database. After upgrading and starting up XperienCentral for the first time, a task is executed that removes these deleted elements — in some environments, this could take some time to complete.




 

XperienCentral 10.18.0


  • After upgrading to XperienCentral 10.18, a list can only have one personalization applied to it — individual items in a list cannot be separately personalized. If a list has more than one personalization applied to it before the upgrade, the first one encountered is applied to the whole list and the others are removed. In an upgrade situation, a list personalization is applied only after the first time the content item on which it appears is edited and saved. This applies to the frontend as well. This is done in order to make personalizations work consistently.
  • Logging has been added for several authentication and other sensitive events (logging in, changing a user's persmissions, etc.). To store this logging in a separate logging file on the server, some additions must be added to the logging.properties file. Be sure to shut down the server before applying these changes.

    The first line defines the so-called logging handlers that are used. This should be extended with a new handler. The new line must be:

    handlers=1catalina.org.apache.juli.FileHandler,2localhost.org.apache.juli.FileHandler,3manager.org.apache.juli.FileHandler,4host-manager.org.apache.juli.FileHandler, 5gxsecuritylogging.org.apache.juli.FileHandler,java.util.logging.ConsoleHandler

    where 5gxsecuritylogging.org.apache.juli.FileHandler is the new handler. Do not add the handler to the line ".handlers". Note that all sensitive events are logged at the INFO level.

    Add the definition for the new handler at the bottom of the file as follows:

    5gxsecuritylogging.org.apache.juli.FileHandler.level=INFO5gxsecuritylogging.org.apache.juli.FileHandler.directory=${catalina.base}/logs 5gxsecuritylogging.org.apache.juli.FileHandler.prefix=audit.nl.gx.webmanager.services.securitylogging.level=INFO nl.gx.webmanager.services.securitylogging.handlers=5gxsecuritylogging.org.apache.juli.FileHandler

    After these changes are applied, restart the server. A clean log file is initialized in the Tomcat "logs" directory, prefixed with "audit".  For other application servers, please consult their documentation for information on how to configure a separate log file.

  • A problem has been fixed that caused added database references to be incorrectly stored in XC. The fix will only ensure that future references are correct, not existing ones. If you refer to database items within media items, you must manually remove the <webmanager-root>/work/contentindex directory after the upgrade and allow it to be regenerated (selecting contentindex_queue_empty_reindex in the Setup Tool is not sufficient).




 

XperienCentral 10.17.0


  • Apache Tomcat version 8.5.14 has been integrated. For Apache Tomcat the server.xml has changed:

    <Resource name="jdbc/WebManagerDb" auth="Container" type="javax.sql.DataSource" username="${webmanager.externaldb.dbuser}" password="${webmanager.externaldb.dbpassword}" driverClassName="${webmanager.externaldb.dbdriver}" url="${webmanager.externaldb.dburl}" maxTotal="100" maxIdle="10" maxWait="10000" testWhileIdle="true" timeBetweenEvictionRunsMillis="900000" removeAbandonedOnBorrow="false" removeAbandonedOnMaintenance="false"  removeAbandonedTimeout="30" logAbandoned="true" validationQuery="${webmanager.externaldb.validationquery}"/>
    <Resource name="jdbc/WebManagerDb" auth="Container" type="javax.sql.DataSource" username="${webmanager.externaldb.dbuser}" password="${webmanager.externaldb.dbpassword}" driverClassName="${webmanager.externaldb.dbdriver}" url="${webmanager.externaldb.dburl}" maxTotal="100" maxIdle="10" maxWait="10000" testWhileIdle="true" timeBetweenEvictionRunsMillis="900000" removeAbandonedOnBorrow="false" removeAbandonedOnMaintenance="false"  removeAbandonedTimeout="30" logAbandoned="true" validationQuery="${webmanager.externaldb.validationquery}"/>

    The way abandoned connection management should be handled by Tomcat has changed.

  • For Apache Tomcat the context.xml has changed: CookieProcessor is set to org.apache.tomcat.util.http.LegacyCookieProcessor.
  • Startup configuration for Apache Tomcat has changed: JVM configuration settings (described in settings.xml) formerly added to catalina.bat/catalina.sh are now located in setenv.bat/setenv.sh. The settings themselves are split into two categories (instead of one): catalinaopts and javaopts.
  • The manner in which horizontal page text is aligned in the Inline Editor has changed. In XperienCentral versions older than 10.17.0, the align attribute was used inside <p> tags,<h1> through <h6>, and block-quote elements. Horizontal page text is now rendered using an aligncenter or alignright parameter in a CSS horizontal text-alignment class element. The CSS of the customer website must now include these class definitions. See stylesheet.css in the webmanager-cestyle-wcb for an example.
  • The Image Element presentation imageElement.xml has three new properties: enableResize, resizeHeight and resizeWidth.




 

XperienCentral 10.16.1

Adjust presentations where the <img> tag width and height attributes are set in order to support SVG-images without explicit dimensions. See for example imageElement.jspf (line 36).




 

XperienCentral 10.16.0

  • The way page labels and media terms are indexed has changed in order to improve the label facet in Advanced Search. Before these improvements fully take effect, all pages and media items need to be re-indexed. This only affects the backend search.
  • Support for images has been added to the RSS feed presentation (rssFeedElement.jspf).




 

XperienCentral 10.15.1

The clientside SidebarContentItemWidget.contentItemChange event is now automatically triggered on content changes using contentManagement.updateContentItemVersion. Custom code using other triggers for updating the information being shown or throwing events to update other sidebar widgets should be adjusted or removed in order to avoid double updates.




 

XperienCentral 10.15.0

In order to make sure the wm-hostname tag works on WebSphere, a change in the default xslStyleSheet.jspf has been made. Also, a default hostname is included in the form.tag. If these files are overruled by a custom presentation, please update accordingly.




 

XperienCentral 10.14.0

  • Please add the file xslStyleSheetForm.xml to the presentation of your project and include it by adding the following line to xslStyleSheet.jspf, according to the example presentation:

    <wm:render presentationName="xslStyleSheetForm" />

  • In order to render Interactive Forms in a cross-domain manner, a number of files have been changed. If the default contentpartEmbedded.jspf, form.tag, formStep.jspf, or formvalidationbindings.js are overruled in a custom presentation, please synchronize these files. Also, a CORSFilter for Cross-Origin Resource Sharing has been added to the web.xml. If you are using a modified web.xml file, please update accordingly.




 

XperienCentral 10.13.0

  • Interactive Forms now supports RBAC authorization for all handlers, routers, validators, form fragments and custom extension tabs. For product components, authorization for permission groups has been set. Please review any roles not based on permission groups in order to assign the correct permissions. Custom components will be accessible to all users if no authorization is assigned. RBAC authorization can be added to custom form components in the Activator.
  • The HTML structure of lists has changed in order to comply with the HTML5 specification. Each sub-list is now nested in a list item tag <li> instead of being a direct child of a list tag <ul> or <ol>. Any CSS rules that rely on the latter structure will have to be updated in order to produce the same visual result.




 

XperienCentral 10.12.1

  • Users can now be granted rights to access XperienCentral in specific ways. Whereas a user could always use password-based login and/or container-based (if enabled), each login method now has to be enabled for each user. By default, all users will be allowed all relevant access methods. We advise you to review the list of ways that each user may log in after the upgrade and adjust them accordingly.
  • String interpolation in Interactive Forms has changed slightly. In previous versions of XperienCentral, a JavaScript syntax error would cause the original string value to be returned.  This error is now logged and other expressions (if any) will be evaluated. This may result in partially interpolated strings being returned instead of the input string.
  • When upgrading to XperienCentral 10.12.1 or newer, the index directories contentindex and searchengine are removed automatically. However, in a clustered environment, this is only done on the master node. To upgrade successfully, the aforementioned index directories should be removed manually from all the slave nodes.
  • JBoss/Wildfly application server users should deactivate the "as-default" profile and activate the Maven "as-jboss" profile by uncommenting the profiles in the profiles section in the settings.xml or by passing the profiles as Maven profile using the Maven command line -P <profiles> option.




 

XperienCentral 10.12.0

  • SOLR has been upgraded to version 5.5.1, therefore it is necessary to fully rebuild the backend and frontend search indices. The former is built automatically after the upgrade. Please note that this may take some time to complete and could cause high server load. The frontend search index rebuild should be triggered manually via the Setup Tool.
  • The files conf/core0/conf/schema.xml and conf/core0/conf/solrconfig.xml have been updated. If you have made custom changes to one or both of these files, it is necessary to merge the new files with the custom ones. If no custom changes have been made, the new versions of the files can simply be used instead of the old ones.
  • The secure form signer used to protect forms against tampering has been changed. All dumped pages which contain interactive forms or advanced forms will need to be regenerated or flushed from the cache. Any old pre-upgrade forms submitted by browsers to the website after the upgrade will be rejected by the secure forms checking filter.
  • Form sessions can now be completed if a different form version becomes active. If the default showFormElementSsi.jspf, formFragmentOverview.jspf and form.tag are overruled in a custom presentation, please synchronize these files.




 

XperienCentral 10.11.0

  • An extra input field has been added to the IAF csfw fields. If a custom form.tag is used in the presentation, please add the following hidden input:

    <input type="hidden" name="csfw_requestedChannel" value="${wmfn:escapeToHtml(presentationcontext.channel)}"/>

  • The E-Cards, Poll and Who-is-Who functionalities have been removed and all their persisted content will be automatically removed during the upgrade process.
  • The system presentation JSP elementAnchor.jspf with scope ElementAnchor was changed and should be copied to/synchronized with the project specific presentation.
  • In Interactive Forms, an error on the form scope previously did not stop execution of any components in a conditional block. If your project depends on this behavior, you will have to change the relevant conditions in Interactive Forms.
  • One line of text used by the Search element is garbled when shown on a Dutch page. To correct this by hand, log into XperienCentral, navigate to the Configuration menu at the top of the page, select Language Labels and ensure that "Dutch" is selected, Open the "wm_language_search" part of the dialog and update the "all_pages" entry to "Alle categorieën".




 

XperienCentral 10.10.1

Links are now filtered by scheme. Schemes that are not allowed result in removal of the illegal link. Allowed link schemes can be configured using the Setup Tool, property valid_link_schemes in the website settings. The following schemes are accepted by default: http, https, mailto. In addition to these we accept relative URLs and anchors by default. We advise you to customize which schemes are accepted such that only the bare minimum is accepted.



 

XperienCentral 10.10.0

  • Because of security reasons it is recommended to disable the following permissions for the Main Editor role when being used: "Maintain design templates", "Maintain application servers", "Maintain application proxy servers", "Maintain application proxy servers", "Maintain application replacements", "Maintain Layouts", "Maintain XSLT expressions", "Maintain language labels", "Maintain users", "Maintain roles" and "Import users".
  • For security reasons, it is no longer permitted to use the Interactive Forms "Copy File Handler" to copy files to any arbitrary location. The only directories (and its subdirectories) to which the copy file handler is allowed to copy files are those specified in the configuration (the property "website_settings.file_upload_valid_directories" in the Setup Tool). By default, no directories are specified, which means that by default attempting to copy files will fail. When upgrading, please configure the allowed directories in the Setup Tool. It is recommended that you only use directories that are not part of GX Webmanager 10 XperienCentral itself. The new setting should also be used in custom code where files can be uploaded to a user-defined location.
  • And also the following functionalities have been removed because of security considerations: Design Templates (panel), Design Template Folders (tab).  Similar functionality is provided by the System Utilities - File Browser which should be used instead.
  • The configuration of Maintainable Folders has been moved to the Setup Tool.
  • Error messages from Spring Framework Validators are now escaped. This means HTML markup can not be used in these error message any more. Typically you need to remove styling like <font color="red"> from your message files. CSS styling is possible using the "span.error" selector.
  • Labels for the wmedit:radioButton, wmedit:select and wmedit:selectItem JSPtags will now be escaped to HTML by default. In case HTML is used in such labels, this needs to be replaced.
  • More robust HTML escaping JSP functions are introduced as a replacement for fn:escapeXml. These are wmfn:escapeToHTML for generic use in HTML and wmfn:escapeToHTMLAttribute for escaping HTML attributes. Unlike fn:escapeXml, these functions do not escape L CODE tags that are used for links and personalization tags. It is recommended that you replace all instances of fn:escapeXml in frontend presentations with these functions. In specific cases this is required for L CODE tags and personalization to work correctly.



 

XperienCentral 10.9.0

  • The GetText servlet has been deleted. If you are using a modified web.xml file then be sure to remove any references to the GetText servlet.
  • From now on the 3.0 servlet API is supported only. To enable this the dependencies to the related artifacts need to be changed in custom poms that refer to these artifacts: javax.servlet:servlet-api and javax.servlet:jsp-api.
  • The web.xml deployment descriptor header should be changed to the 3.0 format:

    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0">          
    </web-app>  
  • Maven 3.X does not support file URLs like "file:./maven-repository" in the settings.xml anymore, therefore the "localRepository" setting must be a real file path from now on and this should be updated in your custom Maven settings if needed. An absolute path is preferred for referring to the same repository (for example in subprojects) because the settings are relative to the current project directory (see https://maven.apache.org/plugin-developers/common-bugs.html#Resolving_Relative_Paths).

  • Maven 3.X discourages using expressions for the groupId, artifactId and version settings in POMs and other descriptors. These have been replaced by constant values and, as a result, the webmanager.project.groupId, webmanager.project.artifactId and webmanager.project.version settings  from the settings.xml no longer serve a purpose and thus have been removed from the settings.xml. As a result of this it may be necessary to update the values of your project specific webmanager.staticbasedir, webmanager.backendbasedir and webmanager.cleansitelocation settings.

  • Because the Maven plugin for OSGI bundles has been replaced in Maven 3.X, the following adjustments are needed in the pom.xml of custom plugins.

    PACKAGING:
        Maven 2:
          <project ...>
            <packaging>osgi-bundle</packaging>
            ...

        Replacement in Maven 3:
          <project ...>
            <packaging>bundle</packaging>
            ...

      MAVEN OSGI PLUGIN: Note especially that the <explicitImportPackage> tag is not needed any more.
      Previously this tag was used to make exported local packages available within the plugin code.

    Maven 2:
          <plugin>
            <groupId>org.apache.felix.plugins</groupId>
            <artifactId>maven-osgi-plugin</artifactId>
            <configuration>
              <osgiManifest>
                <bundleActivator>...</bundleActivator>
                <exportPackage>...</exportPackage>

                <explicitImportPackage>...</explicitImportPackage>
              </osgiManifest>
            <configuration>
            ...

        Replacement in Maven 3:
          <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <configuration>
              <instructions>
                <Bundle-Activator>...</Bundle-Activator>
                <Export-Package>...</Export-Package>

                <!-- REMOVED! explicitImportPackage -->
              </instructions>
            <configuration>
            ...  

  • If a custom parent pom.xml is used in place of the one delivered in the XperienCentral SDK ZIP (nl.gx.webmanager.wcbs:webmanager-wcbs), then you need to make the following changes in the parent pom.xml. Some of these tags can also be used directly in the pom.xml of a plugin. In that case, the same "translation" should be used there.

      Maven 2:
        <plugin>
          <groupId>org.apache.felix.plugins</groupId>
          <artifactId>maven-osgi-plugin</artifactId>
          <version>...</version>
          <configuration>
            <manifestFile>...</manifestFile>
            <osgiManifest>
              <bundleVendor>...</bundleVendor>
              <bundleSymbolicName>...</bundleSymbolicName>
              <bundleName>...</bundleName>
              <bundleDescription>...</bundleDescription>
              <bundleSource>...</bundleSource>
              <bundleDate>...</bundleDate>

              <bundleManifestVersion>${webmanager.manifestversion}</bundleManifestVersion>
            </osgiManifest>
          <configuration>
          ...

      Replacement in Maven 3:
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>2.5.3</version>
          <configuration>
            <archive>
              <manifestFile>...</manifestFile>
            </archive>
            <instructions>
              <Embed-Dependency>*;scope=compile</Embed-Dependency>  <!-- NEW! -->
              <Embed-Transitive>true</Embed-Transitive>  <!-- NEW! -->
              <Export-Package/>  <!-- NEW! -->

              <Bundle-Vendor>...</Bundle-Vendor>
              <Bundle-SymbolicName>...</Bundle-SymbolicName>
              <Bundle-Name>...</Bundle-Name>
              <Bundle-Description>...</Bundle-Description>
              <Bundle-Source>...</Bundle-Source>
              <Bundle-Date>...</Bundle-Date>

              <!-- REMOVED: bundleManifestVersion -->
            </instructions>
          <configuration>
          ...

  • The maven-bundle-plugin adds version information to the Manifest file for its dependencies. This information is checked at runtime in order to ensure that an accepted version of the referred plugin is installed on the system, otherwise the plugin will fail to start. The default runtime version requirements are sensible, but when dealing with 3rd party components you might need to overrule these default requirements. This can be done as follows to allow v1.x.x - v5.x.x:    <Import-Package>com.gxwebmanager.tests.testservice.*;version="[1,6)",*</Import-Package>.




 

XperienCentral 10.7.1

XperienCentral 10.7.1 provides an oEmbed service to embed XC content in external oEmbed consumers. The presentation of this content is provided by some XC presentation files. An example implementation can be found in the wmpcommunityeditionstyle WCB (provided in the edition-bundles directory of the release) that contains presentations with the following names:  "WM page embed", "WM page embed ssi", "WM contentpart embedded" that are used to render the oEmbed presentation. "WM content" and "WM databasepage" are invoked but not modified.



 

XperienCentral 10.7.0

  • The manner in which the active version of a form or form section is determined has been changed. It no longer makes use of a predefined set of states, but uses the XperienCentral Workflow functionality instead. As a result of this the getActiveVersion and setActiveVersion methods on the Form and FormSection class have been deprecated. The getActiveVersion method now invokes the newly introduced getCurrent method to determine which version is returned as the  "active" version. The setActiveVersion no longer executes any logic at all.
  • The behavior of the Session#getWrapper method has been altered when retrieving Content Items (instances of MediaItem). Previously this method would return an object even if none could be found for the requested identifier while now it will return null in this situation.
  • 10.7.0 introduces support for Workflow in Interactive Forms. In order for this to work properly, WebManager sets up a new Workflow Repository Model called "Interactive Forms Workflow". You may want to review whether the permissions assigned to each activity suit your needs. You can find Workflow Repository Model configuration in the "Workflow" menu. The following permissions have been introduced in WebManager 10.7.0: Copy forms, create forms, create versions of forms, delete forms and edit forms.




 

XperienCentral 10.5.0

The model in order to store personalizations has been refactored. As a result, export files created using the content export functionality in the setup tool of older XperienCentral versions containing personalizations or references to personalizations cannot be imported on XperienCentral 10.5.0 and vice versa.



 

XperienCentral 10.4.1

  • In 10.4.1 the logic which adds anchors and back to top links to elements has been moved from the content.jspf, which loops over and renders all elements, to two separate presentation JSPs, one with scope ElementAnchor, which prepends the anchors to an element if applicable and one with scope ElementBackToTop, which adds the back to top links to an element if applicable.
  •  All element related logic should be removed from your project specific presentation JSPs which currently loop over and render the elements, like the content.jspf in the webmanager-cestyle-wcb and add two new presentation JSPs based on the elementAnchor.jspf and elementBackToTop.jspf in the webmanager-cestyle-wcb.



 

XperienCentral 10.4.0


  • In 10.4.0 all default database connections are merged to one database connection named WebManagerDb which by default is accessed through JNDI lookups. Therefore it is necessary that before deploying  the application the WebManagerDb datasource is configured to be available on the application server. For Apache Tomcat edit the server.xml and add this resource to the context of the backend webapp:

    Resource name="jdbc/WebManagerDb" auth="Container" type="javax.sql.DataSource" username="${webmanager.externaldb.dbuser}" password="${webmanager.externaldb.dbpassword}"        driverClassName="${webmanager.externaldb.dbdriver}" url="${webmanager.externaldb.dburl}" maxActive="100" maxIdle="10" maxWait="10000" testWhileIdle="true"         timeBetweenEvictionRunsMillis="900000" removeAbandoned="true" removeAbandonedTimeout="30" logAbandoned="true" validationQuery="${webmanager.externaldb.validationquery}"/>>


    Note that you still have to fill in the correct values for the username, password, driverClassName, URL and validationQuery attributes. Examples of these can be found in the settings.xml.

    For Jboss edit the standalone.xml and add this datasource to datasources subsystem:


    <datasource jndi-name="java:jboss/jdbc/WebManagerDb" pool-name="WebManagerDb" enabled="true" use-java-context="true">
       <connection-url>${webmanager.externaldb.dburl}</connection-url>
          <driver>${driverName}</driver>
         <security>
             <user-name>${webmanager.externaldb.dbuser}</user-name>
             <password>${webmanager.externaldb.dbpassword}</password>
         </security>
    </datasource>


    Note that you still have to fill in the correct values for the connection-url, driver, user-name and password. Examples for the connection-url, driver and user-name can be found in the settings.xml. The driver value has to correspond with the name attribute of the driver you wish to use as defined in the drivers tag in the datasources subsystem. Furthermore, the driver for your database must be copied to the lib directory of your Tomcat or JBoss installation. Supported drivers can be found in the ext-directory in the root of the SDK distribution.

    It is advised to generate a new repository.xml using the maven configure-jcr-repository profile to make sure the jcr also accesses the database using JNDI and uses the WebManagerDb database connection. When you place this newly generated repository.xml you need to completely rebuild the JCR-index and thus stop the application server, remove the current repository directory and then start the application server again. If your installation contains custom database connections, you have to manually configure those to make use of JNDI, which includes adding the datasource to the application server configuration and updating the database connection set in the [Database configuration] tab of the setup tool.

    If you don't want to use JNDI, you have to fill in the old settings in the dbcbmanager sets in the dpcbmanager_defaults.xml which are generated in the WEB-INF folder of the webmanager-backend-webapp based on the settings.xml before executing the upgrade. You cannot generate non-JNDI dbcpmanager_defaults.xml using a maven command you always have to do this manually.

  • The secure form signer used to protect forms against tampering has been changed. All dumped pages which contain interactive forms or advanced forms will need to be regenerated or flushed from the cache. Any old pre-upgrade forms submitted by browsers to the website after the upgrade will be rejected by the secure forms checking filter.

  • PageVersionEvent.getTargetPageVersion() is deprecated; use .getPageVersion() instead. This change is relevant only for event handlers that use the deprecated method on a COPY event.

  • PageVersionEvent.getEntity() no longer returns the original page version, it now returns the target page version. The same holds for .getPageVersion(). This change is relevant only for event handlers that use one of these methods on a COPY event.

  • ElementEvent.getElement() now returns the target element, instead of the old element. This change is relevant only for event handlers that use this method on a COPY event.

  • ElementEvent.getOriginalElement() now returns the original element. This change is relevant only for handlers that use this method on a COPY event.

  • Subscription to interface scopes is possible; this might cause issues if a handler is subscribed to both Foo.class and FooParent.class.

  • The PageManagementService no longer publishes UPDATE events, WCBs that rely on such an event being published after calling either .addLeadText(PageVersion), .addRedirect(PageVersion), or.reorderElements(PageVersion, Element[]) should now publish UPDATE events themselves.

  • HistoryEvent.TOUCH is deprecated (and no longer published), please replace this with EntityEvent.UPDATE (both PRE and POST).

  • Saving page metadata no longer publishes an MediaItemVersionEvent, but a PageVersionEvent instead.

  • Apache Commons FileUpload has been updated to v1.3.1 (from 1.2.2), any implementation of FileItem now should implement both setHeaders(FileUploadHeaders) and getHeaders(). See http://commons.apache.org/proper/commons-fileupload/changes-report.html for other changes.




 

XperienCentral 10.2.x or older to 10.3.0

  • In 10.2.1 or higher the XML parser factories of JBoss are boot delegated. Therefore, bundles that use XML parsing must import involved packages from javax.xml.* of the system bundle. Bundles cannot include a jar that provides javax.xml interfaces, or a ClassCastException occurs in combination with JBoss. This situation differs from 9.20.x as javax.xml.* packages were boot delegated. This breaks modularity of these packages leading to the problem the other way around: bundles cannot provide an implementation of a javax.xml.* package.
  • In 10.3.0 or higher the hidden fields with name formid and clientsideRouting for Interactive Forms no longer have the id attributes with respective values formid and clientsiteRouting. Custom javascript code which depends on these iID attributes has to be updated.
  • In 10.3.0 or higher, the divs with id attributes starting with "info_" and "errors_" have been extended with an identifier for the form to which they belong. Custom javascript code which depends on these id attributes has to be updated.
  • In 10.3.0 or higher add the "Create versions of content items" permission explicitly to the "Create object" activity of all workflow repository models being used, in order to be able to create content versions of content repository related types.




 

GX WebManager 9.18.x, 9.19.x and 9.20.x to XperienCentral 10.x.x


  • The javax.servlet:servlet artifact name has been changed to javax.servlet:servlet-api. This may require changes to dependencies in WCB pom.xml files. However, most (if not all) WCBs "inherit" this setting from XperienCentral and won't require changes. Note: From 10.9.0 the 3.0 servlet API is supported, so see below for 10.9.0 related changes to  support this version of the servlet API.  
  • Create pages as a display on page for page sections and the image, download, flash and multimedia and configure these special pages at "Website configuration" -> "Special pages".
  • Choose a page part that will display page sections that do not yet have a page section label assigned and configure it as such by checking the "Show page sections without label" checkbox at "Design templates" -> "Page parts". Make sure this page part is visible on the page section display on page configured in the previous step. Also see Online Help in XperienCentral.
  • Rebuild the search index
  • Update customized wmasolrsearch configuration
  • Presentation: Update xslStyleSheet.jspf in the "website" folder of your custom presentation WCB to check for "mode=incontext" instead of "mode=preview". This is needed for Read Access to work on the backend.
  • Tweak presentations to work seamlessly with Inline Editing. For more on this, see section 3 "Preparing  presentation WCBs for use with the Inline Editor" below.
  • From GX WebManager 10.1 XperienCentral, Interactive Forms has become integral part of the platform. As a result, the Interactive Forms bundles are not upgraded automatically, and therefore, all Interactive Forms bundles with the version 2.x.y need to be stopped and uninstalled manually.


Optional Changes

  • It is suggested that you disable adds in the incontext mode of XperienCentral.
  • Remove or update maximum platform version in pom.xml. Note that as of GX WebManager 10 XperienCentral this property is no longer honored as the GX WebManager 10 XperienCentral API will remain backwards compatible with GX WebManager 9.
  • If a WCB uses dependency manager API directly it should switch to the new dependency manager 3 API
  • Updating icons for Custom Media Items may be preferred; existing icons may typically not fit that well in the new UI. Deleting them and falling back to the default may be a valid solution in many cases. New sizes are 20x20 and 180x180 with Sprite support. Icons for Elements will probably need to be updated as well.
  • Make sure empty content items have a non-zero size (in mode=incontext) in order to be able to doubleclick on it in the Inline Editor. The same goes for elements.
  • The menu has been reordered and target menu settings in WCB component definitions are now ignored. In order to place a menu item in a specific category, use PanelComponentDefinitionImpl.setMenuCategory() to set the category to one of the constants defined in PanelComponentDefinition.



GX WebManager Versions older than 9.18.0 to XperienCentral 10.x.x

When upgrading from a version older than GX WebManager 9.18.0, it is strongly advised to upgrade to GX WebManager 9.20.x before performing an upgrade to GX WebManager 10.x XperienCentral.









  • No labels