You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

release-notes.html 20KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Vaadin Framework @version@</title>
  6. <link rel="stylesheet" type="text/css" href="css/styles.css" />
  7. <!--[if lte IE 6]>
  8. <link rel="stylesheet" type="text/css" href="css/ie.css" />
  9. <![endif]-->
  10. <style type="text/css">
  11. .nested-list ol {
  12. counter-reset: item
  13. }
  14. .nested-list li {
  15. display: block
  16. }
  17. .nested-list li:before {
  18. content: counters(item, ".") ". ";
  19. counter-increment: item
  20. }
  21. </style>
  22. </head>
  23. <!-- /head -->
  24. <body>
  25. <div id="header">
  26. <h1>Vaadin &ndash; thinking of U and I</h1>
  27. <div id="version">
  28. <strong>Version @version@</strong>
  29. </div>
  30. </div>
  31. <!-- /header -->
  32. <div id="content">
  33. <p>Version @version@ built on @builddate@.</p>
  34. <h2 id="tableofcontents">Release Notes for Vaadin Framework
  35. @version@</h2>
  36. <ul>
  37. <li><a href="#overview">Package contents</a>
  38. </li>
  39. <li><a href="#security-fixes">Security fixes in Vaadin @version-minor@</a>
  40. </li>
  41. <li><a href="#enhancements">Enhancements in Vaadin @version-minor@</a>
  42. </li>
  43. <li><a href="#fixes">Fixes in Vaadin @version@</a>
  44. </li>
  45. <li><a href="#backwardsincompatibilities">Backwards
  46. incompatible changes in Vaadin @version-minor@</a>
  47. </li>
  48. <li><a href="#dependencies">Vaadin @version@ dependencies</a>
  49. </li>
  50. <li><a href="#upgrading">Upgrading to Vaadin @version-minor@</a>
  51. </li>
  52. <li><a href="#knownissues">Known problems and limitations in
  53. Vaadin @version@</a>
  54. </li>
  55. <li><a href="#supportedversions">Supported technologies</a>
  56. </li>
  57. </li>
  58. <li><a href="#vaadinontheweb">Vaadin on the Web</a>
  59. </li>
  60. </ul>
  61. <h2 id="overview">Package Contents</h2>
  62. <p>
  63. <b>Vaadin</b> is a Java framework for building modern web
  64. applications that look great, perform well and make you and your
  65. users happy. <b>Vaadin</b> is available under the Apache 2 license
  66. (see license.html).
  67. </p>
  68. <p>
  69. <b>Vaadin</b> is distributed as a single JAR file. Inside the JAR you
  70. will find:
  71. <ul>
  72. <li>Vaadin server and client side classes (/com)</li>
  73. <li>Vaadin server and client side sources (/com)</li>
  74. <li>The default widget set (/VAADIN/widgetsets)</li>
  75. <li>Themes: Runo, Reindeer and Chameleon (/VAADIN/themes)</li>
  76. <li>Release notes (/release-notes.html)</li>
  77. <li>Licensing information (/license.html)</li>
  78. </ul>
  79. </p>
  80. <h2 id="security-fixes">Security fixes in Vaadin @version-minor@</h2>
  81. <p>Vaadin 6.7.0 and later incorporates fixes for the following security issues:</p>
  82. <ul>
  83. <li><a href="http://dev.vaadin.com/ticket/7669">#7669</a> CSRF/XSS vulnerability through separator injection</li>
  84. <li><a href="http://dev.vaadin.com/ticket/7670">#7670</a> Directory traversal vulnerability</li>
  85. <li><a href="http://dev.vaadin.com/ticket/7671">#7671</a> Contributory XSS: Possibility to inject HTML/JavaScript in system error messages</li>
  86. <li><a href="http://dev.vaadin.com/ticket/7672">#7672</a> Contributory XSS: possibility for injection in certain components</li>
  87. </ul>
  88. <p>
  89. These issues were discovered by Wouter Coekaerts (<a href="http://wouter.coekaerts.be/">http://wouter.coekaerts.be/</a>) and an internal review.
  90. Immediate upgrade to a version containing the fixes (6.6.7 or later or 6.7.0 or later) is strongly recommended for all users.
  91. </p>
  92. <p>
  93. The most serious of these issues is the directory traversal attack that can allow read access to the class files of an application as well as some configuration information.
  94. </p>
  95. <p>
  96. If unable to immediately upgrade Vaadin to a version containing the fixes, the directory traversal vulnerability can be mitigated by not mapping the context path
  97. "/VAADIN" to a Vaadin servlet in web.xml but instead deploying such static resources (themes and widgetsets) directly on the server and serving them as files.
  98. </p>
  99. <p>
  100. The other vulnerabilities typically require user actions (pasting text crafted by the attacker into the application or following a link crafted by the attacker)
  101. for a successful attack, but may be exploitable more directly in certain applications. They can allow the attacker to control the user session for the application
  102. in the browser.
  103. </p>
  104. <h2 id="enhancements">Enhancements in Vaadin @version-minor@</h2>
  105. <p>
  106. <b>SQLContainer</b>
  107. </p>
  108. <p>SQLContainer connects your application to an SQL database using
  109. JDBC. SQLContainer allows you to easily bind data stored in a SQL
  110. database to Table and Select components, as well as edit the data
  111. using Forms. Compared to many object-relational tools this provides
  112. you with fast, low-level database access.</p>
  113. <p>SQLContainer was previously distributed as an add-on and has
  114. now been integrated into the framework.</p>
  115. <p>
  116. <b>TreeTable</b>
  117. </p>
  118. <p>TreeTable is an extended Table component that can show
  119. hierarchical structures in its first column. Users can show or hide
  120. children from a small icon before the actual column value in the
  121. first column.</p>
  122. <p>TreeTable is, similarly to Table, designed to scale well with
  123. large number of rows by only sending the needed rows to the browser.
  124. With the Collapsible Container extension, a developer can build the
  125. data provider so that it does not consume too much memory on the
  126. server side either.</p>
  127. <p>
  128. <b>Chameleon Theme</b>
  129. </p>
  130. <p>Chameleon Theme provides a completely new look and feel for
  131. your application.</p>
  132. <p>
  133. The theme is built on top of the Vaadin Base theme and tries to keep
  134. out of the way where appropriate, so small modifications are easy to
  135. do with CSS.
  136. <p>
  137. The theme contains several different useful styles for many of the
  138. basic components like <i>big</i> and <i>warning</i> for a Label. You
  139. can even combine many styles together, like <i>big warning</i>
  140. </p>
  141. If the default color scheme does not suit your taste, feel free to
  142. use the online color scheme editor at <a
  143. href="http://demo.vaadin.com/">http://demo.vaadin.com</a> to build a
  144. customized theme.You can also change the base font size for the whole
  145. theme with the same editor.
  146. <p>
  147. <i>Note that the theme is intentionally simplified for some
  148. browsers, most notably old Internet Explorer versions.</i>
  149. </p>
  150. </p>
  151. <p>
  152. <b>Notification</b> now supports a plain text mode for its contents
  153. </p>
  154. <p>
  155. <b>OptionGroup</b> now supports a HTML mode for the item captions
  156. </p>
  157. <p>
  158. <b>OptionGroup</b> now supports item icons
  159. </p>
  160. <p>
  161. <b>MenuBar</b> now supports a HTML mode for the item captions
  162. </p>
  163. <p>
  164. <b>ComboBox</b> now supports scrolling using the mouse wheel
  165. </p>
  166. <p>
  167. <b>Table ColumnGenerator</b> can now generate plain text in addition
  168. to Components
  169. </p>
  170. <p>
  171. <b>TabSheet</b> tabs can be styled individually
  172. </p>
  173. <p>
  174. <b>Button</b> can be automatically disabled when clicked
  175. </p>
  176. <p>
  177. <b>Tree, Table</b> and <b>TreeTable</b> support tooltips for
  178. individual items or cells
  179. </p>
  180. <p>
  181. <b>Table</b> and <b>TreeTable</b> now support GeneratedRows that can
  182. be used for grouping or summary rows
  183. </p>
  184. <p>
  185. <b>TreeTable</b> supports animation for expand and collapse
  186. operations
  187. </p>
  188. <p>
  189. <b>TreeTable</b> supports expand and collapse listeners
  190. </p>
  191. <p>
  192. <b>PopupDateField</b> and <b>InlineDateField</b> now support time
  193. zones
  194. </p>
  195. <p>
  196. <b>ComboBox</b> can now be used as a replacement for NativeSelect
  197. </p>
  198. <p>
  199. <b>Audio</b> and <b>Video</b> components implement support for HTML5 &lt;audio&gt; and &lt;video&gt; elements.
  200. </p>
  201. <p>
  202. <b>CDI</b> can now also be used with @SessionScoped beans.
  203. </p>
  204. <p>
  205. <b>Sampler</b> is no longer distributed as part of Vaadin @version@.
  206. It will be available as a separate download
  207. </p>
  208. <p>
  209. <b>Book of Vaadin</b> is no longer distributed with Vaadin @version@.
  210. It is available as a separate download from <a
  211. href="http://vaadin.com/book">http://vaadin.com/book</a>
  212. </p>
  213. <p>
  214. The <a
  215. href="http://dev.vaadin.com/query?status=closed&type=enhancement&milestone=Vaadin+6.7.0.rc1&or&status=closed&type=enhancement&milestone=Vaadin+6.7.0.beta1&or&status=closed&type=enhancement&milestone=Vaadin+6.7.0&group=status&col=id&col=summary&col=type&col=owner&col=priority&col=component&col=version&order=priority">full
  216. details of the enhancements</a> can be found at dev.vaadin.com.</a>
  217. </p>
  218. <h2 id="fixes">Fixes in Vaadin @version@</h2>
  219. <p>
  220. #7788 Field.setProperyDatasource() does not reflect value for 6.7.0<br/>
  221. #7479 Vaadin apps cannot current be deployed on IBM WebSphere v8<br/>
  222. #7724 TextField with PropertyFormatter did not repaint in 6.7.0 (event with requestRepaint() call)<br/>
  223. #7731 Javascript error when adding an item to an empty Table when setColumnWidth is used<br/>
  224. #7776 AbstractField don't respect value change events from property during commit<br/>
  225. #7778 Table rendering problem<br/>
  226. #6588 Repainting in TextChangeListener will send wrong value to client.<br/>
  227. #7720 TreeTable doesn't get refreshed if all entries are removed<br/>
  228. #7738 Slashes or backslahes in ApplicationResources URLs should not be encoded<br/>
  229. #7753 TreeTable gets into a state that causes internal error when getChildren throws an exception.<br/>
  230. #3710 Width is miscalculated for the footer layouts in forms of undefined size<br/>
  231. #7548 TestBench pressSpecialKey (arrows) doesn't work on Tree in IE6<br/>
  232. #7708 DragAndDropWrapper.setDescription("foo") does not work<br/>
  233. #7736 Logging level of SqlContainer is too high<br/>
  234. #7755 Debug window "highlight component" does not work with sub windows<br/>
  235. </p>
  236. <p>
  237. The <a href="http://dev.vaadin.com/query?status=closed&type=defect&milestone=Vaadin%20@version@">full
  238. details of the defects</a> can be found at dev.vaadin.com.
  239. </p>
  240. <h2 id="backwardsincompatibilities">Backwards incompatible
  241. changes in Vaadin @version-minor@</h2>
  242. <p>Table.ColumnGenerator.generateCell has been changed to return
  243. Object instead of Component to enable generation of plain text.</p>
  244. <p>Package names for SQLContainer, TreeTable and Chameleon Theme
  245. java files have been changed from com.vaadin.addons.* to com.vaadin.*</p>
  246. </p>
  247. <p>If you have been using SQLContainer, TreeTable or Chameleon
  248. Theme as add-ons, remove the add-on jars from the project.</p>
  249. <p>The DOM structure of Forms without descriptions has changed, which means
  250. that any TestBench scripts testing this kind of Form need to be updated.
  251. If your tests start failing, subtract one from the index in the test script,
  252. e.g. change
  253. <pre class="codeblock">VForm[0]/domChild[0]/domChild[3]</pre>
  254. into
  255. <pre class="codeblock">VForm[0]/domChild[0]/domChild[2]</pre>
  256. and your tests will pass again.</p>
  257. <h2 id="dependencies">Vaadin @version@ dependencies</h2>
  258. Vaadin uses GWT @gwt-version@ for widget set compilation. GWT can be
  259. downloaded from <a href="http://code.google.com/webtoolkit/">http://code.google.com/webtoolkit/</a>.
  260. GWT can also be automatically downloaded by the Vaadin Plug-in for
  261. Eclipse. Please note that GWT @gwt-version@ requires the <i>validation-api-1.0.0.GA.jar</i>
  262. and <i>validation-api-1.0.0.GA-sources.jar</i> files in addition to <i>gwt-dev.jar</i>
  263. and <i>gwt-user.jar</i> for widget set compilation.
  264. <h2 id="upgrading">Upgrading to Vaadin @version-minor@</h2>
  265. <p>
  266. When upgrading from an earlier Vaadin version, you must
  267. <ul>
  268. <li>Recompile your classes using the new Vaadin JAR. Binary
  269. compatibility is only guaranteed for maintenance releases of
  270. Vaadin.</li>
  271. <li>Recompile any add-ons you have created using the new Vaadin
  272. JAR.</li>
  273. <li>Recompile your widget set using the new Vaadin JAR and the
  274. newly compiled add-ons.</li>
  275. <li>If you have extracted a theme from the Vaadin JAR, you need
  276. to update it with the theme provided in the new Vaadin JAR.</li>
  277. </ul>
  278. </p>
  279. <p>Remember also to refresh the project in your IDE to ensure that
  280. the new version of everything is in use.</p>
  281. <p>Using the "?debug" URL parameter you can verify that the
  282. version of the servlet (JAR), the theme and the widgetset all match.</p>
  283. <p>
  284. <b>Eclipse</b> users should always check if there is a new version of
  285. the Eclipse Plug-in available. The Eclipse Plug-in can be used to
  286. update the Vaadin version in the project (Project properties &raquo;
  287. Vaadin).
  288. </p>
  289. <p>
  290. <b>Maven</b> users should update the Vaadin dependency version in the
  291. <tt>pom.xml</tt>
  292. unless it is defined as
  293. <tt>LATEST</tt>
  294. . You must also ensure that the GWT dependency uses the correct
  295. version and recompile your project and your widget set.
  296. </p>
  297. <b>Liferay and other portal</b> users must install the new
  298. vaadin-@version@.jar as
  299. <t>ROOT/WEB-INF/lib/vaadin.jar</b> in the portal. Additionally the
  300. contents of the <tt>VAADIN</tt> folder from the JAR must be extracted
  301. to the <tt>ROOT/html/VAADIN</tt> directory in the Liferay
  302. installation. If your portal uses custom widgets, install the latest
  303. version of <a
  304. href="http://vaadin.com/directory#addon/vaadin-control-panel-for-liferay">Vaadin
  305. Control Panel for Liferay</a> for easy widget set compilation.
  306. <h3>Upgrading from Vaadin 6.5 or earlier</h3>
  307. If you are upgrading from 6.5.x or earlier, notice that Vaadin
  308. @version@ uses GWT @gwt-version@. Upgrade your dependencies as
  309. necessary. See <a href="#dependencies">the dependencies</a> section
  310. for more information.
  311. </p>
  312. <h3 id="widgetupgrade">Upgrading from Vaadin 6.1 or earlier</h3>
  313. <p>
  314. The way widget sets are created was completely changed in Vaadin 6.2.
  315. Existing projects, where custom widgets (a custom widget set) are
  316. used, must be migrated when upgrading to Vaadin 6.2 or later.
  317. Projects where the default widget set is used do not need migration.
  318. See <a
  319. href="http://vaadin.com/download/release/6.2/6.2.0/release-notes.html">Vaadin
  320. 6.2.0 release notes</a> for more details.
  321. </p>
  322. <h4 id="gae">Notes and Limitations for Google App Engine</h4>
  323. <p>The following instructions and limitations apply when you run a
  324. Vaadin application under the Google App Engine.</p>
  325. <ul>
  326. <li><p>
  327. Applications must use <b>GAEApplicationServlet</b> instead of <b>ApplicationServlet</b>
  328. in
  329. <tt>web.xml</tt>
  330. .
  331. </p>
  332. </li>
  333. <li><p>
  334. Session support must be enabled in
  335. <tt>appengine-web.xml</tt>
  336. :
  337. </p> <pre> &lt;sessions-enabled&gt;true&lt;/sessions-enabled&gt;</pre>
  338. </li>
  339. <li><p>Avoid using the session for storage, usual App Engine
  340. limitations apply (no synchronization, i.e, unreliable).</p>
  341. </li>
  342. <li><p>
  343. Vaadin uses memcache for mutex, the key is of the form
  344. <tt>_vmutex&lt;sessionid&gt;</tt>
  345. .
  346. </p>
  347. </li>
  348. <li><p>
  349. The Vaadin <b>WebApplicationContext</b> class is serialized
  350. separately into memcache and datastore; the memcache key is
  351. <tt>_vac&lt;sessionid&gt;</tt>
  352. and the datastore entity kind is
  353. <tt>_vac</tt>
  354. with identifiers of the type
  355. <tt>_vac&lt;sessionid&gt;</tt>
  356. .
  357. </p>
  358. </li>
  359. <li><p>
  360. DO NOT update application state when serving an <b>ApplicationResource</b>
  361. (e.g <b>ClassResource</b>.<i>getStream()</i>).
  362. </p>
  363. </li>
  364. <li><p>
  365. AVOID (or be very careful when) updating application state in a <b>TransactionListener</b>
  366. or a <b>HttpServletRequestListener</b> - they are called even when
  367. the application is not locked and won't be serialized (e.g <b>ApplicationResource</b>),
  368. and changes can thus go missing (it should be safe to update things
  369. that can be safely discarded later - i.e valid only for the current
  370. request)
  371. </p>
  372. </li>
  373. <li><p>The application remains locked during uploads - a
  374. progress bar is not possible</p>
  375. </li>
  376. </ul>
  377. <p>
  378. For other known problems, see open tickets at developer site <a
  379. href="http://dev.vaadin.com/">dev.vaadin.com</a>.
  380. </p>
  381. <h2 id="supportedversions">Supported technologies</h2>
  382. <p>
  383. Vaadin is based on <b>Java 5</b> and it is also compatible with most
  384. other operating system supporting Java 5 or newer. Vaadin is
  385. supported on the following <b>operating systems</b>:
  386. </p>
  387. <ul>
  388. <li>Windows (see the <a href="#knownissues">Zip installation
  389. notice above</a>)</li>
  390. <li>Linux</li>
  391. <li>Mac OS X</li>
  392. </ul>
  393. <p>
  394. Vaadin requires <b>Java Servlet API 2.3</b> but also supports later
  395. versions and should work with any Java application server that
  396. conforms to the standard. The following <b>application servers</b>
  397. are supported:
  398. </p>
  399. <ul>
  400. <li>Apache Tomcat, version 4.1-7.0</li>
  401. <li>Oracle WebLogic&reg; Server, version 9.2-10.3.5(11gR1)</li>
  402. <li>IBM WebSphere&reg; Application Server, version 6.1-8.0</li>
  403. <li>JBoss Application Server, 3.2.8-7.0</li>
  404. <li>Jetty, version 5.0-7.0</li>
  405. <li>Glassfish, version 2.0-3.1</li>
  406. </ul>
  407. <p>
  408. Vaadin supports JSR-168 and JSR-286 Portlet specifications. All
  409. portals that implement either of the portlet specifications should
  410. work. The following <b>portals</b> are supported:
  411. </p>
  412. <ul>
  413. <li>Liferay Portal 5.2-6.0</li>
  414. <li>GateIn Portal 3.1</li>
  415. <li>eXo Platform 3</li>
  416. <li>Oracle WebLogic&reg; Portal 10gR3</li>
  417. <li>WebSphere Portal 6.1-7.0</li>
  418. </ul>
  419. <p>
  420. Vaadin also supports <b>Google App Engine</b>.
  421. </p>
  422. <p>
  423. Vaadin supports the following <b>browsers</b>:
  424. </p>
  425. <ul>
  426. <li>Mozilla Firefox 3-9</li>
  427. <li>Internet Explorer 6-9</li>
  428. <li>Safari 4-5</li>
  429. <li>Opera 10-11</li>
  430. <li>Google Chrome 13-16</li>
  431. </ul>
  432. <p>
  433. Vaadin supports the built-in browsers in the following <b>mobile operating
  434. systems</b>:
  435. </p>
  436. <ul>
  437. <li>iOS 4-5</li>
  438. <li>Android 2-3</li>
  439. </ul>
  440. <h2 id="vaadinontheweb">Vaadin on the Web</h2>
  441. <p>
  442. <ul>
  443. <li><a href="http://vaadin.com">vaadin.com - The developer
  444. portal containing everything you need to know about Vaadin</a>
  445. </li>
  446. <li><a href="http://demo.vaadin.com">demo.vaadin.com - A
  447. collection of demos for Vaadin</a></li>
  448. <li><a href="http://vaadin.com/learn">vaadin.com/learn -
  449. Getting started with Vaadin</a></li>
  450. <li><a href="http://vaadin.com/forum">vaadin.com/forum -
  451. Forums for Vaadin related discussions
  452. </li>
  453. <li><a href="http://vaadin.com/book">vaadin.com/book - Book
  454. of Vaadin - everything you need to know about Vaadin
  455. </li>
  456. <li><a href="http://vaadin.com/api">vaadin.com/api - Online
  457. javadocs
  458. </li>
  459. <li><a href="http://vaadin.com/directory">vaadin.com/directory
  460. - Add-ons for Vaadin
  461. </li>
  462. <li><a href="http://dev.vaadin.com">dev.vaadin.com - Bug
  463. tracker
  464. </li>
  465. <li><a
  466. href="http://dev.vaadin.com/svn/versions/@version-minor@">dev.vaadin.com/svn/versions/@version-minor@
  467. - Source code
  468. </li>
  469. <li><a href="http://vaadin.com/pro-account">vaadin.com/pro-account
  470. - Commercial support and tools for Vaadin development
  471. </li>
  472. <li><a href="http://vaadin.com/services">vaadin.com/services
  473. - Expert services for Vaadin
  474. </li>
  475. <li><a href="http://vaadin.com/company">vaadin.com/company
  476. - Information about the company behind Vaadin
  477. </li>
  478. </ul>
  479. </p>
  480. </div>
  481. <!-- /content-->
  482. <div id="footer">
  483. <span class="slogan"><strong>vaadin <em>}></em> </strong>
  484. thinking of U and I<span> <a href="#top">&uarr; Back to
  485. top</a>
  486. </div>
  487. <!-- /footer -->
  488. </body>
  489. </html>