source: trunk/doc/src/docbook/appendix/incompatible.xml @ 6336

Last change on this file since 6336 was 6336, checked in by Nicklas Nordborg, 10 years ago

Fixes #1774: Independent sort direction for columns when sorting on multiple colums

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Id
File size: 8.2 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: incompatible.xml 6336 2013-10-28 11:57:45Z 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.incompatible">
28  <?dbhtml filename="incompatible.html" ?>
29  <title>API changes that may affect backwards compatibility</title>
30  <para>
31    In this document we list all changes to code in the <emphasis>Public API</emphasis>
32    that may be backwards incompatible with existing client applications
33    and or plug-ins. See <xref linkend="base_api.public" /> for more
34    information about what we mean with the <emphasis>Public API</emphasis>
35    and backwards compatible.
36  </para>
38  <sect1 id="appendix.incompatible.3.3">
39    <title>BASE 3.3 release</title>
41    <bridgehead>Biomaterial items are now lazy-loading</bridgehead>
42    <para>
43      For performance reasons biomaterial items have been changed from
44      eager-loading to lazy-loading. This may affect clients and/or plug-ins
45      that expect the parent chain of biomaterials to always be fully initialized
46      without explicitely having told the BASE core to do so.
47    </para>
49    <bridgehead>Tables can have columns with different sort order</bridgehead>
50    <para>
51      A new feature has been implemented which allows columns in a table to
52      have different sort order. This is implemented by allowing '+' or '-'
53      as a prefix to properties returned by the <methodname>ItemContext.getSortProperty()</methodname>
54      method. Properties without a prefix still use the global sort order as returned
55      by <methodname>ItemContext.getSortDirection()</methodname>.
56    </para>
58    <para>
59      Code that is not aware of the prefixes may fail since '+' and '-' are not
60      allowed in property names.
61    </para>
62  </sect1>
64  <sect1 id="appendix.incompatible.3.2">
65    <title>BASE 3.2 release</title>
67    <bridgehead>Derived bioassays can now have multiple parents</bridgehead>
68    <para>
69      Before BASE 3.2 a derived bioassay was restricted to a single parent
70      item. This affects the API and the <methodname>DerivedBioAssay.getParent()</methodname>
71      and <methodname>DerivedBioAssay.getPhysicalBioAssays()</methodname> now always
72      return null. Existing code should be updated to use <methodname>getPhysicalBioAssays()</methodname>
73      and <methodname>getParents()</methodname> (which return <classname>ItemQuery</classname> instances)
74      instead. Code that is using queries to filter or sort on parent items must also be
75      updated since the association names have changed.
76    </para>
78    <bridgehead>BASEfile exporter automatically closes the output stream</bridgehead>
79    <para>
80      The implementation of the BASEfile exporter has been changed to
81      automatically close the provided output stream when the export
82      is complete. Clients that need the old behavior should call
83      <code>BaseFileExporter.setAutoCloseWriters(false)</code> before
84      using it.
85    </para>
87    <bridgehead>Change history logging is now an extension point</bridgehead>
88    <para>
89      The change history logging has been converted to an extension point.
90      The <constant>changelog.factory</constant> setting in <filename>base.config</filename>
91      is no longer used. Existing logging implementations should be updated
92      to use the extension system. See <xref linkend="extensions_developer.logging" />.
93      A temporary solution is to use one of the debugging action factories to
94      define the extension point:
95    </para>
97    <programlisting language="xml">
100   id="id-of-custom-log-manager"
101   extends="net.sf.basedb.core.log-manager"
102   >
103   <about>
104      <name>My custom log manager</name>
105      <description>
106         Temporary solution to allow the old log manager to work with the extension system.
107      </description>
108   </about>
109   <index>1</index>
110   <action-factory>
111      <factory-class>net.sf.basedb.util.extensions.debug.BeanActionFactory</factory-class>
112      <parameters>
113         <beanClass>my.custom.LogmangerClass</beanClass>
114      </parameters>
115   </action-factory>
120  </sect1>
122  <sect1 id="appendix.incompatible.3.1">
123    <title>BASE 3.1 release</title>
125    <bridgehead>Web service framework updated to Axis2 1.6</bridgehead>
126    <para>
127      We have updated the web services framework to Axis2 1.6. Clients
128      that use earlier Axis2 versions may not work when connecting to a
129      BASE 3.1 server. Unfortunately, clients that use the Axis2 1.6
130      framework may have problems connecting to BASE 3.0 servers so it
131      may be difficult to implement support for both BASE 3.0 and BASE 3.1
132      in a single client application.
133    </para>
135    <bridgehead>New GUI look and feel</bridgehead>
136    <para>
137      Taglibs, stylesheets and javscript functions have been changed
138      to create a new look and feel. Plug-ins and extensions that uses
139      GUI elements from the core BASE installation may need to be updated
140      for the best user experience. The changes are too numerous so we can't
141      list them here. Please use the developers mailing list if specific
142      information is needed or see <ulink url="">ticket
143      1655</ulink> for some screenshots and other information.
144    </para>
146    <bridgehead>Per-experiment copy of reporter annotations</bridgehead>
147    <para>
148      A new feature has been implemented that allows a user to make a
149      local copy of reporter annotations for reporters that are used
150      in an experiment. The existing API will by default use the local
151      copy if one is available. It is possible to use the master reporter
152      annotations by invoking certain API methods (for example:
153      <code>DynamicQuery.setUseClonedReporters(false)</code>). Since the copy
154      may include only a subset of the available reporter annotations this
155      may cause problems for code that is expecting all annotations to be
156      available. See <classname docapi="net.sf.basedb.core">ReporterCloneTemplate</classname>
157      and <ulink url="">ticket 1616</ulink>
158      for more information.
159    </para>
161    <bridgehead>Annotations can be inherited/pushed from child to parent item</bridgehead>
162    <para>
163      A new feature has been implemented that allows an item to "push" annotations
164      up to it's parent in addition to the normal "inherit to child" method.
165      This has been implemented as a change in the <methodname>getAnnotatableParents()</methodname>
166      method defined by the <interfacename docapi="net.sf.basedb.core">Annotatable</interfacename>
167      interface. This may cause unexpected issues with code that is not prepared to handle
168      this situation. Particulary, infinite loops must be avoided when traversing the "parent"
169      tree of an item (but this should already be in place since it can already happen due to
170      mistakes when creating items). See <ulink url="">ticket 1605</ulink>
171      for more information.
172    </para>
174  </sect1>
177  <sect1 id="appendix.incompatible.3.0">
178    <title>BASE 3.0 release</title>
180    <para>
181      There are a lot incompatible changes between BASE 3 and any of the BASE 2.x
182      versions. We do not list list those changes here since we do not expect existing
183      plug-ins, extensions or other client application to work with BASE 3 without
184      modification. See <xref linkend="migrate_2_3" /> for more information.
185    </para>
186  </sect1>
188  <sect1 id="appendix.incompatible.2.x">
189    <title>All BASE 2.x releases</title>
191    <para>
192      The list of changes made in the various BASE 2.x releases can be found
193      in the <ulink url=""
194      >BASE 2.17 documentation</ulink>.
195    </para>
197  </sect1>
Note: See TracBrowser for help on using the repository browser.