Use development version of Bio-Formats with OMERO.server

Hi,

we would like to be able to use a development version of bio-formats with OMERO to test whether a newer version can solve import issues that we have. However, I have trouble finding information in the OMERO and Bioformats documentation on how this can be done.

I found this post (https://forum.image.sc/t/build-omero-server-with-own-bioformat-version/31167, but it is from 2019, so maybe things have changed. Also, I am not sure it applies for my case.

I would like to know the following:

  1. Can I simply change the version of bio-formats in an existing OMERO.server installation? If yes, how?
  2. If I need to deploy a new OMERO.server for this purpose, can I change the version of bio-formats used by the release version of OMERO.server? If yes, how?

I do not want to do any development myself. This is purely for testing. If there is documentation that I missed, it would be great if someone can post a link here.

Best regards,
Robert

1 Like

Hi @rschulz,

the post you mentioned certainly involves some level of development to build the entire OMERO.server with a custom version of Bio-Formats. It is possible to update Bio-Formats on an existing OMERO.server installation. This is for instance used by the IDR deployment playbooks which uses a custom set of Bio-Formats JARs. In a nutshell, the operation requires replacing the JARs in the relevant places under lib and restarting the server.

Like other Java dependencies of OMERO.server, the Bio-Formats JARs are copied into two locations of the server bundle:

  • under lib/server, you will find the server JARs i.e. used for all server-side operations (including server-side import)
  • under lib/client, you will find the client JARs i.e. used when running omero import for selecting the import candidates

A few caveats:

  • in terms of API compatibility, I would expect more recent patch releases or minor releases of Bio-Formats should be compatible with a given OMERO.server. Other cases including version downgrades should be reviewed on a case by case basis.
  • the minimal set of JARs to update is typically formats-api.jar, formats-bsd.jar and formats-gpl.jar. Depending on the changes, additional JARs might be need to updated especially when dependencies were updated to introduce new functionalities