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

Last change on this file since 7719 was 7719, checked in by Nicklas Nordborg, 4 years ago

References #2139: Switch to Java 11 (or later)

Updated the documentation.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Id
File size: 21.5 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 7719 2019-05-22 11:11:19Z 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.16">
39    <title>BASE 3.16</title>
41    <bridgehead>Java 11 or later is now required (OpenJDK)</bridgehead>
42    <para>
43      Starting with this release, Java 11 is required for running BASE.
44      BASE 3.15 was the last BASE version with support for Java 8.
45      Note that Oracle no longer provide a free JDK or JRE.
46      Instead, OpenJDK has to be used, which can be downloaded from
47      <ulink url="" />
48    </para>
49  </sect1>
51  <sect1 id="appendix.update_warnings.3.15">
52    <title>BASE 3.15</title>
54    <bridgehead>Consider upgrading to Java 11 (OpenJDK)</bridgehead>
55    <para>
56      The next BASE release, BASE 3.16, will only support Java 11 or later. BASE 3.15 is
57      the last BASE version that supports Java 8. Our recommendation is to upgrade to
58      Java 11 as soon as possible. Note that Oracle no longer provide a free JDK or JRE.
59      Instead, OpenJDK has to be used, which can be downloaded from
60      <ulink url="" />
61    </para>
63    <para>
64      If you experience any problems with BASE 3.15 and Java 8
65      you could try removing the listed files from the <filename>www/WEB-INF/lib</filename>
66      directory and then restart Tomcat.
67    </para>
69    <itemizedlist>
70      <listitem><filename>java.activation-api-1.2.0.jar</filename></listitem>
71      <listitem><filename>jaxb-api-2.3.1.jar</filename></listitem>
72      <listitem><filename>jaxb-core-</filename></listitem>
73      <listitem><filename>jaxb-impl-2.3.1.jar</filename></listitem>
74    </itemizedlist>
76    <bridgehead>Consider upgrading to Tomcat 9 and PostgreSQL 11</bridgehead>
77    <para>
78      We have started to test BASE with Tomcat 9 and PostgreSQL 11 and we have
79      not found any problems  so far. For new installations we recommend that Tomcat 9
80      and PostgreSQL 11 is used. Official support for Tomcat 8 and PostgreSQL 9 will be
81      dropped in a future BASE version. For existing installations our recommendation
82      is to start planning for an upgrade to Tomcat 9 and PostgreSQL 11.
83    </para>
85    <bridgehead>Secondary storage support has been removed</bridgehead>
86    <para>
87      The <guilabel>Secondary storage</guilabel> feature has been removed.
88      Files that are located in the secondary storage will be marked as offline
89      by the upgrade script. The recommendation is to replace this feature with
90      an external files solution instead.
91    </para>
93    <bridgehead>Spot images support has been removed</bridgehead>
94    <para>
95      It is no longer possible to create new spot images or view existing
96      spot images via the BASE web client. Existing source image files and
97      zip archives with generated spot images have not been removed.
98    </para>
100    <bridgehead>Customizations made in Tomcat's global web.xml file</bridgehead>
101    <para>
102      In the configuration directory for Tomcat there is a <filename>web.xml</filename>
103      file that define global options for all web applications. The settings in this file
104      can be overridden per web application in the <filename>WEB-INF/classes/web.xml</filename>.
105      BASE 3.15 re-defines the <code>jsp</code> <sgmltag class="starttag">servlet</sgmltag>
106      definition to make sure that JSP files are compiled with proper settings. Changes that
107      have been made to the global <filename>web.xml</filename> file for the <code>jsp</code>
108      <sgmltag class="starttag">servlet</sgmltag> must be moved or copied to the
109      <filename>web.xml</filename> file for the BASE web application.
110    </para>
112  </sect1>
114  <sect1 id="appendix.update_warnings.3.14">
115    <title>BASE 3.14</title>
117    <bridgehead>The db.driver setting is no longer used</bridgehead>
118    <para>
119      The JDBC driver to use is now found automatically based on
120      the <constant>db.url</constant> setting in the <filename>base.config</filename>
121      file. The <constant>db.driver</constant> setting can be removed.
122    </para>
124    <bridgehead>The (very) old Authenticator API has been removed</bridgehead>
125    <para>
126      The <code>net.sf.basedb.core.authentication.Authenticator</code>
127      interface and other related code that was deprecated in BASE 3.3
128      has been removed. Systems that still use old authentication code
129      need to replace this with a newer version before updating.
130    </para>
132    <bridgehead>Changes to the authentication system</bridgehead>
133    <para>
134      The authentication system has been updated to make it easier to
135      install more than one external authentication manager. The changes
136      are backwards compatible and existing authentication managers should
137      still work as before as long as they are the only ones installed.
138      However, the existing authentication managers will probably not work
139      well if more than one is installed since they lack some features that
140      are neccessary in order to cooperate with other managers. Before installing
141      more than one authentication manager it is recommended that they are
142      updated to newer versions.
143    </para>
145    <para>
146      Newer authentication managers typically no longer provide support for
147      password authentication. If the intention is that some users still should be
148      able to login with username+password, it is recommended that the
149      <guilabel>Password login form</guilabel> is enabled. Go to
150      <menuchoice>
151        <guimenu>Administrate</guimenu>
152        <guisubmenu>Plug-ins &amp; extensions</guisubmenu>
153        <guimenuitem>Overview</guimenuitem>
154      </menuchoice> and locate the <guilabel>Login form customization</guilabel>
155      extension point to find it.
156    </para>
158  </sect1>
160  <sect1 id="appendix.update_warnings.3.11.1">
161    <title>BASE 3.11.1</title>
163    <bridgehead>Free wells on bioplates</bridgehead>
164    <para>
165      A bug that affected the free wells information on bioplates
166      has been fixed. Existing bioplates may have incorrect number of
167      free wells and can be fixed by running a special script.
169      After installing the BASE 3.11.1 update, change directory to
170      <filename class="directory">&lt;base-dir&gt;/bin/</filename> 
171      and issue
173./ free_wells -u &lt;root login&gt; -p &lt;root pwd&gt;
175    </para>
177  </sect1>
179  <sect1 id="appendix.update_warnings.3.10">
180    <title>BASE 3.10</title>
182    <bridgehead>Changed permissions for annotating items</bridgehead>
183    <para>
184      Before BASE 3.10 a user was able to create/change/delete annotations on
185      an item if the user has <code>WRITE</code> permission on the item and
186      <code>READ</code> permission on the  annotation type.
187      In BASE 3.10 several changes has been made:
188    </para>
190    <itemizedlist>
191      <listitem>
192        <para>
193          <code>USE</code> permission is required on the annotation type to be able
194          to create/change/delete annotations of that type. This may cause user to no
195          longer be able to annotate certain items, unless their permissions
196          are upgraded to <code>USE</code>. Users with <code>READ</code> permission
197          can only read the annotation values.
198        </para>
199      </listitem>
201      <listitem>
202        <para>
203          A new permission level, <code>ANNOTATE</code>, has been introduced.
204          In the permission hierarchy this sits between the <code>READ</code> 
205          and <code>WRITE</code> permission and can be used to give users
206          permissions to manage annotations but not other properties of an item.
207          All users with <code>WRITE</code> permission automatically get
208          <code>ANNOTATE</code> permission so this change should not affect current
209          users.
210        </para>
211      </listitem>
212    </itemizedlist>
214  </sect1>
217  <sect1 id="appendix.update_warnings.3.9">
218    <title>BASE 3.9</title>
220    <bridgehead>Incompatible API change Application API</bridgehead>
221    <para>
222      The <classname docapi="net.sf.basedb.core">Application.getSessionControl()</classname> 
223      method for getting access to an existing session has been deprecated. A new
224      version has been implemented that require that an <emphasis>external client id</emphasis>
225      is specified. Extensions and other client application may stop working unless
226      they are updated. See alos <xref linkend="appendix.incompatible.session-control"/>.
227    </para>
229  </sect1>
232  <sect1 id="appendix.update_warnings.3.8">
233    <title>BASE 3.8</title>
235    <bridgehead> is no longer needed</bridgehead>
236    <para>
237      It is no longer needed to run the <filename></filename>
238      script as part of the upgrade or installation procedure. The funtionality
239      has been integrated into the regular <filename></filename>
240      scripts.
241    </para>
243    <bridgehead>Incompatible API change in ServiceSessionControl</bridgehead>
244    <para>
245      The <classname docapi="net.sf.basedb.core">ServiceSessionControl</classname> API for
246      configuration and building Hibernate <classname>SessionFactory</classname>
247      instances has been changed due the Hibernate 5 upgrade. This change affects
248      extensions that use the API for storing their own data inside the BASE database.
249      Extensions that use this API must be updated or they will not work with BASE 3.8.
250    </para>
252  </sect1>
254  <sect1 id="appendix.update_warnings.3.6">
255    <title>BASE 3.6</title>
257    <bridgehead>Update to Java 8</bridgehead>
258    <para>
259      BASE will no longer run with Java 7. Unless you have already
260      updated to Java 8 you should do so before updating to BASE 3.6.
261      Note that BASE 3.5 works with both Java 7 and 8 so the Java
262      update can be made ahead of time.
263    </para>
265    <bridgehead>Update to Tomcat 8</bridgehead>
266    <para>
267      Tomcat 7 is no longer supported. We recommend updating
268      to Tomcat 8 before updating to BASE 3.6. Note that
269      BASE 3.5 works with both Tomcat 7 and 8 so the Tomcat
270      update can be made ahead of time.
271    </para>
273  </sect1>
275  <sect1 id="appendix.update_warnings.3.5">
276    <title>BASE 3.5</title>
278    <bridgehead>Biomaterial lists have been replaced with item lists</bridgehead>
279    <para>
280      This is a major change that has caused a binary incompatibility in the BASE core
281      API. If you depend on custom extensions or plug-ins that use the biomaterial list
282      API this code must be updated before updating to BASE 3.5. Read more
283      about the incompatibilities in <xref linkend="appendix.incompatible.itemlists" />.
284    </para>
286    <bridgehead>Consider updating to Java 8</bridgehead>
287    <para>
288      Oracle is no longer supporting Java 1.7. We are recommending Java 8
289      for running BASE. Java 7 is still supported, but will be removed
290      in the next version (BASE 3.6).
291    </para>
293    <bridgehead>Consider updating to Tomcat 8</bridgehead>
294    <para>
295      We have now tested BASE with Tomcat 8 and it seems to work without
296      any problems. Support for Tomcat 7 will be removed in the next
297      version (BASE 3.6).
298    </para>
300  </sect1>
302  <sect1 id="appendix.update_warnings.3.4">
303    <title>BASE 3.4</title>
305    <bridgehead>Updating from BASE 2.17 is no longer possible</bridgehead>
306    <para>
307      If you are still running an BASE 2.17 (or earlier) BASE version
308      and want to update to BASE 3.4 you must first update to BASE 3.3
309      or earlier.
310    </para>
312    <bridgehead>Web services support has been removed</bridgehead>
313    <para>
314      As announced earlier web services support has been removed in BASE 3.4.
315      If anyone require web services support or similar we recommend using the BASE
316      extensions mechanism to implement exactly what is needed for that project and
317      we also beleive that a simplier API such as JSON is preferable.
318    </para>
320    <bridgehead>PostgreSQL users should change db.dialect</bridgehead>
321    <para>
322      In <filename>base.config</filename> there is a <constant>db.config</constant>
323      setting. Servers running with PostgreSQL as the database should change the
324      dialect to <classname>org.hibernate.dialect.PostgreSQL9Dialect</classname>
325      since the <classname>org.hibernate.dialect.PostgreSQLDialect</classname> has
326      been deprecated.
327    </para>
329  </sect1>
331  <sect1 id="appendix.update_warnings.3.3.3">
332    <title>BASE 3.3.3</title>
334    <bridgehead>Remaining quantity</bridgehead>
335    <para>
336      A bug that affected remaining quantity calculations for
337      biomaterial item has been fixed. Existing items may have been
338      saved with incorrect remaining quantity and must be fixed.
339      After installing the BASE 3.3.3 update, the existing
340      remaining quantity values are fix by running a special script.
341      Change directory to <filename class="directory">&lt;base-dir&gt;/bin/</filename> 
342      and issue
344./ remaining_quantity -u &lt;root login&gt; -p &lt;root pwd&gt;
346    </para>
348  </sect1>
350  <sect1 id="appendix.update_warnings.3.3">
351    <title>BASE 3.3</title>
353    <bridgehead>Content security policy</bridgehead>
354    <para>
355      The BASE web client now set a rather strict <emphasis>Content
356      Security Policy</emphasis> that prevent browsers from executing
357      code (including JavaScript) that is considered unsafe. Some extensions
358      may cease to work due to this. Go to
359      <menuchoice>
360        <guimenu>Administrate</guimenu>
361        <guimenuitem>Plug-ins &amp; extensions</guimenuitem>
362        <guimenuitem>Overview</guimenuitem>
363      </menuchoice> 
364      (after upgrading) to see if there are any warnings about this.
365      Read more in <xref linkend="appendix.web.xml.csp-filter" />
366      for information about how to relax the policy.
367    </para>
369    <bridgehead>Java SE 7 is required</bridgehead>
370    <para>
371      BASE now require <ulink url="">Java SE 7</ulink>.
372      Servers with Java SE 6 or older should be updated to Java SE 7 before installing BASE 3.3.
373    </para>
375    <bridgehead>Tomcat 7 is required</bridgehead>
376    <para>
377      BASE now require <ulink url="">Tomcat 7</ulink>.
378      Servers with Tomcat 6 or older should be updated to Tomcat 7 before installing BASE 3.3.
379    </para>
381    <bridgehead>Web services support has been deprecated</bridgehead>
382    <para>
383      The current implementation is most likely not very useful and has limited
384      support for accessing information in BASE. Therefore it has been decided to
385      remove the web services support in BASE 3.4. If anyone require web services
386      support or similar we recommend using the BASE extensions mechanism to implement
387      exactly what is needed for that project and we also beleive that a simplier
388      API such as JSON is preferable.
389    </para>
391  </sect1>
393  <sect1 id="appendix.update_warnings.3.2">
394    <title>BASE 3.2</title>
396    <bridgehead>Custom logging implementations must be updated</bridgehead>
397    <para>
398      The plug-in functionality for custom logging has been converted
399      to an extension point. The default database logging will continue
400      to function, but custom logging implementations must be converted
401      to an extension. See <xref linkend="appendix.incompatible.3.2" /> and
402      <xref linkend="extensions_developer.logging" /> for more information.
403    </para>
405  </sect1>
407  <sect1 id="appendix.update_warnings.3.0">
408    <title>BASE 3.0</title>
410    <note>
411      <title>Upgrading to BASE 3 is possible from BASE 2.17 only</title>
412      <para>
413        If your BASE is an older 2.x version you'll need to upgrade
414        to BASE 2.17 before an upgrade to BASE 3 is possible. Also note
415        that since BASE 3.3 we no longer actively test the upgrade
416        script. If upgrading doesn't work for a particular BASE 3.x version
417        (where x &gt; 2) please try to upgrade to BASE 3.2 first and then
418        from BASE 3.2 to BASE 3.x.
419      </para>
420    </note>
422    <warning>
423      <title>Make sure that you have a recent backup of the BASE 2.17 database</title>
424      <para>
425        Before starting the upgrade from BASE 2.17 to BASE 3 ensure that you
426        have a recent backup. If the upgrade fails you must restore the
427        2.17 database before you can try again. The upgrade only changes the
428        'static' part of the database, so you do not have to restore the
429        'dynamic' part or the uploaded files.
430      </para>
431    </warning>
433    <bridgehead>Old plug-ins and extensions may not work</bridgehead>
434    <para>
435      The BASE API has changed in several places and it is not certain that
436      plug-ins and extensions developed for BASE 2 works with BASE 3. The
437      upgrade will disable all plug-ins and extensions that are currently installed.
438      Before you upgrade we recommend that you go through all (external) plug-ins
439      and check if there is an updated version. The recommended approach
440      is to first upgrade BASE and then install updated versions of plug-ins
441      and extensions following the instructions in <xref 
442      linkend="plugins.installation"/>.
443    </para>
445    <para>
446      If there is no updated version of a specific plug-in you may try
447      a manual re-installation of the old plug-ins. Follow the instructions
448      in <xref linkend="plugins.installation.manual" />.
449    </para>
451    <para>
452      If there is no updated version and the old plug-in doesn't work with
453      BASE 3, you'll need to decide if you really need the plug-in or if
454      the upgrade should wait until a new version of the plug-in
455      has been released.
456    </para>
458    <bridgehead>Batch item importer changes</bridgehead>
459    <para>
460      There are several changes to batch item importers that may affect
461      current workflows and file templates used for importing data.
462    </para>
464    <itemizedlist>
465      <listitem>
466        <para>
467          Sample and extract importers: The 'pooled' column is no longer used.
468          Instead a 'parent type' column should be used with
469          the parent type as a string value (BIOSOURCE, SAMPLE or EXTRACT).
470          Existing importer configurations and file templates may have to be
471          updated. If no parent type is specified the sample importer assumes
472          a biosource and the extract importer assumes a sample.
473        </para>
474      </listitem>
475      <listitem>
476        <para>
477          Labeled extract importer: This has been deprecated and it is recommended
478          that the <emphasis>Extract importer</emphasis> is used instead.
479          We recommend that existing labeled extract importer configurations are re-created as extract
480          importer configurations. The old labeled extract importer can be
481          re-enabled, but note that the existing configurations still need
482          to be changed due to the 'pooled' column is no longer used.
483        </para>
484      </listitem>
485      <listitem>
486        <para>
487          Hybridization importer: This has been deprecated and we recommend
488          that the <emphasis>Physical bioassay importer</emphasis> is used instead.
489          Existing hybridization importer configurations should be re-created as
490          physical bioassay importer configurations.
491        </para>
492      </listitem>
493      <listitem>
494        <para>
495          Scan importer: This has been deprecated and it is recommended
496          that the <emphasis>Derived bioassay importer</emphasis> is used instead.
497          Existing scan importer configurations should be re-created as derived
498          bioassay importer configurations.
499        </para>
500      </listitem>
501    </itemizedlist>
503    <note>
504      The deprecated importers can be re-enabled by an administrator from the
505      <menuchoice>
506        <guimenu>Administrate</guimenu>
507        <guisubmenu>Plug-ins &amp; extensions</guisubmenu>
508        <guimenuitem>Overview</guimenuitem>
509      </menuchoice> page, but they are
510      lacking features that are available in the new importers so this is not
511      something that we recommend.
512    </note>
514    <bridgehead>MySQL and PostgreSQL versions</bridgehead>
515    <para>
516      We have only tested BASE 3 with PostgreSQL 9.1. If anyone
517      experiences any issues with earlier PostgreSQL versions, we
518      recommend an upgrade to PostgreSQL 9.1. This is a change since
519      BASE 2 which was tested with PostgreSQL 8.4. Even though BASE 3
520      may work with older PostgreSQL versions, we don't have the resources
521      needed to test and provide support for it.
522    </para>
524    <para>
525      We have only tested BASE 3 with MySQL 5.1 (no change since BASE 2).
526      If anyone experiences any issues with earlier (or later) MySQL versions,
527      we recommend an upgrade/downgrade to MySQL 5.1.
528    </para>
530  </sect1>
532  <sect1 id="appendix.update_warnings.2.x">
533    <title>All BASE 2.x releases</title>
535    <para>
536      We only support updating to BASE 3 from BASE 2.17. If you have an older BASE
537      version and wish to update to BASE 3, you first have to upgrade to BASE 2.17.
538      BASE 2.17 can be downloaded from the <ulink url="">BASE
539      download page</ulink>. Documentation for BASE 2.17 is available as part of the
540      download and at <ulink url=""
541      ></ulink>.
542    </para>
544  </sect1>
Note: See TracBrowser for help on using the repository browser.