Changes for page Release Notes for XWiki 4.3 Milestone 2
Last modified by Thomas Mortagne on 2023/10/13
Change comment:
Summary
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. ThomasMortagne1 +XWiki.enygma - Content
-
... ... @@ -4,8 +4,10 @@ 4 4 5 5 This is the release notes for XWiki Platform, XWiki Enterprise and XWiki Enterprise Manager. They share the same release notes as they are released together and have the same version. 6 6 7 - <insertdescriptionofrelease here>7 +This is the second and last milestone of the XWiki 4.3 version ([[Roadmap>>xwiki:Main.Roadmap]]). 8 8 9 +This release brings a new and experimental Solr Search engine, new default date/user/group pickers, a new localization module allowing applications to register translations, REST API improvements and various other developer improvements. 10 + 9 9 = New and Noteworthy (since XWiki 4.3 Milestone 1) = 10 10 11 11 == Experimental Solr based search engine == ... ... @@ -16,7 +16,7 @@ 16 16 17 17 {{image reference="solrSearchFilters.png"/}} 18 18 19 -The new engine has it's own index, separate from the Lucene one, which is stored by default in the ##<permanent directory>/solr## folder. In the same folder you can also access Solr's configuration files together with the index's schema.xml which you can twe ek to achieve better results. To change this folder's location, you can either pass the ##-Dsolr.solr.home## system property when you start the application container (tomcat/jetty/etc.) or you can set the ##search.solr.home## property in ##WEB-INF/xwiki.preferences##.21 +The new engine has it's own index, separate from the Lucene one, which is stored by default in the ##<permanent directory>/solr## folder. In the same folder you can also access Solr's configuration files together with the index's schema.xml which you can tweak to achieve better results. To change this folder's location, you can either pass the ##-Dsolr.solr.home## system property when you start the application container (tomcat/jetty/etc.) or you can set the ##search.solr.home## property in ##WEB-INF/xwiki.preferences##. 20 20 21 21 For now, indexing is done only __manually__ by using the Search Administration UI. Because of this, in order to get any search results, you have to go to ##Administration > Applications > Search## and index/reindex the wiki. Any changes in the content of the wiki will not be searchable until you manually reindex. This limitation will be removed in future versions, once the feature matures. 22 22 ... ... @@ -153,8 +153,228 @@ 153 153 154 154 == API Breakages == 155 155 156 -The following APIs were modified since <project> <version - 1>:158 +The following APIs were modified since 4.2: 157 157 160 +* [Young API] Introduce API to associate dependency status to the namespace.((( 158 158 {{code language="none"}} 159 - <clirroutput here>162 +org.xwiki.extension.InstalledExtension: Method 'public boolean isDependency(java.lang.String)' has been added to an interface 160 160 {{/code}} 164 +))) 165 + 166 +* [Young API] Introduce ExtensionRepositoryDescriptor as a replacement of ExtensionRepositoryId((( 167 +{{code language="none"}} 168 +org.xwiki.extension.ExtensionManagerConfiguration: Method 'public java.util.Collection getExtensionRepositoryDescriptors()' has been added to an interface 169 +org.xwiki.extension.repository.ExtensionRepository: Method 'public org.xwiki.extension.repository.ExtensionRepositoryDescriptor getDescriptor()' has been added to an interface 170 +org.xwiki.extension.repository.ExtensionRepositoryFactory: Method 'public org.xwiki.extension.repository.ExtensionRepository createRepository(org.xwiki.extension.repository.ExtensionRepositoryDescriptor)' has been added to an interface 171 +org.xwiki.extension.repository.ExtensionRepositoryManager: Method 'public org.xwiki.extension.repository.ExtensionRepository addRepository(org.xwiki.extension.repository.ExtensionRepositoryDescriptor)' has been added to an interface 172 +org.xwiki.extension.repository.ExtensionRepositorySource: Method 'public java.util.Collection getExtensionRepositoryDescriptors()' has been added to an interface 173 +{{/code}} 174 +))) 175 + 176 +* The ##userdirectory## and ##usertools## plugins have been retired((( 177 +{{code language="none"}} 178 +com.xpn.xwiki.plugin.userdirectory.Group: Class com.xpn.xwiki.plugin.userdirectory.Group removed 179 +com.xpn.xwiki.plugin.userdirectory.UserDirectoryPlugin: Class com.xpn.xwiki.plugin.userdirectory.UserDirectoryPlugin removed 180 +com.xpn.xwiki.plugin.userdirectory.UserDirectoryPluginAPI: Class com.xpn.xwiki.plugin.userdirectory.UserDirectoryPluginAPI removed 181 +com.xpn.xwiki.plugin.usertools.XWikiUserManagementTools: Class com.xpn.xwiki.plugin.usertools.XWikiUserManagementTools removed 182 +com.xpn.xwiki.plugin.usertools.XWikiUserManagementToolsAPI: Class com.xpn.xwiki.plugin.usertools.XWikiUserManagementToolsAPI removed 183 +com.xpn.xwiki.plugin.usertools.XWikiUserManagementToolsImpl: Class com.xpn.xwiki.plugin.usertools.XWikiUserManagementToolsImpl removed 184 +{{/code}} 185 +))) 186 + 187 +* This should be fixed: a new 'sendMessageFromTemplate' method was added before the 4.2 release and then removed only from master (4.3-SNAPSHOT). We need to decide what we do with this method.((( 188 +{{code language="none"}} 189 +com.xpn.xwiki.plugin.mailsender.MailSender: Method 'public int sendMessageFromTemplate(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Map)' has been removed 190 +{{/code}} 191 +))) 192 + 193 +* Many REST API module classes that were not meant to be public have been moved to internal package.((( 194 +{{code language="none"}} 195 +org.xwiki.rest.ComponentsObjectFactory: Class org.xwiki.rest.ComponentsObjectFactory removed 196 +org.xwiki.rest.Constants: Field ALLOWED_VALUES_ATTRIBUTE_NAME has been removed, but it was previously a constant 197 +org.xwiki.rest.Constants: Field RELEASABLE_COMPONENT_REFERENCES has been removed, but it was previously a constant 198 +org.xwiki.rest.Constants: Field XWIKI_COMPONENT_MANAGER has been removed, but it was previously a constant 199 +org.xwiki.rest.DomainObjectFactory: Class org.xwiki.rest.DomainObjectFactory removed 200 +org.xwiki.rest.RangeIterable: Class org.xwiki.rest.RangeIterable removed 201 +org.xwiki.rest.Utils: Class org.xwiki.rest.Utils removed 202 +org.xwiki.rest.XWikiAuthentication: Class org.xwiki.rest.XWikiAuthentication removed 203 +org.xwiki.rest.XWikiJaxRsApplication: Class org.xwiki.rest.XWikiJaxRsApplication removed 204 +org.xwiki.rest.XWikiRestletJaxRsApplication: Class org.xwiki.rest.XWikiRestletJaxRsApplication removed 205 +org.xwiki.rest.XWikiRestletServlet: Class org.xwiki.rest.XWikiRestletServlet removed 206 +org.xwiki.rest.XWikiSecretVerifier: Class org.xwiki.rest.XWikiSecretVerifier removed 207 +org.xwiki.rest.XWikiSetupCleanupFilter: Class org.xwiki.rest.XWikiSetupCleanupFilter removed 208 +org.xwiki.rest.exceptions.QueryExceptionMapper: Class org.xwiki.rest.exceptions.QueryExceptionMapper removed 209 +org.xwiki.rest.exceptions.XWikiExceptionMapper: Class org.xwiki.rest.exceptions.XWikiExceptionMapper removed 210 +org.xwiki.rest.representations.TextPlainReader: Class org.xwiki.rest.representations.TextPlainReader removed 211 +org.xwiki.rest.representations.comments.FormUrlEncodedCommentReader: Class org.xwiki.rest.representations.comments.FormUrlEncodedCommentReader removed 212 +org.xwiki.rest.representations.comments.TextPlainCommentReader: Class org.xwiki.rest.representations.comments.TextPlainCommentReader removed 213 +org.xwiki.rest.representations.objects.FormUrlEncodedObjectReader: Class org.xwiki.rest.representations.objects.FormUrlEncodedObjectReader removed 214 +org.xwiki.rest.representations.objects.FormUrlEncodedPropertyReader: Class org.xwiki.rest.representations.objects.FormUrlEncodedPropertyReader removed 215 +org.xwiki.rest.representations.objects.TextPlainPropertyReader: Class org.xwiki.rest.representations.objects.TextPlainPropertyReader removed 216 +org.xwiki.rest.representations.pages.FormUrlEncodedPageReader: Class org.xwiki.rest.representations.pages.FormUrlEncodedPageReader removed 217 +org.xwiki.rest.representations.pages.TextPlainPageReader: Class org.xwiki.rest.representations.pages.TextPlainPageReader removed 218 +org.xwiki.rest.representations.tags.FormUrlEncodedTagsReader: Class org.xwiki.rest.representations.tags.FormUrlEncodedTagsReader removed 219 +org.xwiki.rest.representations.tags.TextPlainTagsReader: Class org.xwiki.rest.representations.tags.TextPlainTagsReader removed 220 +org.xwiki.rest.resources.BaseAttachmentsResource: Class org.xwiki.rest.resources.BaseAttachmentsResource removed 221 +org.xwiki.rest.resources.BaseAttachmentsResource$AttachmentInfo: Class org.xwiki.rest.resources.BaseAttachmentsResource$AttachmentInfo removed 222 +org.xwiki.rest.resources.BaseSearchResult: Class org.xwiki.rest.resources.BaseSearchResult removed 223 +org.xwiki.rest.resources.BaseSearchResult$SearchScope: Class org.xwiki.rest.resources.BaseSearchResult$SearchScope removed 224 +org.xwiki.rest.resources.BrowserAuthenticationResource: Class org.xwiki.rest.resources.BrowserAuthenticationResource removed 225 +org.xwiki.rest.resources.ModificationsResource: Class org.xwiki.rest.resources.ModificationsResource removed 226 +org.xwiki.rest.resources.RootResource: Class org.xwiki.rest.resources.RootResource removed 227 +org.xwiki.rest.resources.SyntaxesResource: Class org.xwiki.rest.resources.SyntaxesResource removed 228 +org.xwiki.rest.resources.attachments.AttachmentAtPageVersionResource: Class org.xwiki.rest.resources.attachments.AttachmentAtPageVersionResource removed 229 +org.xwiki.rest.resources.attachments.AttachmentHistoryResource: Class org.xwiki.rest.resources.attachments.AttachmentHistoryResource removed 230 +org.xwiki.rest.resources.attachments.AttachmentResource: Class org.xwiki.rest.resources.attachments.AttachmentResource removed 231 +org.xwiki.rest.resources.attachments.AttachmentVersionResource: Class org.xwiki.rest.resources.attachments.AttachmentVersionResource removed 232 +org.xwiki.rest.resources.attachments.AttachmentsAtPageVersionResource: Class org.xwiki.rest.resources.attachments.AttachmentsAtPageVersionResource removed 233 +org.xwiki.rest.resources.attachments.AttachmentsResource: Class org.xwiki.rest.resources.attachments.AttachmentsResource removed 234 +org.xwiki.rest.resources.classes.ClassPropertiesResource: Class org.xwiki.rest.resources.classes.ClassPropertiesResource removed 235 +org.xwiki.rest.resources.classes.ClassPropertyResource: Class org.xwiki.rest.resources.classes.ClassPropertyResource removed 236 +org.xwiki.rest.resources.classes.ClassResource: Class org.xwiki.rest.resources.classes.ClassResource removed 237 +org.xwiki.rest.resources.classes.ClassesResource: Class org.xwiki.rest.resources.classes.ClassesResource removed 238 +org.xwiki.rest.resources.comments.CommentResource: Class org.xwiki.rest.resources.comments.CommentResource removed 239 +org.xwiki.rest.resources.comments.CommentVersionResource: Class org.xwiki.rest.resources.comments.CommentVersionResource removed 240 +org.xwiki.rest.resources.comments.CommentsResource: Class org.xwiki.rest.resources.comments.CommentsResource removed 241 +org.xwiki.rest.resources.comments.CommentsVersionResource: Class org.xwiki.rest.resources.comments.CommentsVersionResource removed 242 +org.xwiki.rest.resources.objects.AllObjectsForClassNameResource: Class org.xwiki.rest.resources.objects.AllObjectsForClassNameResource removed 243 +org.xwiki.rest.resources.objects.BaseObjectsResource: Class org.xwiki.rest.resources.objects.BaseObjectsResource removed 244 +org.xwiki.rest.resources.objects.ObjectAtPageVersionResource: Class org.xwiki.rest.resources.objects.ObjectAtPageVersionResource removed 245 +org.xwiki.rest.resources.objects.ObjectPropertiesAtPageVersionResource: Class org.xwiki.rest.resources.objects.ObjectPropertiesAtPageVersionResource removed 246 +org.xwiki.rest.resources.objects.ObjectPropertiesResource: Class org.xwiki.rest.resources.objects.ObjectPropertiesResource removed 247 +org.xwiki.rest.resources.objects.ObjectPropertyAtPageVersionResource: Class org.xwiki.rest.resources.objects.ObjectPropertyAtPageVersionResource removed 248 +org.xwiki.rest.resources.objects.ObjectPropertyResource: Class org.xwiki.rest.resources.objects.ObjectPropertyResource removed 249 +org.xwiki.rest.resources.objects.ObjectResource: Class org.xwiki.rest.resources.objects.ObjectResource removed 250 +org.xwiki.rest.resources.objects.ObjectsAtPageVersionResource: Class org.xwiki.rest.resources.objects.ObjectsAtPageVersionResource removed 251 +org.xwiki.rest.resources.objects.ObjectsForClassNameResource: Class org.xwiki.rest.resources.objects.ObjectsForClassNameResource removed 252 +org.xwiki.rest.resources.objects.ObjectsResource: Class org.xwiki.rest.resources.objects.ObjectsResource removed 253 +org.xwiki.rest.resources.pages.ModifiablePageResource: Class org.xwiki.rest.resources.pages.ModifiablePageResource removed 254 +org.xwiki.rest.resources.pages.PageChildrenResource: Class org.xwiki.rest.resources.pages.PageChildrenResource removed 255 +org.xwiki.rest.resources.pages.PageHistoryResource: Class org.xwiki.rest.resources.pages.PageHistoryResource removed 256 +org.xwiki.rest.resources.pages.PageResource: Class org.xwiki.rest.resources.pages.PageResource removed 257 +org.xwiki.rest.resources.pages.PageTagsResource: Class org.xwiki.rest.resources.pages.PageTagsResource removed 258 +org.xwiki.rest.resources.pages.PageTranslationHistoryResource: Class org.xwiki.rest.resources.pages.PageTranslationHistoryResource removed 259 +org.xwiki.rest.resources.pages.PageTranslationResource: Class org.xwiki.rest.resources.pages.PageTranslationResource removed 260 +org.xwiki.rest.resources.pages.PageTranslationVersionResource: Class org.xwiki.rest.resources.pages.PageTranslationVersionResource removed 261 +org.xwiki.rest.resources.pages.PageTranslationsResource: Class org.xwiki.rest.resources.pages.PageTranslationsResource removed 262 +org.xwiki.rest.resources.pages.PageVersionResource: Class org.xwiki.rest.resources.pages.PageVersionResource removed 263 +org.xwiki.rest.resources.pages.PagesResource: Class org.xwiki.rest.resources.pages.PagesResource removed 264 +org.xwiki.rest.resources.spaces.SpaceAttachmentsResource: Class org.xwiki.rest.resources.spaces.SpaceAttachmentsResource removed 265 +org.xwiki.rest.resources.spaces.SpaceResource: Class org.xwiki.rest.resources.spaces.SpaceResource removed 266 +org.xwiki.rest.resources.spaces.SpaceSearchResource: Class org.xwiki.rest.resources.spaces.SpaceSearchResource removed 267 +org.xwiki.rest.resources.spaces.SpacesResource: Class org.xwiki.rest.resources.spaces.SpacesResource removed 268 +org.xwiki.rest.resources.tags.PagesForTagsResource: Class org.xwiki.rest.resources.tags.PagesForTagsResource removed 269 +org.xwiki.rest.resources.tags.TagsResource: Class org.xwiki.rest.resources.tags.TagsResource removed 270 +org.xwiki.rest.resources.wikis.WikiAttachmentsResource: Class org.xwiki.rest.resources.wikis.WikiAttachmentsResource removed 271 +org.xwiki.rest.resources.wikis.WikiPagesResource: Class org.xwiki.rest.resources.wikis.WikiPagesResource removed 272 +org.xwiki.rest.resources.wikis.WikiSearchResource: Class org.xwiki.rest.resources.wikis.WikiSearchResource removed 273 +org.xwiki.rest.resources.wikis.WikisResource: Class org.xwiki.rest.resources.wikis.WikisResource removed 274 +{{/code}} 275 +))) 276 + 277 +* The version field has been moved from Page to PageSummary which is the superclass of Page((( 278 +{{code language="none"}} 279 +org.xwiki.rest.model.jaxb.Page: Removed field version 280 +{{/code}} 281 +))) 282 + 283 +* Added methods for creating workspaces and retrieving workspace templates.((( 284 +{{code language="none"}} 285 +org.xwiki.workspace.WorkspaceManager: Method 'public com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer createWorkspace(java.lang.String, com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer, java.lang.String)' has been added to an interface 286 +org.xwiki.workspace.WorkspaceManager: Method 'public java.util.List getWorkspaceTemplates()' has been added to an interface 287 +{{/code}} 288 +))) 289 + 290 +* The plugin has been moved to its own module. Not a breakage.((( 291 +{{code language="none"}} 292 +com.xpn.xwiki.plugin.feed.FeedPlugin: Class com.xpn.xwiki.plugin.feed.FeedPlugin removed 293 +com.xpn.xwiki.plugin.feed.FeedPlugin$EntriesComparator: Class com.xpn.xwiki.plugin.feed.FeedPlugin$EntriesComparator removed 294 +com.xpn.xwiki.plugin.feed.FeedPlugin$SyndEntryComparator: Class com.xpn.xwiki.plugin.feed.FeedPlugin$SyndEntryComparator removed 295 +com.xpn.xwiki.plugin.feed.FeedPluginApi: Class com.xpn.xwiki.plugin.feed.FeedPluginApi removed 296 +com.xpn.xwiki.plugin.feed.SyndEntryDocumentSource: Class com.xpn.xwiki.plugin.feed.SyndEntryDocumentSource removed 297 +com.xpn.xwiki.plugin.feed.SyndEntryDocumentSource$PropertySelector: Class com.xpn.xwiki.plugin.feed.SyndEntryDocumentSource$PropertySelector removed 298 +com.xpn.xwiki.plugin.feed.SyndEntrySource: Class com.xpn.xwiki.plugin.feed.SyndEntrySource removed 299 +com.xpn.xwiki.plugin.feed.SyndEntrySourceApi: Class com.xpn.xwiki.plugin.feed.SyndEntrySourceApi removed 300 +com.xpn.xwiki.plugin.feed.UpdateThread: Class com.xpn.xwiki.plugin.feed.UpdateThread removed 301 +com.xpn.xwiki.plugin.feed.XWikiFeedFetcher: Class com.xpn.xwiki.plugin.feed.XWikiFeedFetcher removed 302 +com.xpn.xwiki.plugin.feed.XWikiFeedFetcher$CredentialSupplier: Class com.xpn.xwiki.plugin.feed.XWikiFeedFetcher$CredentialSupplier removed 303 +{{/code}} 304 +))) 305 + 306 +* IRCBot is still a young API. Added a new initialize() method to support installing the IRC Bot application in a subwiki((( 307 +{{code language="none"}} 308 +org.xwiki.ircbot.IRCBot: Method 'public void initialize(java.lang.String)' has been added to an interface 309 +{{/code}} 310 +))) 311 + 312 +* WikiComponent is still a young API. Moved the class to the internal package((( 313 +{{code language="none"}} 314 +org.xwiki.component.wiki.MethodOutputHandler: Class org.xwiki.component.wiki.MethodOutputHandler removed 315 +org.xwiki.component.wiki.WikiComponentInvocationHandler: Class org.xwiki.component.wiki.WikiComponentInvocationHandler removed 316 +{{/code}} 317 +))) 318 + 319 +* WikiComponent is still a young API. Replaced the getRole() method with getRoleType() to implement XWIKI-8233, "Allow wiki components to implement parameterized types"((( 320 +{{code language="none"}} 321 +org.xwiki.component.wiki.WikiComponent: Method 'public java.lang.Class getRole()' has been removed 322 +org.xwiki.component.wiki.WikiComponent: Method 'public java.lang.reflect.Type getRoleType()' has been added to an interface 323 +{{/code}} 324 +))) 325 + 326 +* WikiComponent is still a young API. Removed some unnecessary methods((( 327 +{{code language="none"}} 328 +org.xwiki.component.wiki.WikiComponent: Method 'public java.util.Map getHandledMethods()' has been removed 329 +org.xwiki.component.wiki.WikiComponent: Method 'public java.util.List getImplementedInterfaces()' has been removed 330 +{{/code}} 331 +))) 332 + 333 +* WikiComponent is still a young API. Added this method to implement XWIKI-8234, "Allow wiki components to be registered at different levels (user / wiki / global)"((( 334 +{{code language="none"}} 335 +org.xwiki.component.wiki.WikiComponent: Method 'public org.xwiki.model.reference.DocumentReference getAuthorReference()' has been added to an interface 336 +org.xwiki.component.wiki.WikiComponent: Method 'public org.xwiki.component.wiki.WikiComponentScope getScope()' has been added to an interface 337 +{{/code}} 338 +))) 339 + 340 +* UIExtension is still a young API. Replaced the List of Block by a Block since Block can now hold a list of Block((( 341 +{{code language="none"}} 342 +org.xwiki.uiextension.UIExtension: Return type of method 'public java.util.List execute()' has been changed to org.xwiki.rendering.block.Block 343 +{{/code}} 344 +))) 345 + 346 +* UIExtension is still a young API. getName() has been renamed to getId()((( 347 +{{code language="none"}} 348 +org.xwiki.uiextension.UIExtension: Method 'public java.lang.String getId()' has been added to an interface 349 +org.xwiki.uiextension.UIExtension: Method 'public java.lang.String getName()' has been removed 350 +{{/code}} 351 +))) 352 + 353 +* Added a common method to all elements to set all the data from another element. Technically this does not really break anything because all elements are supposed to extends BaseElement((( 354 +{{code language="none"}} 355 +com.xpn.xwiki.objects.ElementInterface: Method 'public boolean apply(com.xpn.xwiki.objects.ElementInterface, boolean)' has been added to an interface 356 +{{/code}} 357 +))) 358 + 359 +* Elemenents must be added to the wrapping NotifyOnList to ensure that the property is marked 'dirty' when updated. To avoid that this mechanism is circumvented, the field is made final.((( 360 +{{code language="none"}} 361 +com.xpn.xwiki.objects.ListProperty: Field list is now final 362 +{{/code}} 363 +))) 364 + 365 +* Removed language field because the information is now stored as Locale instead of String and it should have never been protected anyway.((( 366 +{{code language="none"}} 367 +com.xpn.xwiki.doc.XWikiDocument: Removed field language 368 +{{/code}} 369 +))) 370 + 371 +* URLPatternMatcher instances cannot generally be reused (because the underlaying Perl5Matcher cannot be reused) on different strings and with different patterns and a new instance must be produced on demand. It is, thus, meaningless to set an instance. If there is any code relying on this method, it is broken already. Thus, we should remove this without going through deprecation. We might as well remove the getter.((( 372 +{{code language="none"}} 373 +com.xpn.xwiki.XWiki: Method 'public void setUrlPatternMatcher(org.securityfilter.filter.URLPatternMatcher)' has been removed 374 +com.xpn.xwiki.XWiki: Method 'public org.securityfilter.filter.URLPatternMatcher getUrlPatternMatcher()' has been removed 375 +{{/code}} 376 +))) 377 + 378 +* Removed unused field((( 379 +{{code language="none"}} 380 +com.xpn.xwiki.tool.backup.ImportMojo: Field MPNAME_DESCRIPTION has been removed, but it was previously a constant 381 +{{/code}} 382 +)))