doc/src/docbook/appendix/incompatible.xml

Code
Comments
Other
Rev Date Author Line
3415 31 May 07 nicklas 1 <?xml version="1.0" encoding="UTF-8"?>
3415 31 May 07 nicklas 2 <!DOCTYPE appendix PUBLIC 
3415 31 May 07 nicklas 3     "-//Dawid Weiss//DTD DocBook V3.1-Based Extension for XML and graphics inclusion//EN" 
3415 31 May 07 nicklas 4     "../../../../lib/docbook/preprocess/dweiss-docbook-extensions.dtd">
3415 31 May 07 nicklas 5 <!--
3415 31 May 07 nicklas 6   $Id$
3415 31 May 07 nicklas 7   
3675 16 Aug 07 jari 8   Copyright (C) 2007 Peter Johansson, Nicklas Nordborg
3415 31 May 07 nicklas 9   
3415 31 May 07 nicklas 10   This file is part of BASE - BioArray Software Environment.
3415 31 May 07 nicklas 11   Available at http://base.thep.lu.se/
3415 31 May 07 nicklas 12   
3415 31 May 07 nicklas 13   BASE is free software; you can redistribute it and/or
3415 31 May 07 nicklas 14   modify it under the terms of the GNU General Public License
4477 05 Sep 08 jari 15   as published by the Free Software Foundation; either version 3
3415 31 May 07 nicklas 16   of the License, or (at your option) any later version.
3415 31 May 07 nicklas 17   
3415 31 May 07 nicklas 18   BASE is distributed in the hope that it will be useful,
3415 31 May 07 nicklas 19   but WITHOUT ANY WARRANTY; without even the implied warranty of
3415 31 May 07 nicklas 20   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3415 31 May 07 nicklas 21   GNU General Public License for more details.
3415 31 May 07 nicklas 22   
3415 31 May 07 nicklas 23   You should have received a copy of the GNU General Public License
4509 11 Sep 08 jari 24   along with BASE. If not, see <http://www.gnu.org/licenses/>.
3415 31 May 07 nicklas 25 -->
3415 31 May 07 nicklas 26
3415 31 May 07 nicklas 27 <appendix id="appendix.incompatible">
5782 04 Oct 11 nicklas 28   <?dbhtml filename="incompatible.html" ?>
3415 31 May 07 nicklas 29   <title>API changes that may affect backwards compatibility</title>
3415 31 May 07 nicklas 30   <para>
3415 31 May 07 nicklas 31     In this document we list all changes to code in the <emphasis>Public API</emphasis>
3415 31 May 07 nicklas 32     that may be backwards incompatible with existing client applications
5780 04 Oct 11 nicklas 33     and or plug-ins. See <xref linkend="base_api.public" /> for more
3415 31 May 07 nicklas 34     information about what we mean with the <emphasis>Public API</emphasis>
3415 31 May 07 nicklas 35     and backwards compatible.
3415 31 May 07 nicklas 36   </para>
3415 31 May 07 nicklas 37   
7598 22 Feb 19 nicklas 38   <sect1 id="appendix.incompatible.3.15">
7598 22 Feb 19 nicklas 39     <title>BASE 3.15 release</title>
7598 22 Feb 19 nicklas 40     
7598 22 Feb 19 nicklas 41     <bridgehead id="appendix.incompatible.secondarystorage">Secondary storage support has been removed</bridgehead>
7598 22 Feb 19 nicklas 42     <para>
7598 22 Feb 19 nicklas 43       API that is related to the secondary storage feature has been removed. For example,
7640 11 Mar 19 nicklas 44       in the <classname docapi="net.sf.basedb.core">File</classname> class, <code>getAction()/setAction()</code>
7598 22 Feb 19 nicklas 45       has been removed. In the <classname docapi="net.sf.basedb.core">Location</classname> enumeration, 
7598 22 Feb 19 nicklas 46       <code>SECONDARY</code> has been removed.    
7598 22 Feb 19 nicklas 47     </para>
7609 27 Feb 19 nicklas 48     
7640 11 Mar 19 nicklas 49     <bridgehead id="appendix.incompatible.spotimages">Spot images support has been removed</bridgehead>
7640 11 Mar 19 nicklas 50     <para>
7640 11 Mar 19 nicklas 51       API that is related to creating and viewing spot images has been removed. For example,
7640 11 Mar 19 nicklas 52       in the <classname docapi="net.sf.basedb.core">RawBioAssay</classname> class, the
7640 11 Mar 19 nicklas 53       <code>getSpotImages()</code> method has been removed. The <classname>SpotImages</classname>
7640 11 Mar 19 nicklas 54       class has been removed and there are several other minor changes related to this.
7640 11 Mar 19 nicklas 55       There is no replacement.
7640 11 Mar 19 nicklas 56     </para>
7640 11 Mar 19 nicklas 57     
7681 04 Apr 19 nicklas 58     <bridgehead id="appendix.incompatible.deprecated">Some deprecated classes and methods has been removed</bridgehead>
7681 04 Apr 19 nicklas 59     <para>
7681 04 Apr 19 nicklas 60       Classes and methods that has been deprecated since BASE 3.10 or earlier have been removed. This
7681 04 Apr 19 nicklas 61       may affect existing plug-ins and extensions. In most cases there exists a replacement method or
7681 04 Apr 19 nicklas 62       class as indicated in the BASE 3.14 documentation.
7681 04 Apr 19 nicklas 63     </para>
7681 04 Apr 19 nicklas 64     
7609 27 Feb 19 nicklas 65     <bridgehead id="appendix.incompatible.generics">Introduced generic return parameters</bridgehead>
7609 27 Feb 19 nicklas 66     <para>
7609 27 Feb 19 nicklas 67       Some API methods with a return type of <classname>Object</classname> have been 
7609 27 Feb 19 nicklas 68       changed to <code>&lt;T&gt; T</code> (for example <code>public &lt;T&gt; T getObject(String name)</code> in
7609 27 Feb 19 nicklas 69       <classname>ItemContext</classname>)
7609 27 Feb 19 nicklas 70       which means that no explicit cast is needed since the compiler can typically infer this from the 
7609 27 Feb 19 nicklas 71       assignment made by the calling code. Note that this change is binary compatible with existing
7609 27 Feb 19 nicklas 72       code, but in some cases it may be source code incompatible. Thus, already compiled code 
7609 27 Feb 19 nicklas 73       should continue to work, but source code may have to modified if compiling against the 
7609 27 Feb 19 nicklas 74       BASE 3.15 API. Here are some examples:
7609 27 Feb 19 nicklas 75     </para>
7609 27 Feb 19 nicklas 76     
7609 27 Feb 19 nicklas 77     <programlisting language="java">
7609 27 Feb 19 nicklas 78 <![CDATA[
7609 27 Feb 19 nicklas 79 // With BASE 3.14 (also works with BASE 3.15)
7609 27 Feb 19 nicklas 80 ItemContext cc = ...
7609 27 Feb 19 nicklas 81 Hardware hardware = (Hardware)cc.getObject("item");
7609 27 Feb 19 nicklas 82
7609 27 Feb 19 nicklas 83 // With BASE 3.15
7609 27 Feb 19 nicklas 84 Hardware hardware = cc.getObject("item");
7609 27 Feb 19 nicklas 85
7609 27 Feb 19 nicklas 86 // This will not compile against BASE 3.15!
7609 27 Feb 19 nicklas 87 Set<AnnotatedItem> items = (Set<AnnotatedItem>)cc.getObject("AnnotatedItems");
7609 27 Feb 19 nicklas 88
7609 27 Feb 19 nicklas 89 // The explict cast must be removed
7609 27 Feb 19 nicklas 90 Set<AnnotatedItem> items = cc.getObject("AnnotatedItems");
7609 27 Feb 19 nicklas 91 ]]>
7609 27 Feb 19 nicklas 92 </programlisting>
7609 27 Feb 19 nicklas 93     
7609 27 Feb 19 nicklas 94     <para>
7609 27 Feb 19 nicklas 95       Besides the change in the <methodname>ItemContext.getObject()</methodname> method there
7609 27 Feb 19 nicklas 96       are several similar changes in the <classname docapi="net.sf.basedb.core">ItemContext</classname> 
7609 27 Feb 19 nicklas 97       class as well as in <classname docapi="net.sf.basedb.core">SessionControl</classname>, 
7610 27 Feb 19 nicklas 98       <classname docapi="net.sf.basedb.core">Annotation</classname>,
7610 27 Feb 19 nicklas 99       <classname docapi="net.sf.basedb.core">AnnotationType</classname>
7609 27 Feb 19 nicklas 100       <classname docapi="net.sf.basedb.clients.web.formatter">FormatterFactory</classname>,
7609 27 Feb 19 nicklas 101       <classname docapi="net.sf.basedb.core">ParameterValues</classname> and several other 
7609 27 Feb 19 nicklas 102       classes. In all cases, it should be relatively simple to update the code that doesn't compile.
7609 27 Feb 19 nicklas 103     </para>
7609 27 Feb 19 nicklas 104     
7609 27 Feb 19 nicklas 105     <note>
7609 27 Feb 19 nicklas 106       <title>Beware of JSP files</title>
7609 27 Feb 19 nicklas 107       <para>
7609 27 Feb 19 nicklas 108         Since this change doesn't affect already compiled code, extensions and plug-ins are
7609 27 Feb 19 nicklas 109         typically not affected. The exception is of course JSP files that are part of an 
7609 27 Feb 19 nicklas 110         extension since they are compiled at runtime by Tomcat. It may be wise to test this
7609 27 Feb 19 nicklas 111         before upgrading a live BASE installation to BASE 3.15.
7609 27 Feb 19 nicklas 112       </para>
7609 27 Feb 19 nicklas 113     </note>
7598 22 Feb 19 nicklas 114   </sect1>
7598 22 Feb 19 nicklas 115   
7545 07 Dec 18 nicklas 116   <sect1 id="appendix.incompatible.3.14">
7545 07 Dec 18 nicklas 117     <title>BASE 3.14 release</title>
7545 07 Dec 18 nicklas 118     
7545 07 Dec 18 nicklas 119     <bridgehead id="appendix.incompatible.authenticator">The (very) old Authenticator API has been removed</bridgehead>
7545 07 Dec 18 nicklas 120     <para>
7545 07 Dec 18 nicklas 121       The <code>net.sf.basedb.core.authentication.Authenticator</code>
7545 07 Dec 18 nicklas 122       interface and other related code that was deprecated in BASE 3.3
7545 07 Dec 18 nicklas 123       has been removed. Systems that still use old authentication code 
7545 07 Dec 18 nicklas 124       need to replace this with a newer version before updating.
7545 07 Dec 18 nicklas 125     </para>
7545 07 Dec 18 nicklas 126     
7545 07 Dec 18 nicklas 127   </sect1>
7545 07 Dec 18 nicklas 128   
7342 18 Apr 17 nicklas 129   <sect1 id="appendix.incompatible.3.11">
7342 18 Apr 17 nicklas 130     <title>BASE 3.11 release</title>
7342 18 Apr 17 nicklas 131     
7342 18 Apr 17 nicklas 132     <bridgehead id="appendix.incompatible.paused-job">Job.Status.PAUSED</bridgehead>
7342 18 Apr 17 nicklas 133     <para>
7342 18 Apr 17 nicklas 134       Added the <code>PAUSED</code> option to the <code>Job.Status</code>
7342 18 Apr 17 nicklas 135       enumeration. This option is used when a running job has been temporarily paused. 
7342 18 Apr 17 nicklas 136       Code that uses the job's status to decide what action to take may fail since 
7342 18 Apr 17 nicklas 137       this is a new option. In most cases, it should be handled in the same way as 
7342 18 Apr 17 nicklas 138       if the job is <code>WAITING</code>.
7342 18 Apr 17 nicklas 139     </para>
7342 18 Apr 17 nicklas 140   
7343 18 Apr 17 nicklas 141     <bridgehead id="appendix.incompatible.sha-256">SHA-256 fingerprint on file servers</bridgehead>
7343 18 Apr 17 nicklas 142     <para>
7343 18 Apr 17 nicklas 143       Added support for storing SHA-256 fingerprints on file servers. Code
7343 18 Apr 17 nicklas 144       that is expecting the fingerprint to always be a MD5 value may stop 
7343 18 Apr 17 nicklas 145       to work. A new method <code>FileServer.getFingerprintType()</code>
7343 18 Apr 17 nicklas 146       has been added.
7343 18 Apr 17 nicklas 147     </para>
7344 18 Apr 17 nicklas 148     
7344 18 Apr 17 nicklas 149     <bridgehead id="appendix.incompatible.inactive-roles">Inactive roles</bridgehead>
7344 18 Apr 17 nicklas 150     <para>
7344 18 Apr 17 nicklas 151       A new feature which allows a user to activate and de-activate roles on the
7344 18 Apr 17 nicklas 152       fly during a login session has been implemented. This may cause a user to
7344 18 Apr 17 nicklas 153       gain or lose permissions at any time. A change of active roles triggers an 
7344 18 Apr 17 nicklas 154       internal reload of permissions and since there are already other things that 
7344 18 Apr 17 nicklas 155       do this, it should not cause any problems. The <code>SessionControl.getRoles()</code>
7344 18 Apr 17 nicklas 156       method has been deprecated and replaced with <code>SessionControl.getAllRoles()</code>,
7344 18 Apr 17 nicklas 157       <code>SessionControl.getActiveRoles()</code> and <code>SessionControl.getInactiveRoles()</code>.
7344 18 Apr 17 nicklas 158     </para>
7343 18 Apr 17 nicklas 159         
7342 18 Apr 17 nicklas 160   </sect1>
7342 18 Apr 17 nicklas 161   
7221 04 Nov 16 nicklas 162   <sect1 id="appendix.incompatible.3.10">
7221 04 Nov 16 nicklas 163     <title>BASE 3.10 release</title>
7221 04 Nov 16 nicklas 164     
7221 04 Nov 16 nicklas 165     <bridgehead id="appendix.incompatible.annotate-permission">Annotate permission</bridgehead>
7221 04 Nov 16 nicklas 166     <para>
7221 04 Nov 16 nicklas 167       A new permission level, <code>ANNOTATE</code> has been added to
7221 04 Nov 16 nicklas 168       the permission system. Extensions and other clients that are not
7221 04 Nov 16 nicklas 169       aware of this permission may think that the user only has 
7221 04 Nov 16 nicklas 170       <code>READ</code> permission. 
7221 04 Nov 16 nicklas 171     </para>
7221 04 Nov 16 nicklas 172     
7276 24 Jan 17 nicklas 173     <bridgehead id="appendix.incompatible.project-annotations">Project-specific annotations</bridgehead>
7276 24 Jan 17 nicklas 174     <para>
7276 24 Jan 17 nicklas 175       The annotation system has been extended with a new feature: project-specific annotations.
7276 24 Jan 17 nicklas 176       Extensions and other code that is not aware of this may experience strange behaviour
7276 24 Jan 17 nicklas 177       where annotation values may not change as expected or may change in unexpected ways.
7276 24 Jan 17 nicklas 178       For example, trying to change the default value of a project-specific annotation when
7276 24 Jan 17 nicklas 179       a project is active causes a new annotation to be created in the background instead
7276 24 Jan 17 nicklas 180       of changing the current one. Note that this feature is disabled by default and 
7276 24 Jan 17 nicklas 181       must be enabled per annotation type. Updating an existing server should be safe
7276 24 Jan 17 nicklas 182       and will not affect existing annotations or annotation types.
7276 24 Jan 17 nicklas 183     </para>
7276 24 Jan 17 nicklas 184     
7221 04 Nov 16 nicklas 185   </sect1>
7221 04 Nov 16 nicklas 186
7161 27 May 16 nicklas 187   <sect1 id="appendix.incompatible.3.9">
7161 27 May 16 nicklas 188     <title>BASE 3.9 release</title>
7161 27 May 16 nicklas 189     
7161 27 May 16 nicklas 190     <bridgehead id="appendix.incompatible.session-control">Application.getSessionControl()</bridgehead>
7161 27 May 16 nicklas 191     <para>
7161 27 May 16 nicklas 192       The <classname docapi="net.sf.basedb.core">Application.getSessionControl()</classname> 
7161 27 May 16 nicklas 193       method for getting access to an existing session has been deprecated. A new
7161 27 May 16 nicklas 194       version has been implemented that require that an <emphasis>external client id</emphasis>
7161 27 May 16 nicklas 195       is specified. This change was needed to avoid sessions leaking between client 
7161 27 May 16 nicklas 196       applications and prevent users to use an application they don't have permission to use.
7161 27 May 16 nicklas 197     </para>
7161 27 May 16 nicklas 198     
7161 27 May 16 nicklas 199     <para>
7161 27 May 16 nicklas 200       The deprecated method use the client id from the BASE web client. Extensions and
7161 27 May 16 nicklas 201       other clients that use a different client id are affected and may stop to work
7161 27 May 16 nicklas 202       until they have been updated to use the new API. For more information see
7982 14 Jun 21 nicklas 203       <ulink url="https://base.thep.lu.se/ticket/2011">ticket 2011</ulink>.
7161 27 May 16 nicklas 204     </para>
7161 27 May 16 nicklas 205     
7161 27 May 16 nicklas 206   </sect1>
7161 27 May 16 nicklas 207   
7161 27 May 16 nicklas 208   
7079 16 Feb 16 nicklas 209   <sect1 id="appendix.incompatible.3.8">
7079 16 Feb 16 nicklas 210     <title>BASE 3.8 release</title>
7079 16 Feb 16 nicklas 211     
7079 16 Feb 16 nicklas 212     <bridgehead id="appendix.incompatible.service-session-control">ServiceSessionControl API</bridgehead>
7079 16 Feb 16 nicklas 213     <para>
7079 16 Feb 16 nicklas 214       The <classname docapi="net.sf.basedb.core">ServiceSessionControl</classname> API for 
7079 16 Feb 16 nicklas 215       configuration and building Hibernate <classname>SessionFactory</classname>
7079 16 Feb 16 nicklas 216       instances has been changed due the Hibernate 5 upgrade. This change affects
7079 16 Feb 16 nicklas 217       extensions that use the API for storing their own data inside the BASE database.
7079 16 Feb 16 nicklas 218       Extensions that use this API must be updated or they will not work with BASE 3.8.
7079 16 Feb 16 nicklas 219     </para>
7079 16 Feb 16 nicklas 220     
7079 16 Feb 16 nicklas 221   </sect1>
7079 16 Feb 16 nicklas 222   
7079 16 Feb 16 nicklas 223   
6964 02 Oct 15 nicklas 224   <sect1 id="appendix.incompatible.3.6">
6964 02 Oct 15 nicklas 225     <title>BASE 3.6 release</title>
6964 02 Oct 15 nicklas 226     
6964 02 Oct 15 nicklas 227     <bridgehead id="appendix.incompatible.cloned-annotation">Cloned annotations</bridgehead>
6964 02 Oct 15 nicklas 228     <para>
6964 02 Oct 15 nicklas 229       A new feature that allows an inherited annotation to be cloned has been implemented.
6964 02 Oct 15 nicklas 230       Several methods in <classname docapi="net.sf.basedb.core">AnnotationSet</classname>,
6964 02 Oct 15 nicklas 231       <classname docapi="net.sf.basedb.core.snapshot">AnnotationSnapshot</classname> and some 
6964 02 Oct 15 nicklas 232       other classes has been deprecated and replaced with new methods. Existing code that
6964 02 Oct 15 nicklas 233       is not aware of cloned annotations should continue to work, but may experience some
6964 02 Oct 15 nicklas 234       inconsistent behaviour in case the cloned values are out-of-sync with the original
6964 02 Oct 15 nicklas 235       values.
6964 02 Oct 15 nicklas 236     </para>
6964 02 Oct 15 nicklas 237
6964 02 Oct 15 nicklas 238     <bridgehead id="appendix.incompatible.experimental-factors">Experimental factors have moved</bridgehead>
6964 02 Oct 15 nicklas 239     <para>
6964 02 Oct 15 nicklas 240       To allow the owner of an experiment to manage experimental factor values as part
6964 02 Oct 15 nicklas 241       of the experiment, the <classname docapi="net.sf.basedb.core">RootRawBioassay</classname>
6964 02 Oct 15 nicklas 242       item was introduced. The new item is a one-to-one representation of a <classname 
6964 02 Oct 15 nicklas 243       docapi="net.sf.basedb.core">RawBioAssay</classname> inside that experiment.
6964 02 Oct 15 nicklas 244       Experimental factor values that are found on existing raw bioassays are copied to the
6964 02 Oct 15 nicklas 245       root rawbioassays when updating BASE. Changes made after the update will only
6964 02 Oct 15 nicklas 246       affect the root raw bioassays. Existing code that is not aware of root raw bioassays
6964 02 Oct 15 nicklas 247       may not find the experimental factor values.
6964 02 Oct 15 nicklas 248     </para>
6964 02 Oct 15 nicklas 249     
6964 02 Oct 15 nicklas 250   </sect1>
6964 02 Oct 15 nicklas 251   
6807 26 Mar 15 nicklas 252   <sect1 id="appendix.incompatible.3.5">
6807 26 Mar 15 nicklas 253     <title>BASE 3.5 release</title>
6807 26 Mar 15 nicklas 254     
6807 26 Mar 15 nicklas 255     <bridgehead id="appendix.incompatible.itemlists">Biomaterial lists has been replaced with item lists</bridgehead>
6807 26 Mar 15 nicklas 256     <para>
6807 26 Mar 15 nicklas 257       The <classname docapi="net.sf.basedb.core">BioMaterialList</classname> 
6807 26 Mar 15 nicklas 258       class has been removed and replaced with <classname 
6807 26 Mar 15 nicklas 259       docapi="net.sf.basedb.core">ItemList</classname>. The API is similar 
6807 26 Mar 15 nicklas 260       but not exactly the same. In most cases only minor changes are required
6807 26 Mar 15 nicklas 261       to make existing code work with the new API.
6807 26 Mar 15 nicklas 262     </para>
6807 26 Mar 15 nicklas 263     
6807 26 Mar 15 nicklas 264     <para>
6807 26 Mar 15 nicklas 265       Queries that use the <code>BioMaterial.bioMaterialLists</code> association
6807 26 Mar 15 nicklas 266       for joining will no longer work. There is no replacement functionality for
6807 26 Mar 15 nicklas 267       joining item lists.
6807 26 Mar 15 nicklas 268     </para>
6807 26 Mar 15 nicklas 269     
6807 26 Mar 15 nicklas 270     <para>
6807 26 Mar 15 nicklas 271       All classes in the <code>net.sf.basedb.util.biomaterial</code> package has
6807 26 Mar 15 nicklas 272       been deprecated. It is recommended that code that uses any of these classes
6807 26 Mar 15 nicklas 273       are updated to use classes in <code>net.sf.basedb.util.listable</code> instead.
6807 26 Mar 15 nicklas 274       The API is a bit different, but the new implementations typically performs a 
6807 26 Mar 15 nicklas 275       lot better so it is worth the work.
6807 26 Mar 15 nicklas 276     </para>
6807 26 Mar 15 nicklas 277
6807 26 Mar 15 nicklas 278     <para>
6807 26 Mar 15 nicklas 279       There are several other minor changes in the API that previously worked with
6807 26 Mar 15 nicklas 280       the <code>BioMaterialList</code> class that has been removed and replaced
6807 26 Mar 15 nicklas 281       with something else.
6807 26 Mar 15 nicklas 282     </para>
6807 26 Mar 15 nicklas 283     
6807 26 Mar 15 nicklas 284   </sect1>
6807 26 Mar 15 nicklas 285   
6480 12 Jun 14 nicklas 286   <sect1 id="appendix.incompatible.3.4">
6480 12 Jun 14 nicklas 287     <title>BASE 3.4 release</title>
6480 12 Jun 14 nicklas 288     
6480 12 Jun 14 nicklas 289     <bridgehead>Updated JDOM to 2.0</bridgehead>
6480 12 Jun 14 nicklas 290     <para>
6480 12 Jun 14 nicklas 291       The JDOM library has been updated to version 2.0 from 1.1. The
6480 12 Jun 14 nicklas 292       new version is incompatible with the old version. BASE 3.4 will
6480 12 Jun 14 nicklas 293       ship with both versions but JDOM 1.1 will be removed in BASE 3.5
6480 12 Jun 14 nicklas 294       and so will all API methods that expose JDOM 1.1 classes.
6480 12 Jun 14 nicklas 295       It is recommended that plug-ins and extensions that use JDOM also
6480 12 Jun 14 nicklas 296       update to JDOM 2.0.
6480 12 Jun 14 nicklas 297     </para>
6480 12 Jun 14 nicklas 298     
6480 12 Jun 14 nicklas 299     <bridgehead>Updated to Apache HttpClient 4.3.4</bridgehead>
6480 12 Jun 14 nicklas 300     <para>
6480 12 Jun 14 nicklas 301       The Apache HTTP Client library has been updated to version 4.3.4.
6480 12 Jun 14 nicklas 302       The new version has deprecated some classes that are exposed through
6480 12 Jun 14 nicklas 303       the BASE API (mainly in <classname docapi="net.sf.basedb.util.ssl">SSLUtil</classname>).
6480 12 Jun 14 nicklas 304       As a result we had to deprecate parts of the BASE API, which will
6480 12 Jun 14 nicklas 305       be removed in BASE 3.5. It is recommended that plug-ins and
6480 12 Jun 14 nicklas 306       extensions that are affected are updated to use the replacement API
6480 12 Jun 14 nicklas 307       instead.
6480 12 Jun 14 nicklas 308     </para>
6480 12 Jun 14 nicklas 309     
6480 12 Jun 14 nicklas 310   </sect1>
6480 12 Jun 14 nicklas 311   
6281 27 May 13 nicklas 312   <sect1 id="appendix.incompatible.3.3">
6281 27 May 13 nicklas 313     <title>BASE 3.3 release</title>
6410 31 Jan 14 nicklas 314     
6410 31 Jan 14 nicklas 315     <bridgehead>Content security policy</bridgehead>
6410 31 Jan 14 nicklas 316     <para>
6410 31 Jan 14 nicklas 317       The BASE web client now set a rather strict <emphasis>Content 
6410 31 Jan 14 nicklas 318       Security Policy</emphasis> that prevent browsers from executing
6410 31 Jan 14 nicklas 319       code (including JavaScript) that is considered unsafe. Some extensions
6410 31 Jan 14 nicklas 320       may cease to work due to this. Go to
6410 31 Jan 14 nicklas 321       <menuchoice>
6410 31 Jan 14 nicklas 322         <guimenu>Administrate</guimenu>
6410 31 Jan 14 nicklas 323         <guimenuitem>Plug-ins &amp; extensions</guimenuitem>
6410 31 Jan 14 nicklas 324         <guimenuitem>Overview</guimenuitem>
6410 31 Jan 14 nicklas 325       </menuchoice> 
6410 31 Jan 14 nicklas 326       (after upgrading) to see if there are any warnings about this.
6410 31 Jan 14 nicklas 327       Read more in <xref linkend="appendix.web.xml.csp-filter" />
6410 31 Jan 14 nicklas 328       for information about how to relax the policy.
6410 31 Jan 14 nicklas 329     </para>
6281 27 May 13 nicklas 330
6403 29 Jan 14 nicklas 331     <bridgehead>Re-factored JavaScript API</bridgehead>
6403 29 Jan 14 nicklas 332     <para>
6403 29 Jan 14 nicklas 333       The BASE web client has undergone a major refactoring with respect to
6403 29 Jan 14 nicklas 334       the JavaScript API that is used on the server. A lot of functions have
6403 29 Jan 14 nicklas 335       been replaced with new implementations. We have tried to map the old
6403 29 Jan 14 nicklas 336       functions to the new ones, but this has not always been possible. Extentions
6403 29 Jan 14 nicklas 337       that use the BASE JavaScript API must be tested with BASE 3.3 to find
6403 29 Jan 14 nicklas 338       out if they are still working or if modifications are needed.
6403 29 Jan 14 nicklas 339     </para>
6403 29 Jan 14 nicklas 340     
6403 29 Jan 14 nicklas 341     <note>
6403 29 Jan 14 nicklas 342       <title>Avoid in-line event handlers and script</title>
6403 29 Jan 14 nicklas 343       <para>
6403 29 Jan 14 nicklas 344         The main reason for the refactoring is to get rid of all in-line
6403 29 Jan 14 nicklas 345         event handlers and script sections since this is a possible entry
6403 29 Jan 14 nicklas 346         point for cross-site scripting attacks (see <ulink 
7982 14 Jun 21 nicklas 347           url="https://base.thep.lu.se/ticket/1712">ticket 1712</ulink>).
6403 29 Jan 14 nicklas 348         Extension developers are encouraged to make the same changes in 
6403 29 Jan 14 nicklas 349         their applications.
6403 29 Jan 14 nicklas 350       </para>
6403 29 Jan 14 nicklas 351     </note>
6403 29 Jan 14 nicklas 352
6281 27 May 13 nicklas 353     <bridgehead>Biomaterial items are now lazy-loading</bridgehead>
6281 27 May 13 nicklas 354     <para>
6281 27 May 13 nicklas 355       For performance reasons biomaterial items have been changed from
6281 27 May 13 nicklas 356       eager-loading to lazy-loading. This may affect clients and/or plug-ins
6281 27 May 13 nicklas 357       that expect the parent chain of biomaterials to always be fully initialized
6281 27 May 13 nicklas 358       without explicitely having told the BASE core to do so.
6281 27 May 13 nicklas 359     </para>
6336 28 Oct 13 nicklas 360     
6336 28 Oct 13 nicklas 361     <bridgehead>Tables can have columns with different sort order</bridgehead>
6336 28 Oct 13 nicklas 362     <para>
6336 28 Oct 13 nicklas 363       A new feature has been implemented which allows columns in a table to
6336 28 Oct 13 nicklas 364       have different sort order. This is implemented by allowing '+' or '-'
6336 28 Oct 13 nicklas 365       as a prefix to properties returned by the <methodname>ItemContext.getSortProperty()</methodname>
6336 28 Oct 13 nicklas 366       method. Properties without a prefix still use the global sort order as returned
6336 28 Oct 13 nicklas 367       by <methodname>ItemContext.getSortDirection()</methodname>.
6336 28 Oct 13 nicklas 368     </para>
6336 28 Oct 13 nicklas 369     
6336 28 Oct 13 nicklas 370     <para>
6336 28 Oct 13 nicklas 371       Code that is not aware of the prefixes may fail since '+' and '-' are not
6336 28 Oct 13 nicklas 372       allowed in property names.
6336 28 Oct 13 nicklas 373     </para>
6429 10 Mar 14 nicklas 374     
6429 10 Mar 14 nicklas 375     <bridgehead>External authentication has been converted to an extension point</bridgehead>
6429 10 Mar 14 nicklas 376     <para>
6429 10 Mar 14 nicklas 377       External authentication plug-ins using the old system are supported through a 
6429 10 Mar 14 nicklas 378       wrapper extension, but the recommendation is to update those plug-in to the
6429 10 Mar 14 nicklas 379       new system. See <xref linkend="extensions_developer.login-manager" /> for more information.
6429 10 Mar 14 nicklas 380     </para>
6429 10 Mar 14 nicklas 381     
6433 14 Mar 14 nicklas 382     <bridgehead>Setting parameters for a job no longer set it to status=WAITING</bridgehead>
6433 14 Mar 14 nicklas 383     <para>
6433 14 Mar 14 nicklas 384       Added <methodname>Job.setScheduled()</methodname> to switch the state
6433 14 Mar 14 nicklas 385       from <constant>UNCONFIGURED</constant> to <constant>WAITING</constant>. 
6433 14 Mar 14 nicklas 386       A job can't be executed before it has entered the <constant>WAITING</constant>
6433 14 Mar 14 nicklas 387       state. The change makes it possible to register a job and some parameters for
6433 14 Mar 14 nicklas 388       it and remain in the <constant>UNCONFIGURED</constant> state.
6433 14 Mar 14 nicklas 389     </para>
6433 14 Mar 14 nicklas 390     
6281 27 May 13 nicklas 391   </sect1>
6281 27 May 13 nicklas 392   
6077 03 Aug 12 nicklas 393   <sect1 id="appendix.incompatible.3.2">
6077 03 Aug 12 nicklas 394     <title>BASE 3.2 release</title>
6077 03 Aug 12 nicklas 395
6102 04 Sep 12 nicklas 396     <bridgehead>Derived bioassays can now have multiple parents</bridgehead>
6102 04 Sep 12 nicklas 397     <para>
6102 04 Sep 12 nicklas 398       Before BASE 3.2 a derived bioassay was restricted to a single parent 
6102 04 Sep 12 nicklas 399       item. This affects the API and the <methodname>DerivedBioAssay.getParent()</methodname>
6102 04 Sep 12 nicklas 400       and <methodname>DerivedBioAssay.getPhysicalBioAssays()</methodname> now always
6102 04 Sep 12 nicklas 401       return null. Existing code should be updated to use <methodname>getPhysicalBioAssays()</methodname>
6102 04 Sep 12 nicklas 402       and <methodname>getParents()</methodname> (which return <classname>ItemQuery</classname> instances)
6102 04 Sep 12 nicklas 403       instead. Code that is using queries to filter or sort on parent items must also be
6102 04 Sep 12 nicklas 404       updated since the association names have changed.
6102 04 Sep 12 nicklas 405     </para>
6102 04 Sep 12 nicklas 406
6077 03 Aug 12 nicklas 407     <bridgehead>BASEfile exporter automatically closes the output stream</bridgehead>
6077 03 Aug 12 nicklas 408     <para>
6077 03 Aug 12 nicklas 409       The implementation of the BASEfile exporter has been changed to
6077 03 Aug 12 nicklas 410       automatically close the provided output stream when the export
6077 03 Aug 12 nicklas 411       is complete. Clients that need the old behavior should call
6077 03 Aug 12 nicklas 412       <code>BaseFileExporter.setAutoCloseWriters(false)</code> before
6077 03 Aug 12 nicklas 413       using it.
6077 03 Aug 12 nicklas 414     </para>
6080 07 Aug 12 nicklas 415
6080 07 Aug 12 nicklas 416     <bridgehead>Change history logging is now an extension point</bridgehead>
6080 07 Aug 12 nicklas 417     <para>
6080 07 Aug 12 nicklas 418       The change history logging has been converted to an extension point.
6080 07 Aug 12 nicklas 419       The <constant>changelog.factory</constant> setting in <filename>base.config</filename>
6080 07 Aug 12 nicklas 420       is no longer used. Existing logging implementations should be updated
6080 07 Aug 12 nicklas 421       to use the extension system. See <xref linkend="extensions_developer.logging" />.
6080 07 Aug 12 nicklas 422       A temporary solution is to use one of the debugging action factories to 
6080 07 Aug 12 nicklas 423       define the extension point:
6080 07 Aug 12 nicklas 424     </para>
6080 07 Aug 12 nicklas 425     
6080 07 Aug 12 nicklas 426     <programlisting language="xml">
6080 07 Aug 12 nicklas 427 <![CDATA[
6080 07 Aug 12 nicklas 428 <extension 
6080 07 Aug 12 nicklas 429    id="id-of-custom-log-manager"
6080 07 Aug 12 nicklas 430    extends="net.sf.basedb.core.log-manager"
6080 07 Aug 12 nicklas 431    >
6080 07 Aug 12 nicklas 432    <about>
6080 07 Aug 12 nicklas 433       <name>My custom log manager</name>
6080 07 Aug 12 nicklas 434       <description>
6080 07 Aug 12 nicklas 435          Temporary solution to allow the old log manager to work with the extension system.
6080 07 Aug 12 nicklas 436       </description>
6080 07 Aug 12 nicklas 437    </about>
6080 07 Aug 12 nicklas 438    <index>1</index>
6080 07 Aug 12 nicklas 439    <action-factory>
6080 07 Aug 12 nicklas 440       <factory-class>net.sf.basedb.util.extensions.debug.BeanActionFactory</factory-class>
6080 07 Aug 12 nicklas 441       <parameters>
6080 07 Aug 12 nicklas 442          <beanClass>my.custom.LogmangerClass</beanClass>
6080 07 Aug 12 nicklas 443       </parameters>
6080 07 Aug 12 nicklas 444    </action-factory>
6080 07 Aug 12 nicklas 445 </extension>
6080 07 Aug 12 nicklas 446 ]]>
6080 07 Aug 12 nicklas 447 </programlisting>
6080 07 Aug 12 nicklas 448
6077 03 Aug 12 nicklas 449   </sect1>
6077 03 Aug 12 nicklas 450   
5874 11 Nov 11 nicklas 451   <sect1 id="appendix.incompatible.3.1">
5874 11 Nov 11 nicklas 452     <title>BASE 3.1 release</title>
5874 11 Nov 11 nicklas 453
5874 11 Nov 11 nicklas 454     <bridgehead>Web service framework updated to Axis2 1.6</bridgehead>
5874 11 Nov 11 nicklas 455     <para>
5874 11 Nov 11 nicklas 456       We have updated the web services framework to Axis2 1.6. Clients
5874 11 Nov 11 nicklas 457       that use earlier Axis2 versions may not work when connecting to a
5874 11 Nov 11 nicklas 458       BASE 3.1 server. Unfortunately, clients that use the Axis2 1.6
5874 11 Nov 11 nicklas 459       framework may have problems connecting to BASE 3.0 servers so it
5874 11 Nov 11 nicklas 460       may be difficult to implement support for both BASE 3.0 and BASE 3.1
5874 11 Nov 11 nicklas 461       in a single client application.
5874 11 Nov 11 nicklas 462     </para>
5968 16 Feb 12 nicklas 463
5968 16 Feb 12 nicklas 464     <bridgehead>New GUI look and feel</bridgehead>
5968 16 Feb 12 nicklas 465     <para>
5968 16 Feb 12 nicklas 466       Taglibs, stylesheets and javscript functions have been changed
5968 16 Feb 12 nicklas 467       to create a new look and feel. Plug-ins and extensions that uses
5968 16 Feb 12 nicklas 468       GUI elements from the core BASE installation may need to be updated
5968 16 Feb 12 nicklas 469       for the best user experience. The changes are too numerous so we can't
5968 16 Feb 12 nicklas 470       list them here. Please use the developers mailing list if specific
7982 14 Jun 21 nicklas 471       information is needed or see <ulink url="https://base.thep.lu.se/ticket/1655">ticket
5968 16 Feb 12 nicklas 472       1655</ulink> for some screenshots and other information.
5968 16 Feb 12 nicklas 473     </para>
5969 16 Feb 12 nicklas 474     
5969 16 Feb 12 nicklas 475     <bridgehead>Per-experiment copy of reporter annotations</bridgehead>
5969 16 Feb 12 nicklas 476     <para>
5969 16 Feb 12 nicklas 477       A new feature has been implemented that allows a user to make a
5969 16 Feb 12 nicklas 478       local copy of reporter annotations for reporters that are used
5969 16 Feb 12 nicklas 479       in an experiment. The existing API will by default use the local
5969 16 Feb 12 nicklas 480       copy if one is available. It is possible to use the master reporter
5969 16 Feb 12 nicklas 481       annotations by invoking certain API methods (for example: 
5969 16 Feb 12 nicklas 482       <code>DynamicQuery.setUseClonedReporters(false)</code>). Since the copy
5969 16 Feb 12 nicklas 483       may include only a subset of the available reporter annotations this
5969 16 Feb 12 nicklas 484       may cause problems for code that is expecting all annotations to be
5969 16 Feb 12 nicklas 485       available. See <classname docapi="net.sf.basedb.core">ReporterCloneTemplate</classname>
7982 14 Jun 21 nicklas 486       and <ulink url="https://base.thep.lu.se/ticket/1616">ticket 1616</ulink>
5969 16 Feb 12 nicklas 487       for more information.
5969 16 Feb 12 nicklas 488     </para>
5968 16 Feb 12 nicklas 489
5983 23 Feb 12 nicklas 490     <bridgehead>Annotations can be inherited/pushed from child to parent item</bridgehead>
5983 23 Feb 12 nicklas 491     <para>
5983 23 Feb 12 nicklas 492       A new feature has been implemented that allows an item to "push" annotations
5983 23 Feb 12 nicklas 493       up to it's parent in addition to the normal "inherit to child" method.
5983 23 Feb 12 nicklas 494       This has been implemented as a change in the <methodname>getAnnotatableParents()</methodname>
5983 23 Feb 12 nicklas 495       method defined by the <interfacename docapi="net.sf.basedb.core">Annotatable</interfacename>
5983 23 Feb 12 nicklas 496       interface. This may cause unexpected issues with code that is not prepared to handle
5983 23 Feb 12 nicklas 497       this situation. Particulary, infinite loops must be avoided when traversing the "parent"
5983 23 Feb 12 nicklas 498       tree of an item (but this should already be in place since it can already happen due to
7982 14 Jun 21 nicklas 499       mistakes when creating items). See <ulink url="https://base.thep.lu.se/ticket/1605">ticket 1605</ulink>
5983 23 Feb 12 nicklas 500       for more information.
5983 23 Feb 12 nicklas 501     </para>
5983 23 Feb 12 nicklas 502
5874 11 Nov 11 nicklas 503   </sect1>
5874 11 Nov 11 nicklas 504   
5874 11 Nov 11 nicklas 505   
5677 29 Jun 11 nicklas 506   <sect1 id="appendix.incompatible.3.0">
5677 29 Jun 11 nicklas 507     <title>BASE 3.0 release</title>
5560 31 Jan 11 nicklas 508
5560 31 Jan 11 nicklas 509     <para>
5677 29 Jun 11 nicklas 510       There are a lot incompatible changes between BASE 3 and any of the BASE 2.x
5677 29 Jun 11 nicklas 511       versions. We do not list list those changes here since we do not expect existing
5677 29 Jun 11 nicklas 512       plug-ins, extensions or other client application to work with BASE 3 without
5677 29 Jun 11 nicklas 513       modification. See <xref linkend="migrate_2_3" /> for more information.
5560 31 Jan 11 nicklas 514     </para>
5560 31 Jan 11 nicklas 515   </sect1>
3415 31 May 07 nicklas 516   
5677 29 Jun 11 nicklas 517   <sect1 id="appendix.incompatible.2.x">
5677 29 Jun 11 nicklas 518     <title>All BASE 2.x releases</title>
5325 29 Apr 10 nicklas 519
5325 29 Apr 10 nicklas 520     <para>
5677 29 Jun 11 nicklas 521       The list of changes made in the various BASE 2.x releases can be found
7982 14 Jun 21 nicklas 522       in the <ulink url="https://base.thep.lu.se/chrome/site/2.17/html/appendix/appendix.incompatible.html"
5677 29 Jun 11 nicklas 523       >BASE 2.17 documentation</ulink>.
5325 29 Apr 10 nicklas 524     </para>
5325 29 Apr 10 nicklas 525     
5325 29 Apr 10 nicklas 526   </sect1>
5325 29 Apr 10 nicklas 527   
5204 16 Dec 09 nicklas 528
3415 31 May 07 nicklas 529 </appendix>
3415 31 May 07 nicklas 530