source: trunk/doc/src/docbook/appendix/update_warnings.xml @ 7614

Last change on this file since 7614 was 7614, checked in by Nicklas Nordborg, 3 years ago

References #2154: Test BASE with PostgreSQL 11

Updated documentation to recommend PostgreSQL 11 as the database to use. Re-ordered several sections so that PostgreSQL comes before MySQL.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Id
File size: 19.7 KB
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE appendix PUBLIC
3    "-//Dawid Weiss//DTD DocBook V3.1-Based Extension for XML and graphics inclusion//EN"
4    "../../../../lib/docbook/preprocess/dweiss-docbook-extensions.dtd">
6  $Id: update_warnings.xml 7614 2019-03-01 12:04:36Z nicklas $
8  Copyright (C) 2007 Peter Johansson, Nicklas Nordborg
10  This file is part of BASE - BioArray Software Environment.
11  Available at
13  BASE is free software; you can redistribute it and/or
14  modify it under the terms of the GNU General Public License
15  as published by the Free Software Foundation; either version 3
16  of the License, or (at your option) any later version.
18  BASE is distributed in the hope that it will be useful,
19  but WITHOUT ANY WARRANTY; without even the implied warranty of
21  GNU General Public License for more details.
23  You should have received a copy of the GNU General Public License
24  along with BASE. If not, see <>.
27<appendix id="appendix.update_warnings">
28  <?dbhtml filename="updatewarnings.html" ?>
29  <title>Things to consider when updating an existing BASE installation</title>
30  <para>
31    This document is a list of things that may have to be considered
32    when updating a BASE installation to a newer version. The <xref 
33    linkend="installation.upgrade" /> section only include the most
34    recent information that is needed for updating the previous BASE version
35    to the current version.
36  </para>
38  <sect1 id="appendix.update_warnings.3.15">
39    <title>BASE 3.15</title>
41    <bridgehead>Consider upgrading to Tomcat 9 and PostgreSQL 11</bridgehead>
42    <para>
43      We have started to test BASE with Tomcat 9 and PostgreSQL 11 and we have
44      not found any problems  so far. For new installations we recommend that Tomcat 9
45      and PostgreSQL 11 is used. Official support for Tomcat 8 and PostgreSQL 9 will be
46      dropped in a future BASE version. For existing installations our recommendation
47      is to start planning for an upgrade to Tomcat 9 and PostgreSQL 11.
48    </para>
50    <bridgehead>Secondary storage support has been removed</bridgehead>
51    <para>
52      The <guilabel>Secondary storage</guilabel> feature has been removed.
53      Files that are located in the secondary storage will be marked as offline
54      by the upgrade script. The recommendation is to replace this feature with
55      an external files solution instead.
56    </para>
58    <bridgehead>Customizations made in the global web.xml file</bridgehead>
59    <para>
60      In the configuration directory for Tomcat there is a <filename>web.xml</filename>
61      file that define global options for all web applications. The settings in this file
62      can be overridden per web application in the <filename>WEB-INF/classes/web.xml</filename>.
63      BASE 3.15 re-defines the <code>jsp</code> <sgmltag class="starttag">servlet</sgmltag>
64      definition to make sure that JSP files are compiled with proper settings. Changes that
65      have been made to the global <filename>web.xml</filename> file for the <code>jsp</code>
66      <sgmltag class="starttag">servlet</sgmltag> must be moved or copied to the
67      <filename>web.xml</filename> file for the BASE web application.
68    </para>
70  </sect1>
72  <sect1 id="appendix.update_warnings.3.14">
73    <title>BASE 3.14</title>
75    <bridgehead>The db.driver setting is no longer used</bridgehead>
76    <para>
77      The JDBC driver to use is now found automatically based on
78      the <constant>db.url</constant> setting in the <filename>base.config</filename>
79      file. The <constant>db.driver</constant> setting can be removed.
80    </para>
82    <bridgehead>The (very) old Authenticator API has been removed</bridgehead>
83    <para>
84      The <code>net.sf.basedb.core.authentication.Authenticator</code>
85      interface and other related code that was deprecated in BASE 3.3
86      has been removed. Systems that still use old authentication code
87      need to replace this with a newer version before updating.
88    </para>
90    <bridgehead>Changes to the authentication system</bridgehead>
91    <para>
92      The authentication system has been updated to make it easier to
93      install more than one external authentication manager. The changes
94      are backwards compatible and existing authentication managers should
95      still work as before as long as they are the only ones installed.
96      However, the existing authentication managers will probably not work
97      well if more than one is installed since they lack some features that
98      are neccessary in order to cooperate with other managers. Before installing
99      more than one authentication manager it is recommended that they are
100      updated to newer versions.
101    </para>
103    <para>
104      Newer authentication managers typically no longer provide support for
105      password authentication. If the intention is that some users still should be
106      able to login with username+password, it is recommended that the
107      <guilabel>Password login form</guilabel> is enabled. Go to
108      <menuchoice>
109        <guimenu>Administrate</guimenu>
110        <guisubmenu>Plug-ins &amp; extensions</guisubmenu>
111        <guimenuitem>Overview</guimenuitem>
112      </menuchoice> and locate the <guilabel>Login form customization</guilabel>
113      extension point to find it.
114    </para>
116  </sect1>
118  <sect1 id="appendix.update_warnings.3.11.1">
119    <title>BASE 3.11.1</title>
121    <bridgehead>Free wells on bioplates</bridgehead>
122    <para>
123      A bug that affected the free wells information on bioplates
124      has been fixed. Existing bioplates may have incorrect number of
125      free wells and can be fixed by running a special script.
127      After installing the BASE 3.11.1 update, change directory to
128      <filename class="directory">&lt;base-dir&gt;/bin/</filename> 
129      and issue
131./ free_wells -u &lt;root login&gt; -p &lt;root pwd&gt;
133    </para>
135  </sect1>
137  <sect1 id="appendix.update_warnings.3.10">
138    <title>BASE 3.10</title>
140    <bridgehead>Changed permissions for annotating items</bridgehead>
141    <para>
142      Before BASE 3.10 a user was able to create/change/delete annotations on
143      an item if the user has <code>WRITE</code> permission on the item and
144      <code>READ</code> permission on the  annotation type.
145      In BASE 3.10 several changes has been made:
146    </para>
148    <itemizedlist>
149      <listitem>
150        <para>
151          <code>USE</code> permission is required on the annotation type to be able
152          to create/change/delete annotations of that type. This may cause user to no
153          longer be able to annotate certain items, unless their permissions
154          are upgraded to <code>USE</code>. Users with <code>READ</code> permission
155          can only read the annotation values.
156        </para>
157      </listitem>
159      <listitem>
160        <para>
161          A new permission level, <code>ANNOTATE</code>, has been introduced.
162          In the permission hierarchy this sits between the <code>READ</code> 
163          and <code>WRITE</code> permission and can be used to give users
164          permissions to manage annotations but not other properties of an item.
165          All users with <code>WRITE</code> permission automatically get
166          <code>ANNOTATE</code> permission so this change should not affect current
167          users.
168        </para>
169      </listitem>
170    </itemizedlist>
172  </sect1>
175  <sect1 id="appendix.update_warnings.3.9">
176    <title>BASE 3.9</title>
178    <bridgehead>Incompatible API change Application API</bridgehead>
179    <para>
180      The <classname docapi="net.sf.basedb.core">Application.getSessionControl()</classname> 
181      method for getting access to an existing session has been deprecated. A new
182      version has been implemented that require that an <emphasis>external client id</emphasis>
183      is specified. Extensions and other client application may stop working unless
184      they are updated. See alos <xref linkend="appendix.incompatible.session-control"/>.
185    </para>
187  </sect1>
190  <sect1 id="appendix.update_warnings.3.8">
191    <title>BASE 3.8</title>
193    <bridgehead> is no longer needed</bridgehead>
194    <para>
195      It is no longer needed to run the <filename></filename>
196      script as part of the upgrade or installation procedure. The funtionality
197      has been integrated into the regular <filename></filename>
198      scripts.
199    </para>
201    <bridgehead>Incompatible API change in ServiceSessionControl</bridgehead>
202    <para>
203      The <classname docapi="net.sf.basedb.core">ServiceSessionControl</classname> API for
204      configuration and building Hibernate <classname>SessionFactory</classname>
205      instances has been changed due the Hibernate 5 upgrade. This change affects
206      extensions that use the API for storing their own data inside the BASE database.
207      Extensions that use this API must be updated or they will not work with BASE 3.8.
208    </para>
210  </sect1>
212  <sect1 id="appendix.update_warnings.3.6">
213    <title>BASE 3.6</title>
215    <bridgehead>Update to Java 8</bridgehead>
216    <para>
217      BASE will no longer run with Java 7. Unless you have already
218      updated to Java 8 you should do so before updating to BASE 3.6.
219      Note that BASE 3.5 works with both Java 7 and 8 so the Java
220      update can be made ahead of time.
221    </para>
223    <bridgehead>Update to Tomcat 8</bridgehead>
224    <para>
225      Tomcat 7 is no longer supported. We recommend updating
226      to Tomcat 8 before updating to BASE 3.6. Note that
227      BASE 3.5 works with both Tomcat 7 and 8 so the Tomcat
228      update can be made ahead of time.
229    </para>
231  </sect1>
233  <sect1 id="appendix.update_warnings.3.5">
234    <title>BASE 3.5</title>
236    <bridgehead>Biomaterial lists have been replaced with item lists</bridgehead>
237    <para>
238      This is a major change that has caused a binary incompatibility in the BASE core
239      API. If you depend on custom extensions or plug-ins that use the biomaterial list
240      API this code must be updated before updating to BASE 3.5. Read more
241      about the incompatibilities in <xref linkend="appendix.incompatible.itemlists" />.
242    </para>
244    <bridgehead>Consider updating to Java 8</bridgehead>
245    <para>
246      Oracle is no longer supporting Java 1.7. We are recommending Java 8
247      for running BASE. Java 7 is still supported, but will be removed
248      in the next version (BASE 3.6).
249    </para>
251    <bridgehead>Consider updating to Tomcat 8</bridgehead>
252    <para>
253      We have now tested BASE with Tomcat 8 and it seems to work without
254      any problems. Support for Tomcat 7 will be removed in the next
255      version (BASE 3.6).
256    </para>
258  </sect1>
260  <sect1 id="appendix.update_warnings.3.4">
261    <title>BASE 3.4</title>
263    <bridgehead>Updating from BASE 2.17 is no longer possible</bridgehead>
264    <para>
265      If you are still running an BASE 2.17 (or earlier) BASE version
266      and want to update to BASE 3.4 you must first update to BASE 3.3
267      or earlier.
268    </para>
270    <bridgehead>Web services support has been removed</bridgehead>
271    <para>
272      As announced earlier web services support has been removed in BASE 3.4.
273      If anyone require web services support or similar we recommend using the BASE
274      extensions mechanism to implement exactly what is needed for that project and
275      we also beleive that a simplier API such as JSON is preferable.
276    </para>
278    <bridgehead>PostgreSQL users should change db.dialect</bridgehead>
279    <para>
280      In <filename>base.config</filename> there is a <constant>db.config</constant>
281      setting. Servers running with PostgreSQL as the database should change the
282      dialect to <classname>org.hibernate.dialect.PostgreSQL9Dialect</classname>
283      since the <classname>org.hibernate.dialect.PostgreSQLDialect</classname> has
284      been deprecated.
285    </para>
287  </sect1>
289  <sect1 id="appendix.update_warnings.3.3.3">
290    <title>BASE 3.3.3</title>
292    <bridgehead>Remaining quantity</bridgehead>
293    <para>
294      A bug that affected remaining quantity calculations for
295      biomaterial item has been fixed. Existing items may have been
296      saved with incorrect remaining quantity and must be fixed.
297      After installing the BASE 3.3.3 update, the existing
298      remaining quantity values are fix by running a special script.
299      Change directory to <filename class="directory">&lt;base-dir&gt;/bin/</filename> 
300      and issue
302./ remaining_quantity -u &lt;root login&gt; -p &lt;root pwd&gt;
304    </para>
306  </sect1>
308  <sect1 id="appendix.update_warnings.3.3">
309    <title>BASE 3.3</title>
311    <bridgehead>Content security policy</bridgehead>
312    <para>
313      The BASE web client now set a rather strict <emphasis>Content
314      Security Policy</emphasis> that prevent browsers from executing
315      code (including JavaScript) that is considered unsafe. Some extensions
316      may cease to work due to this. Go to
317      <menuchoice>
318        <guimenu>Administrate</guimenu>
319        <guimenuitem>Plug-ins &amp; extensions</guimenuitem>
320        <guimenuitem>Overview</guimenuitem>
321      </menuchoice> 
322      (after upgrading) to see if there are any warnings about this.
323      Read more in <xref linkend="appendix.web.xml.csp-filter" />
324      for information about how to relax the policy.
325    </para>
327    <bridgehead>Java SE 7 is required</bridgehead>
328    <para>
329      BASE now require <ulink url="">Java SE 7</ulink>.
330      Servers with Java SE 6 or older should be updated to Java SE 7 before installing BASE 3.3.
331    </para>
333    <bridgehead>Tomcat 7 is required</bridgehead>
334    <para>
335      BASE now require <ulink url="">Tomcat 7</ulink>.
336      Servers with Tomcat 6 or older should be updated to Tomcat 7 before installing BASE 3.3.
337    </para>
339    <bridgehead>Web services support has been deprecated</bridgehead>
340    <para>
341      The current implementation is most likely not very useful and has limited
342      support for accessing information in BASE. Therefore it has been decided to
343      remove the web services support in BASE 3.4. If anyone require web services
344      support or similar we recommend using the BASE extensions mechanism to implement
345      exactly what is needed for that project and we also beleive that a simplier
346      API such as JSON is preferable.
347    </para>
349  </sect1>
351  <sect1 id="appendix.update_warnings.3.2">
352    <title>BASE 3.2</title>
354    <bridgehead>Custom logging implementations must be updated</bridgehead>
355    <para>
356      The plug-in functionality for custom logging has been converted
357      to an extension point. The default database logging will continue
358      to function, but custom logging implementations must be converted
359      to an extension. See <xref linkend="appendix.incompatible.3.2" /> and
360      <xref linkend="extensions_developer.logging" /> for more information.
361    </para>
363  </sect1>
365  <sect1 id="appendix.update_warnings.3.0">
366    <title>BASE 3.0</title>
368    <note>
369      <title>Upgrading to BASE 3 is possible from BASE 2.17 only</title>
370      <para>
371        If your BASE is an older 2.x version you'll need to upgrade
372        to BASE 2.17 before an upgrade to BASE 3 is possible. Also note
373        that since BASE 3.3 we no longer actively test the upgrade
374        script. If upgrading doesn't work for a particular BASE 3.x version
375        (where x &gt; 2) please try to upgrade to BASE 3.2 first and then
376        from BASE 3.2 to BASE 3.x.
377      </para>
378    </note>
380    <warning>
381      <title>Make sure that you have a recent backup of the BASE 2.17 database</title>
382      <para>
383        Before starting the upgrade from BASE 2.17 to BASE 3 ensure that you
384        have a recent backup. If the upgrade fails you must restore the
385        2.17 database before you can try again. The upgrade only changes the
386        'static' part of the database, so you do not have to restore the
387        'dynamic' part or the uploaded files.
388      </para>
389    </warning>
391    <bridgehead>Old plug-ins and extensions may not work</bridgehead>
392    <para>
393      The BASE API has changed in several places and it is not certain that
394      plug-ins and extensions developed for BASE 2 works with BASE 3. The
395      upgrade will disable all plug-ins and extensions that are currently installed.
396      Before you upgrade we recommend that you go through all (external) plug-ins
397      and check if there is an updated version. The recommended approach
398      is to first upgrade BASE and then install updated versions of plug-ins
399      and extensions following the instructions in <xref 
400      linkend="plugins.installation"/>.
401    </para>
403    <para>
404      If there is no updated version of a specific plug-in you may try
405      a manual re-installation of the old plug-ins. Follow the instructions
406      in <xref linkend="plugins.installation.manual" />.
407    </para>
409    <para>
410      If there is no updated version and the old plug-in doesn't work with
411      BASE 3, you'll need to decide if you really need the plug-in or if
412      the upgrade should wait until a new version of the plug-in
413      has been released.
414    </para>
416    <bridgehead>Batch item importer changes</bridgehead>
417    <para>
418      There are several changes to batch item importers that may affect
419      current workflows and file templates used for importing data.
420    </para>
422    <itemizedlist>
423      <listitem>
424        <para>
425          Sample and extract importers: The 'pooled' column is no longer used.
426          Instead a 'parent type' column should be used with
427          the parent type as a string value (BIOSOURCE, SAMPLE or EXTRACT).
428          Existing importer configurations and file templates may have to be
429          updated. If no parent type is specified the sample importer assumes
430          a biosource and the extract importer assumes a sample.
431        </para>
432      </listitem>
433      <listitem>
434        <para>
435          Labeled extract importer: This has been deprecated and it is recommended
436          that the <emphasis>Extract importer</emphasis> is used instead.
437          We recommend that existing labeled extract importer configurations are re-created as extract
438          importer configurations. The old labeled extract importer can be
439          re-enabled, but note that the existing configurations still need
440          to be changed due to the 'pooled' column is no longer used.
441        </para>
442      </listitem>
443      <listitem>
444        <para>
445          Hybridization importer: This has been deprecated and we recommend
446          that the <emphasis>Physical bioassay importer</emphasis> is used instead.
447          Existing hybridization importer configurations should be re-created as
448          physical bioassay importer configurations.
449        </para>
450      </listitem>
451      <listitem>
452        <para>
453          Scan importer: This has been deprecated and it is recommended
454          that the <emphasis>Derived bioassay importer</emphasis> is used instead.
455          Existing scan importer configurations should be re-created as derived
456          bioassay importer configurations.
457        </para>
458      </listitem>
459    </itemizedlist>
461    <note>
462      The deprecated importers can be re-enabled by an administrator from the
463      <menuchoice>
464        <guimenu>Administrate</guimenu>
465        <guisubmenu>Plug-ins &amp; extensions</guisubmenu>
466        <guimenuitem>Overview</guimenuitem>
467      </menuchoice> page, but they are
468      lacking features that are available in the new importers so this is not
469      something that we recommend.
470    </note>
472    <bridgehead>MySQL and PostgreSQL versions</bridgehead>
473    <para>
474      We have only tested BASE 3 with PostgreSQL 9.1. If anyone
475      experiences any issues with earlier PostgreSQL versions, we
476      recommend an upgrade to PostgreSQL 9.1. This is a change since
477      BASE 2 which was tested with PostgreSQL 8.4. Even though BASE 3
478      may work with older PostgreSQL versions, we don't have the resources
479      needed to test and provide support for it.
480    </para>
482    <para>
483      We have only tested BASE 3 with MySQL 5.1 (no change since BASE 2).
484      If anyone experiences any issues with earlier (or later) MySQL versions,
485      we recommend an upgrade/downgrade to MySQL 5.1.
486    </para>
488  </sect1>
490  <sect1 id="appendix.update_warnings.2.x">
491    <title>All BASE 2.x releases</title>
493    <para>
494      We only support updating to BASE 3 from BASE 2.17. If you have an older BASE
495      version and wish to update to BASE 3, you first have to upgrade to BASE 2.17.
496      BASE 2.17 can be downloaded from the <ulink url="">BASE
497      download page</ulink>. Documentation for BASE 2.17 is available as part of the
498      download and at <ulink url=""
499      ></ulink>.
500    </para>
502  </sect1>
Note: See TracBrowser for help on using the repository browser.