Version 51.4 by Eduard Moraru on 2012/05/31

Show last authors
1 (% style="font-size:x-large;" %)
2
3
4 {{box cssClass="floatinginfobox" title="**Contents**"}}
5 {{toc/}}
6 {{/box}}
7
8 This is the second milestone of the XWiki Enterprise 4.1 version ([[Roadmap>>Main.Roadmap]]). This version brings improvements to the Extension Manager's handling of updates to configuration documents, new localization through timezone settings, and customization of chart colors as well as many bug fixes and improvements.
9
10 = New and Noteworthy (since XWiki Enterprise 4.1 version) =
11
12 == Custom Chart Colors ==
13
14 It's now possible to select [[custom colors in Chart graphs>>extensions:Extension.Chart Macro]]. For example:
15
16 {{code}}
17 {{chart type="pie" source="inline" params="range:B2-D5;series:columns;colors:C3E3F7,1D9FF5,015891,012A45" title="Chart Test" width="320" height="240"}}
18 | |X |Y |Z
19 |Q1|1.2|3.4|1.3
20 |Q2|4.5|3.4|2.3
21 |Q3|1.2|4.5|9.0
22 |Q4|3.4|1.2|1.2
23 {{/chart}}
24 {{/code}}
25
26 Will generate:
27
28 {{image reference="extensions:Extension.Chart Macro@customcolors.png"/}}
29
30 == Hide Technical Documents ==
31
32 * In the activity stream, events (such as edit or delete) triggered by hidden documents do not appear unless the user chose to "display hidden documents" in his user preferences.
33
34 == Extension Manager improvements ==
35
36 XWiki Enterprise 4.1 milestone 2 comes with a first version of the Merge Conflict Resolution UI. From now on, when your upgrade a XAR extension and the extension manager fails to automatically merge your changes with the changes from the new version of the extension the extension manager will guide you to resolve the conflict.
37
38 {{image reference="EM-mergeConflict.png"/}}
39
40 In its first iteration the UI only allows you to choose which version to keep. You can compare the versions to make the right decision. Only the document content changes are displayed for the moment. The plan is to show all document changes (including meta data, objects, class, attachments) in 4.1 final and to allow you to edit the diff, i.e. create a custom version, in XWiki Enterprise 4.2.
41
42 Other minor improvements of the extension manager UI include:
43
44 * Mark 'Show Details', 'Hide Details' and 'Back to list' buttons as secondary buttons
45 * Display an "upgrade" button instead of an "install" one when an extension is already installed
46 * Better messages for empty search results
47
48 See the [[Extension Manager Application documentation>>doc:extensions:Extension.Extension Manager Application]] for more details.
49
50 == Global and per-user timezone setting ==
51
52 Wiki administrators can now decide to use a specific timezone, without having to take care of the one set on the server. The following setting can be found under **Administration > Localization**.
53 Users will find the same setting, allowing them to see dates reflecting their current location. The user setting is accessible through **Profile > Preferences > Localization Preferences**.
54
55 {{image reference="timezone.jpg"/}}
56
57 == New macro for sending messages ==
58
59 The control which allows users to send messages that is displayed on top of the Activity Stream can now be used outside of the activity macro by calling {{{{{messageSender /}}}}}.
60
61 == For developers ==
62
63 * There's a [[new Script Service allowing to access the Component Manager directly from scripts>>platform:DevGuide.Scripting||anchor="HXWikiComponentAccess"]]. For example:(((
64 {{code}}
65 {{groovy}}
66 def myComponent = services.component.getInstance(MyComponentRole.class)
67 {{/groovy}}
68 {{/code}}
69 )))
70 * We added a [[new Velocity uberspector that tries to convert method arguments>>doc:extensions:Extension.Velocity Module||anchor="HMethodArgumentsUberspector"]] to formal parameter types when the passed arguments don't match the method signature. For example:(((
71 {{code}}
72 $obj.someMethod('VALUE')
73 // will forward to
74 obj.someMethod(SomeEnum.VALUE)
75 // if obj has a method with signature someMethod(SomeEnum) and not someMethod(String)
76 {{/code}}
77 )))But this is not limited to enums. The conversion is done using the [[Properties Module>>doc:extensions:Extension.Properties Module]] which means you can create and register custom converters for data types specific to your application domain.
78 * It's now much easier to share variable between languages. For example:(((
79 {{code language="none"}}
80 {{groovy}}
81 var = "toto"
82 {{/groovy}}
83
84 {{velocity}}
85 $var
86 {{/velocity}}
87 {{/code}}
88 )))
89
90 = Bug fixes and improvements =
91
92 * Filenames of entries in XAR files are now [[always decoded using UTF-8 during import>>http://jira.xwiki.org/browse/XWIKI-6863]]. The previous behavior was to use the platform encoding. The filenames have always been encoded using UTF-8 in XAR files, but now also the Unicode extra fields are included, so unpacking XAR files with InfoZIP will result in the filenames beeing properly reencoded with the local filesystems character set.
93
94 * Temporary files are now placed in a special sub-directory of the normal temporary directory, this sub-directory called "xwiki-temp" is deleted after each startup of the xwiki system so it is critical that nothing else it placed in it. This improvement means that temporary files such as cached attachments will be removed even if the JVM crashes.
95
96 * It is now possible to delete pages and attachments before the initial import of wiki contents.
97
98 * The ability to delete messages from the Activity Stream is working again. It had [[stopped working>>http://jira.xwiki.org/browse/XWIKI-7863]] since 3.5.
99
100 See the full list of [[JIRA issues>>http://jira.xwiki.org/sr/jira.issueviews:searchrequest-printable/temp/SearchRequest.html?jqlQuery=project+in+%28XCOMMONS%2C+XRENDERING%2C+XWIKI%2C+XE%2C+XEM%29+and+status+%3D+Closed+and+resolution+%3D+Fixed+and+fixVersion+%3D+%224.1-milestone-2%22&tempMax=1000]] fixed in this release.
101
102 == Upgrades ==
103
104 The following dependencies have been upgraded:
105
106 * Restlet 2.0.14
107 ** Prior to Restlet 2.0.14, there was a REST bug allowing arbitrary filesystem read access for registered users.
108 * Reflections 0.9.7
109
110 = Test Report =
111
112 You can check the [[manual test report>>TestReports.ManualTestReportXE41M2]] to learn about what was tested and the results on various browsers.
113
114 == Tested Browsers ==
115
116 Here's the list of browsers tested with this version (i.e. browsers that we've tested as working - Check the list of [[supported browsers>>dev:Community.BrowserSupportStrategy]]):
117
118 {{browser name="firefox" version="12.0.1"/}}
119
120 == Tested Databases ==
121
122 {{database name="hsqldb" version="2.2.8"/}}
123
124 = Known issues =
125
126 * [[Bugs we know about>>http://jira.xwiki.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=category+%3D+%22Top+Level+Projects%22+AND+issuetype+%3D+Bug+AND+resolution+%3D+Unresolved+ORDER+BY+updated+DESC]]
127
128 = Upgrade Notes =
129
130 == Version-specific Upgrade Notes ==
131
132 * The location where the HSQLDB database is located in the Standalone distribution has changed from ##database/## to ##data/database## in order to group all data in the same directory. The location of the HSQLDB is specified in ##hibernate.cfg.xml## with a default value of {{code}}jdbc:hsqldb:file:${environment.permanentDirectory}/database/xwiki_db;shutdown=true{{/code}}. Notice the introduction of the new ##${environment.permanentDirectory}## variable which points to the directory defined in ##xwiki.properties## in the ##environment.permanentDirectory## property (which defaults to ##data## for the Standalone distribution). When upgrading, make sure the location you have in your ##hibernate.cfg.xml## file matches the location where your HSQLDB database is located.
133
134 == General Upgrade Notes ==
135
136 {{info}}
137 If you're running in a multiwiki setup you'll also need to define the property //xwiki.store.migration.databases// in your //xwiki.cfg// file if you want to explicitly name some databases to be migrated as the default is now to migrate all databases. Database that are not migrated could not be accessed.
138 {{/info}}
139
140 You may also want to [[import the default wiki XAR>>Main.Download]] in order to benefit from all the improvements listed above.
141
142 {{warning}}
143 Always make sure you compare your ##xwiki.cfg## and ##xwiki.properties## files with the newest version since some configuration parameters were 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.
144 {{/warning}}
145
146 == API Breakages ==
147
148 The following APIs were modified since version 4.1:
149
150 {{code language="none"}}
151 org.xwiki.environment.EnvironmentConfiguration: Class org.xwiki.environment.EnvironmentConfiguration removed
152 org.xwiki.extension.job.plan.ExtensionPlan: Return type of method 'public java.util.Collection getTree()' has been changed to org.xwiki.extension.job.plan.ExtensionPlanTree
153 org.xwiki.extension.version.VersionConstraint: Method 'public boolean isCompatible(org.xwiki.extension.version.Version)' has been added to an interface
154 org.xwiki.job.AbstractJob: Changed type of field status from org.xwiki.job.internal.DefaultJobStatus to org.xwiki.job.internal.AbstractJobStatus
155 org.xwiki.job.AbstractJob: Return type of method 'protected org.xwiki.job.internal.DefaultJobStatus createNewStatus(org.xwiki.job.Request)' has been changed to org.xwiki.job.internal.AbstractJobStatus
156 org.xwiki.job.AbstractJob: Method 'protected java.lang.String getId()' has been removed
157 org.xwiki.job.AbstractRequest: Return type of method 'public java.lang.String getId()' has been changed to java.util.List
158 org.xwiki.job.Job: Method 'public void join()' has been added to an interface
159 org.xwiki.job.Job: Method 'public boolean join(long, java.util.concurrent.TimeUnit)' has been added to an interface
160 org.xwiki.job.JobManager: Method 'public org.xwiki.job.event.status.JobStatus getJobStatus(java.util.List)' has been added to an interface
161 org.xwiki.job.Request: Return type of method 'public java.lang.String getId()' has been changed to java.util.List
162 org.xwiki.job.event.JobEvent: Return type of method 'public java.lang.String getJobId()' has been changed to java.util.List
163 org.xwiki.job.event.JobFinishedEvent: Return type of method 'public java.lang.String getJobId()' has been changed to java.util.List
164 org.xwiki.job.event.JobStartedEvent: Return type of method 'public java.lang.String getJobId()' has been changed to java.util.List
165 org.xwiki.job.event.status.JobStatus: Method 'public java.util.Date getEndDate()' has been added to an interface
166 org.xwiki.job.event.status.JobStatus: Method 'public java.util.Date getStartDate()' has been added to an interface
167 com.xpn.xwiki.doc.merge.MergeUtils: Class com.xpn.xwiki.doc.merge.MergeUtils removed
168 com.xpn.xwiki.objects.ObjectInterface: Method 'public com.xpn.xwiki.objects.classes.BaseClass getXClass(com.xpn.xwiki.XWikiContext)' has been added to an interface
169 com.xpn.xwiki.plugin.autotag.AutoTagPlugin: Class com.xpn.xwiki.plugin.autotag.AutoTagPlugin removed
170 com.xpn.xwiki.plugin.autotag.AutoTagPluginAPI: Class com.xpn.xwiki.plugin.autotag.AutoTagPluginAPI removed
171 com.xpn.xwiki.plugin.autotag.FrenchStemmer: Class com.xpn.xwiki.plugin.autotag.FrenchStemmer removed
172 com.xpn.xwiki.plugin.autotag.Tag: Class com.xpn.xwiki.plugin.autotag.Tag removed
173 com.xpn.xwiki.plugin.autotag.TagCloud: Class com.xpn.xwiki.plugin.autotag.TagCloud removed
174 org.xwiki.query.QueryFilter: Method 'public java.util.List filterResults(java.util.List)' has been added to an interface
175 org.xwiki.gwt.wysiwyg.client.Images: Method 'public com.google.gwt.resources.client.ImageResource sync()' has been removed
176 org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String sync()' has been removed
177 org.xwiki.gwt.wysiwyg.client.diff.AddDelta: Class org.xwiki.gwt.wysiwyg.client.diff.AddDelta removed
178 org.xwiki.gwt.wysiwyg.client.diff.ChangeDelta: Class org.xwiki.gwt.wysiwyg.client.diff.ChangeDelta removed
179 org.xwiki.gwt.wysiwyg.client.diff.Chunk: Class org.xwiki.gwt.wysiwyg.client.diff.Chunk removed
180 org.xwiki.gwt.wysiwyg.client.diff.DeleteDelta: Class org.xwiki.gwt.wysiwyg.client.diff.DeleteDelta removed
181 org.xwiki.gwt.wysiwyg.client.diff.Delta: Class org.xwiki.gwt.wysiwyg.client.diff.Delta removed
182 org.xwiki.gwt.wysiwyg.client.diff.Diff: Class org.xwiki.gwt.wysiwyg.client.diff.Diff removed
183 org.xwiki.gwt.wysiwyg.client.diff.DiffAlgorithm: Class org.xwiki.gwt.wysiwyg.client.diff.DiffAlgorithm removed
184 org.xwiki.gwt.wysiwyg.client.diff.DiffException: Class org.xwiki.gwt.wysiwyg.client.diff.DiffException removed
185 org.xwiki.gwt.wysiwyg.client.diff.DifferentiationFailedException: Class org.xwiki.gwt.wysiwyg.client.diff.DifferentiationFailedException removed
186 org.xwiki.gwt.wysiwyg.client.diff.PatchFailedException: Class org.xwiki.gwt.wysiwyg.client.diff.PatchFailedException removed
187 org.xwiki.gwt.wysiwyg.client.diff.Revision: Class org.xwiki.gwt.wysiwyg.client.diff.Revision removed
188 org.xwiki.gwt.wysiwyg.client.diff.RevisionVisitor: Class org.xwiki.gwt.wysiwyg.client.diff.RevisionVisitor removed
189 org.xwiki.gwt.wysiwyg.client.diff.SimpleDiff: Class org.xwiki.gwt.wysiwyg.client.diff.SimpleDiff removed
190 org.xwiki.gwt.wysiwyg.client.diff.ToString: Class org.xwiki.gwt.wysiwyg.client.diff.ToString removed
191 org.xwiki.gwt.wysiwyg.client.diff.myers.DiffNode: Class org.xwiki.gwt.wysiwyg.client.diff.myers.DiffNode removed
192 org.xwiki.gwt.wysiwyg.client.diff.myers.MyersDiff: Class org.xwiki.gwt.wysiwyg.client.diff.myers.MyersDiff removed
193 org.xwiki.gwt.wysiwyg.client.diff.myers.PathNode: Class org.xwiki.gwt.wysiwyg.client.diff.myers.PathNode removed
194 org.xwiki.gwt.wysiwyg.client.diff.myers.Snake: Class org.xwiki.gwt.wysiwyg.client.diff.myers.Snake removed
195 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncPlugin: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncPlugin removed
196 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncPluginFactory: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncPluginFactory removed
197 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncResult: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncResult removed
198 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncService: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncService removed
199 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncServiceAsync: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncServiceAsync removed
200 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncStatus: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncStatus removed
201 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncTools: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncTools removed
202 org.xwiki.wysiwyg.server.plugin.sync.SyncEngine: Class org.xwiki.wysiwyg.server.plugin.sync.SyncEngine removed
203 org.xwiki.wysiwyg.server.plugin.sync.SyncException: Class org.xwiki.wysiwyg.server.plugin.sync.SyncException removed
204 {{/code}}
205 )))

Get Connected