Release Notes for XWiki 6.4

Version 15.1 by Vincent Massol on 2015/01/22
Warning: For security reasons, the document is displayed in restricted mode as it is not the current version. There may be differences and errors due to this.

This is the release notes for XWiki Commons, XWiki Rendering, XWiki Platform and XWiki Enterprise. They share the same release notes as they are released together and have the same version.

The 6.4 release is the last major release of the 6.x development Cycle and as such was mainly dedicated to improvements and bugfixes on things introduced during 6.X. 

This version introduces some developer oriented improvements: allow wiki based skins to overwrite macro.vm template, allow filesystem skins indicating explicitly the skin they are inheriting from, allow any component to be injected with its ComponentDescriptor, Panels and UI extensions are now executed with the right of their author so among other things they can use APIs requiring Programming rights.

It also brings UI improvements in the Menu application, a new Mail application (and Mail-related improvements, such as the ability to send massive number of emails) and lots of Flamingo skin improvements (Mobile-friendliness to mention one), while offering developers the ability to write LESS in Skin Extensions, and a cool icon picker.

Last but not least, this version provides the ability to rate Extensions inside the Extension Repository and visualise them inside the Extension Manager. 

New and Noteworthy (since XWiki 6.3)

Full list of issues fixed and Dashboard for 6.4.

Menu Application

Taking advantage of the ability to have LESS inside our StyleSheetExtensions, we improved the Menu Application, on Flamingo based skins, making it responsive and also adapting its styling according to the active Flamingo Theme.
Colibri based skins preserve the initial styling. 

Flamingo Skin

We partially restored the behaviour of the top level menu from version 6.2, with some improvements:

  • For tablet and desktop:
    • the menu label is a link used for navigation
    • the toggle (arrow / caret) is used for opening the drop down menu, but should be better separated from the label
  • On phones the behaviour remains the same: taping on the label opens the menu

Default: charcoal-default.png
Hover Link: charcoal-hover-link.png
Hover Toggle: charcoal-hover-toggle.png
Open: charcoal-open.png

The history table, under each page, is now responsive to the screen size:

responsive-history.png

Some improvements have been made on the responsive tables (including the livetables) and we have fixed the broken livetables for mobiles on some places:

livetable-rights.png mobile-users.png mobile-groups.png

Rating Features

The Contrib ratings project has been moved to platform. Java APIs have been broken by the package renaming but script APIs have been kept retro-compatible and the UI is mostly the same. See Ratings Application.

It's now possible to rate extensions in Extension Repository and any repository handler can expose extension rating that are displayed (read only for now) in Extension Manager.

ratingem.png ratinger.png

Wiki Configuration

A new "Configuration > Wiki" section is added in Administration where you can configure the current wiki, whether it is the main wiki or a subwiki.

wikiDescriptorEditingAdministration-cropped.png

For more information, see the documentation.

New Parameters for Document Tree Macro

We added 3 new parameters to the Document Tree Macro:

  • filterByClass: show only the documents that have an object of the specified type. The value of this parameter is the full name of an XWiki document that holds a class definition. For example, 'Blog.CategoryClass' can be used to show only the documents that represent blog categories.
  • openTo: the id of the node to open the tree to. All the ancestors of the specified node, up to the root of the tree, will be opened also.
  • showOnlyViewable: show only the wiki, space and document nodes for which the current user has view right. If this is set to false then the wiki, space and document nodes that are not viewable by the current user are listed in the tree using their names. The user won't be able to see their content by following their links though (the user will just be aware of their existence).

Mail Feature

  • The mail feature has a new Category in the Admin UI (see the Mail Application for details).

    emailcategory.png

  • There's now the possibility to configure default BCC addresses which will be added by default to all emails sent using the Mail Sender API.

    emailsend.png

  • The Mail Sender API now checks for permission before sending emails, when using it from scripts (i.e. when using the Mail Sender Script Service). There are currently 2 possible strategies that you configure in your xwiki.properties file
    #-# [Since 6.4M2]
    #-# Defines which authorization checks are done when sending mails using the Mail Sender Script Service.
    #-# Example of valid values:
    #-# - "programmingrights": the current document must have Programming Rights
    #-# - "alwaysallow": no check is performed. This is useful when running XWiki in a secure environment where we
    #-#   want to allow all users to be able to send emails through the Script Service.
    #-# The default is:
    # mail.sender.scriptServiceCheckerHint = programmingrights
  • The Mail Sender API has been modified to support sending a large number of mails at once. In addition the Mail Admin UI has been improved to display the statuses of mails (when they're sent by XWiki features specifying that the mail statuses should be persisted).

    emailcategory.png

    emailstatus.png

  • You can now specify the delay to wait between each mail being sent, in milliseconds. This is done to support mail throttling and not be considered a spammer by mail servers. For example if you wish to wait 10 seconds (if not specified the default is 8 seconds, which is 450 mails per hour), set the following in your xwiki.properties:
    mail.sender.sendWaitTime = 10000

    The configuration parameter can also be changed from the Mail Admin UI:

    sendmailwait.png

  • We now save both an error summary and a full error description when a mail fails to be sent when using the Database Mail Listener. This allows to see the full stack trace of the problem to more easily debug it.

    sendmailerror.png

  • The Mail Type is now displayed in the Mail Sender Status Admin UI:

    mailtype.png

  • The MailResult.isSent() API has been renamed to MailResult.isProcessed() to avoid thinking that it'll return true if all mails have been sent successfully. What it does is simply return true when all mails have been processed, whether they've been sent successfully or not.
  • A new scripting API has been added to set the mail type:
    $message.setType("Some type")
  • In the Mail Sender Status Admin UI we now only display mails sent by the current wiki unless we're on the main wiki.
  • The Mail Application doesn't require Programming Rights for installation anymore.
  • Account Validation email results are now saved and visible in the Mail Application.
  • Some new Mail Sender Storage script services have been added: ability to delete mail statuses for a single mail and for a whole batch, and ability to load mail statuses with criteria.
  • When messages are sent with the API they are now persisted locally before they are effectively sent, one by one. This means that even if XWiki crashes when mails are being sent, their statuses will be correctly displayed in the Mail Sender Status Admin UI and can be resent.
  • The Java API has been modified to use Strings in all places where it was previously using a UUID, in order to allow for change in unique id generation in the future.
  • The wiki is not displayed in the Mail Sender Status Admin UI

    mailwiki.png

Wikis

A "Wikis" category has been created in the administration, where the configuration have been moved and split in different sections:

Left menuRight menu
AdminWikis.pngAdminWikis2.png

Extension Manager incompatible exceptions

When trying to install an incompatible extension (i.e. you are running XWiki 6.2.4 and want to install FAQ Application 6.3), you are now displayed a proper error instead of having to read through the install log to understand what went wrong, and you are instructed to use the Description > Stable Versions section to manually (for now) find a compatible version of the extension that you want to install.

incompatibleExtensionError.png

Solr server setup package

Everything needed to setup an XWiki index in a remote Solr server is now packaged in a standalone project (xwiki-platform-search-solr-server-data). A Debian package (xwiki-solr-data) has also been provided to make easier to keep it up to date.

Miscellaneous

  • It's now possible to send Registration emails in HTML (by default they're sent in plain text). This is achieved by fully supporting any MIME content in the "Validation Email Content" and "Confirmation Email Content" sections of the Registration Administration UI. For example for the "Validation Email Content" field, you could use the following template to send HTML emails:
    #set ($wikiname = $request.serverName)
    #set ($host = ${request.getRequestURL()})
    #set ($host = ${host.substring(0, ${host.indexOf('/', ${mathtool.add(${host.indexOf('//')}, 2)})})})
    Subject: Validate your account on ${wikiname}
    Content-type: text/html; charset=iso-8859-1

    <p>Hello <b>${xwiki.getUserName("XWiki.$xwikiname", false)}</b>,</p>
    <p>This email address was used to register a new account on ${wikiname}. If you did not make the request, please ignore this message.</p>
    <p>In order to activate your account, please follow this link:
    ${host}${xwiki.getURL('XWiki.AccountValidation', 'view', "validkey=${validkey}&xwikiname=${xwikiname}")}</p>
  • The selected tree node is now highlighted even when links are enabled:

    highlightSelectedTreeNode.png

  • A list of icons supported by XWiki have been created, with mapping for Silk and Font Awesome. Which means that we now propose a list of icons that are both present in Silk and Font Awesome.
  • The list of columns in the UserDirectory customization screen is now sorted alphabetically
  • The accuracy of the attachment content type detection has been improved. If the file name extension is unknown then we attempt to detect the content type from the first bytes of the file content. You can check this by attaching a text file without the 'txt' file name extension.
  • Displaying the 'Stable versions' label in an extension's description in Extension Manager before and after the list of versions is retrieved.
  • A click to the Document Index does not lead to an other space anymore.
  • Tag Cloud Macro has now a new parameter (spaces) to display a tag cloud from multiple spaces.

See the full list of JIRA issues fixed in this release.

For Developers

Icon Picker

An icon picker has been created to help users selecting an image in the list of supported icons.

icon-picker.png

This picker is already used in Application Within Minutes for the application's icon selection.

Skin Extensions

Now you can use LESS in your Skin Extensions!. You just need to set the new property "Content Type" to LESS inside your Skin Extension object:

contentTypeLESS.png.

Admin ConfigurableClass

The ConfigurableClass mechanism has been improved to be able to contribute new categories in the Admin UI. For example the "Email" Category in the following screenshot is contributed through a ConfigurableClass:

emailcategory.png

It was configured using:

emailconfigurableclass.png

Velocity changes

Remove a Velocity Engine from the cache

org.xwiki.velocity.VelocityFactory now provide an API to remove a cached Velocity Engine.

Overriding Velocimacros in wiki-based skins

It's now possible to override the macros.vm template in a wiki based skin (object property and attachment). Any modification to this template is also taken into account (the Velocity engine is recreated when the template is modified).

Cleanup unprotected namespaces

VelocityEngine automatically get rid of the passed namespace at the end of execution unless it's protected.

In practice in means that the following:

engine.evaluate(new VelocityContext(), new StringWriter(), "namespace", "#macro(mymacro)toto#end")

Writer out = new StringWriter();
engine.evaluate(new VelocityContext(), out, "namespace", "#mymacro()")

System.out.println(out.toString())

will now print

#mymacro()

To get

toto

you need the following

engine.startedUsingMacroNamespace("namespace")

try {
  engine.evaluate(new VelocityContext(), new StringWriter(), "namespace", "#macro(mymacro)toto#end")

  Writer out = new StringWriter();
  engine.evaluate(new VelocityContext(), out, "namespace", "#mymacro()")

  System.out.println(out.toString())
} finally {
  engine.stoppedUsingMacroNamespace("namespace")
}

Skins system improvements

Support for a new skin.properties configuration file has been introduced in filesystem skins.

Right now it supports a parent property to indicate another skin to inherit from. If set to an empty value (parent=) the skin will directly inherit from the WAR; if not set at all it will behave as before which means inherit from whatever is configured in xwiki.cfg's xwiki.defaultbaseskin property.

Component Metadata Access

If your Component implementation needs to get access to its component metadata (i.e. its ComponentDescriptor) then it can get it injected automatically. For example:

import org.xwiki.component.descriptor.ComponentDescriptor;
...
@Component
@Singleton
public class MyComponentImpl implements MyComponent
{
   @Inject
   private ComponentDescriptor<MyComponent> descriptor;

   public void doSomething()
   {
        String hint = this.descriptor.getRoleHint();
       ...
   }
}

Panels executed with the rights of their author

It's now possible to write script requiring programming right in panels as long as you have programming right, same as wiki macros.

UI extensions executed with the rights of their author

What you can execute in UI extension used to depend on current document author right, it's now based on the own ui extension author.

Rendering

XWiki Rendering now provide an HTML5 Renderer.

Miscellaneous

  • Added new APIs to get all the icon themes present on the wiki, and all icons that these icon themes contain.
    $services.icon.getIconSetNames()
    $services.icon.getIconNames()
    $services.icon.getIconNames("Font Awesome")
  • A new parameter has been added to the get action and the plain xpage: htmlHeaderAndFooter, which add the HTML headers (<html>,<head>,<body>, etc...) and footers (</body>, </html>, etc...). It could be useful to create light popups that display only the document content without any UI.
  • XWikiAttachment now provide setAuthorReference and getAuthorReference APIs
  • org.xwiki.logging.event.LogEvent now have a getTimestamp() method returning the number of milliseconds elapsed from 1/1/1970 until logging event was created.
  • A SOLR-based implementation of the standard REST search resource has been added
  • The Solr Query parameter xwiki.supportedLocales has a new default value: the list of supported locales configured for the current wiki (where you execute the search).
  • The @Component annotation is no longer inheritable. Thus each component implementation class must now define it and not rely on it being present in some Abstract class.
  • The XWiki build now verifies that all components are correctly listed in META-INF/components.txt files and that the threading model is explicitly defined (i.e. that either @Singleton or @InstantiationStrategy(ComponentInstantiationStrategy.PER_LOOKUP) is used). If not, the build fails. A new @Component annotation parameter has been added for explicitly mentioning that a Component should not be statically registered (these components are usually used in tests). It's used as follows:
    @Component(staticRegistration = false)
  • You can now control in which order the sections added via the ConfigurableClass are displayed in the administration.
  • New APIs to generate unescaped display user name:
    • com.xpn.xwiki.XWiki#getPlainUserName(DocumentReference userReference, XWikiContext context)
    • com.xpn.xwiki.XWiki#getUserName(DocumentReference userReference, String format, boolean link, boolean escapeXML, XWikiContext context)
    • com.xpn.xwiki.api.XWiki#getPlainUserName(DocumentReference userReference)
  • New script oriented APIs to get document author/contentAuthor/creator as DocumentReference
  • It's now possible to provide metadatas to MacroContentParser#parse API
  • It's now possible to know what namespace a ComponentManager instance is associated with by casting it to  org.xwiki.component.manager.NamespacedComponentManager. See Component Module documentation.
  • Added getCurrentWikiDescriptor() method to the wiki API and script service to be consistent with the existing getCurrentWikiId() method
  • The ClassLoader automatically set as Thread ClassLoader is now dynamic meaning that any modification of the context wiki will automatically change the actual Thread ClassLoader. It used to be set to whatever was the wiki in the URL at ExecutionContext init.
  • A new CSS class have been added in Flamingo, to handle responsive tables.
  • The #sheetTitle Velocity macro supports a new use case: displaying the sheet title if the current document doesn't have an object of some type:
    #sheetTitle('The sheet used to display objects of type Space.MyClass', 'Space.MyClass')

Upgrades

The following dependencies have been upgraded:

Translations

The following translations have been updated: 

Tested Browsers & Databases

Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [xwiki:TestReports.ManualTestReportSummaryXWiki64]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.

Here is the list of browsers we support and how they have been tested for this release:

BrowserTest Result
Chrome30.pngGoogle Chrome 39Jira Tickets Marked as Fixed in the Release Notes
Firefox30.pngMozilla Firefox 35Not Tested
IE30.pngInternet Explorer 8Not Tested
IE30.pngInternet Explorer 9Not Tested

Here is the list of databases we support and how they have been tested for this release:

DatabaseTest Result
hypersql.pngHyperSQL 2.3.2Not Tested
mysql.pngMySQL 5.6.17Jira Tickets Marked as Fixed in the Release Notes
oracle.pngOracle 11.2Not Tested
postgresql.pngPostgreSQL 9.4.0Not Tested

For the full list of tests see this page.

Performances tests compared to 5.4.6

Performances improved a bit since 6.3 and we are now generally slightly better than 5.4.6 performances except for the first-loaded page with UI (which incurs the cost of one-time LESS compilation). Lets continue the work in 7.x and improve even more !

Summary

Speed

ActionsDifference
Jetty startupSlightly better
First accessnot existing page without UISame
not existing page with UIx2 (most probably the LESS init)
Reloadnot existing page without UISame
not existing page with UISlightly better
Main.WebHome with UISlightly better
Main.WebHome without UISlightly better
SOLRFull SOLR reindexSame
SOLR sync when index is emptySame
SOLR sync when there is nothing to doSame
RenderingPage with 1000 macros without UI/3

Memory

ActionsDifference
Memory after jetty startupUse a bit more but keep less
Memory after full SOLR indexUse less and keep less

More details on performance comparison on single wiki between 6.4 and 5.4.6.

Known issues

  • Bugs we know about
  • A problem was discovered after the release when trying to start XWiki on Oracle. When you uncomment the Oracle section in the hibernate.cfg.xml file, you'll get a mapping file declared twice, as in:
    <mapping resource="mailsender.hbm.xml"/>
    <mapping resource="mailsender.oracle.hbm.xml"/>

    You'll need to remove first to keep only the following:

    <mapping resource="mailsender.oracle.hbm.xml"/>

Backward Compatibility and Migration Notes

General Notes

When upgrading make sure you compare your xwiki.cfg, xwiki.properties and web.xml files with the newest version since some configuration parameters may have been modified or added. Note that you should add xwiki.store.migration=1 so that XWiki will attempt to automatically migrate your current database to the new schema. Make sure you backup your Database before doing anything.

Issues specific to XWiki 6.4

  • VelocityEngine automatically get rid of the passed namespace at the end of execution unless it's protected. See Velocity section.
  • If upgrading the content in the DistributionWizard, and the upgrade is from XWiki 6.2.x or 6.3, you might get a conflict for the document Blog.BlogSheet. Unless you have done modifications to that document, please keep the new version; otherwise please keep the merged, or if not available, keep your version. For details see issue XWIKI-11450.

API Breakages

The following APIs were modified since XWiki 6.3:

  • Needed to make sure transformations are executed with the right metadata
    org.xwiki.rendering.macro.MacroContentParser: Method 'public org.xwiki.rendering.block.XDOM parse(java.lang.String, org.xwiki.rendering.transformation.MacroTransformationContext, boolean, org.xwiki.rendering.listener.MetaData, boolean)' has been added to an interface
  • It's very unlikely that this class is implemented by anything else and it does not make much sense to not have this method, since this is not really a cache behind it but a Map that keep engines forever it may create a memory leak on a big farm running for a long time
    org.xwiki.velocity.VelocityFactory: Method 'public org.xwiki.velocity.VelocityEngine removeVelocityEngine(java.lang.String)' has been added to an interface
  • This shouldn't be a backward incompatible change since it's a method addition on an Annotation.
    org.xwiki.component.annotation.Component: Method 'public boolean staticRegistration()' has been added to an interface
  • Does not make much sense allowing to register a JMX bean and not to unregister it.
    org.xwiki.management.JMXBeanRegistration: Method 'public void unregisterMBean(java.lang.String)' has been added to an interface
  • Young API, this method needs to be available for consistency with the getMainWikiDescriptor/Id pair of methods
    org.xwiki.wiki.descriptor.WikiDescriptorManager: Method 'public org.xwiki.wiki.descriptor.WikiDescriptor getCurrentWikiDescriptor()' has been added to an interface
  • WYSIWYG's MacroService API was not previously considering a multiwiki environment.
    org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroService: Method 'public org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroDescriptor getMacroDescriptor(java.lang.String, java.lang.String, java.lang.String)' has been added to an interface
    org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroService: Method 'public java.util.List getMacroDescriptors(java.lang.String, java.lang.String)' has been added to an interface
    org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroServiceAsync: Method 'public void getMacroDescriptor(java.lang.String, java.lang.String, java.lang.String, com.google.gwt.user.client.rpc.AsyncCallback)' has been added to an interface
    org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroServiceAsync: Method 'public void getMacroDescriptors(java.lang.String, java.lang.String, com.google.gwt.user.client.rpc.AsyncCallback)' has been added to an interface
  • Young API. Add new methods to the Icon Set Module
    org.xwiki.icon.IconManager: Method 'public java.util.List getIconNames()' has been added to an interface
    org.xwiki.icon.IconManager: Method 'public java.util.List getIconNames(java.lang.String)' has been added to an interface
    org.xwiki.icon.IconSetManager: Method 'public java.util.List getIconSetNames()' has been added to an interface
  • Young API. LESS refactoring.
    org.xwiki.lesscss.LessCompilerScriptService: Method 'public boolean clearCacheFromFileSystemSkin(java.lang.String)' has been removed
    org.xwiki.lesscss.LessCompilerScriptService: Return type of method 'public org.xwiki.lesscss.ColorTheme getColorThemeFromSkinFile(java.lang.String)' has been changed to org.xwiki.lesscss.colortheme.ColorTheme
    org.xwiki.lesscss.LessCompilerScriptService: Return type of method 'public org.xwiki.lesscss.ColorTheme getColorThemeFromSkinFile(java.lang.String, java.lang.String)' has been changed to org.xwiki.lesscss.colortheme.ColorTheme
    org.xwiki.lesscss.ColorTheme: Class org.xwiki.lesscss.ColorTheme removed
    org.xwiki.lesscss.ColorThemeCache: Class org.xwiki.lesscss.ColorThemeCache removed
    org.xwiki.lesscss.LESSCache: Class org.xwiki.lesscss.LESSCache removed
    org.xwiki.lesscss.LESSColorThemeConverter: Class org.xwiki.lesscss.LESSColorThemeConverter removed
    org.xwiki.lesscss.LESSCompiler: Class org.xwiki.lesscss.LESSCompiler removed
    org.xwiki.lesscss.LESSCompilerException: Class org.xwiki.lesscss.LESSCompilerException removed
    org.xwiki.lesscss.LESSSkinFileCache: Class org.xwiki.lesscss.LESSSkinFileCache removed
    org.xwiki.lesscss.LESSSkinFileCompiler: Class org.xwiki.lesscss.LESSSkinFileCompiler removed
  • Young API. Lots of refactoring on the new Mail module
    org.xwiki.mail.MailResultListener: Class org.xwiki.mail.MailResultListener removed
    org.xwiki.mail.MailSender: Method 'public void send(javax.mail.internet.MimeMessage, javax.mail.Session)' has been removed
    org.xwiki.mail.MailSender: Parameter 1 of 'public void sendAsynchronously(javax.mail.internet.MimeMessage, javax.mail.Session, org.xwiki.mail.MailResultListener)' has changed its type to java.lang.Iterable
    org.xwiki.mail.MailSender: Parameter 3 of 'public void sendAsynchronously(javax.mail.internet.MimeMessage, javax.mail.Session, org.xwiki.mail.MailResultListener)' has changed its type to org.xwiki.mail.MailListener
    org.xwiki.mail.MailSender: Return type of method 'public void sendAsynchronously(javax.mail.internet.MimeMessage, javax.mail.Session, org.xwiki.mail.MailResultListener)' has been changed to org.xwiki.mail.MailResult
    org.xwiki.mail.MailSender: Method 'public void waitTillSent(long)' has been removed
    org.xwiki.mail.MailSenderConfiguration: Method 'public java.util.List getBCCAddresses()' has been added to an interface
    org.xwiki.mail.MailSenderConfiguration: Method 'public java.lang.String getScriptServicePermissionCheckerHint()' has been added to an interface
    org.xwiki.mail.MailSenderConfiguration: Method 'public long getSendWaitTime()' has been added to an interface
    org.xwiki.mail.script.MimeMessageWrapper: In method 'public MimeMessageWrapper(org.xwiki.mail.internal.ExtendedMimeMessage, javax.mail.Session, org.xwiki.mail.MailSender, org.xwiki.context.Execution, org.xwiki.component.manager.ComponentManager)' the number of arguments has changed
    org.xwiki.mail.script.MimeMessageWrapper: Accessibility of method 'public MimeMessageWrapper(org.xwiki.mail.internal.ExtendedMimeMessage, javax.mail.Session, org.xwiki.mail.MailSender, org.xwiki.context.Execution, org.xwiki.component.manager.ComponentManager)' has been decreased from public to package
    org.xwiki.mail.script.MimeMessageWrapper: Method 'public java.util.concurrent.BlockingQueue getErrors()' has been removed
    org.xwiki.mail.script.MimeMessageWrapper: Method 'public void send()' has been removed
    org.xwiki.mail.script.MimeMessageWrapper: Method 'public void sendAsynchronously()' has been removed
    org.xwiki.mail.script.MimeMessageWrapper: Method 'public void waitTillSent(long)' has been removed
  • Switched to the generics-aware commons-collections4.
    com.xpn.xwiki.monitor.api.MonitorPlugin: Return type of method 'public org.apache.commons.collections.buffer.CircularFifoBuffer getLastTimerData()' has been changed to org.apache.commons.collections4.queue.CircularFifoQueue
    com.xpn.xwiki.monitor.api.MonitorPlugin: Return type of method 'public org.apache.commons.collections.buffer.CircularFifoBuffer getLastUnfinishedTimerData()' has been changed to org.apache.commons.collections4.queue.CircularFifoQueue
Tags:
   

Get Connected