If you are skipping versions, work through these sections backwards from your current version.
- Add the following keys from the sample configuration:
endpoint.health.enabled
HttpSource.proxy.http.host
HttpSource.proxy.http.port
HttpSource.BasicLookupStrategy.send_head_requests
processor.purge_incompatible_from_source_cache
- Add the following methods from the sample delegate script:
jdbcsource_last_modified()
- If you are using a Java delegate, add the following method to your delegate
class:
getJDBCSourceLastModified()
- Note that the application is now packaged as a JAR file which can no longer run in a Servlet container.
- Note that Java 11 or later is now required.
- Add the following keys from the sample configuration:
http.min_threads
http.max_threads
log_error_responses
meta_identifier.*
endpoint.iiif.3.enabled
endpoint.health.dependency_check
S3Source.region
- If you had set
S3Source.endpoint
to an AWS endpoint, unset that and set this key to your AWS region instead.
- If you had set
processor.ManualSelectionStrategy.xpm
processor.downscale_linear
processor.imageio.xpm.reader
GrokProcessor.path_to_binaries
processor.pdf.*
S3Cache.region
- If you had set
S3Cache.endpoint
to an AWS endpoint, unset that and set this key to your AWS region instead.
- If you had set
log.application.ConsoleAppender.logstash.enabled
log.application.FileAppender.logstash.enabled
log.application.RollingFileAppender.logstash.enabled
log.error.FileAppender.logstash.enabled
log.error.RollingFileAppender.logstash.enabled
- Remove the following configuration keys:
http.http2.enabled
https.http2.enabled
scale_constraint_suffix.pattern
scale_constraint_suffix.format
endpoint.iiif.content_disposition
delegate_script.cache.enabled
processor.metadata.*
GraphicsMagickProcessor.path_to_binaries
KakaduDemoProcessor.path_to_binaries
ImageMagickProcessor.path_to_binaries
S3Cache.max_connections
redaction.enabled
- Rename the following configuration keys:
endpoint.iiif.2.restrict_to_sizes
toendpoint.iiif.restrict_to_sizes
overlays.enabled
tooverlays.BasicStrategy.enabled
- Add the following methods from the sample delegate script:
deserialize_meta_identifier()
serialize_meta_identifier()
pre_authorize()
extra_iiif3_information_response_keys()
metadata()
- Note that the
pre_authorize()
delegate method added in step 6 may require refactoring the logic inauthorize()
. See the documentation of those methods for more information. - In your delegate script, change any references to
edu.illinois.library.cantaloupe.script.Logger
toedu.illinois.library.cantaloupe.delegate.Logger
. - The
X-IIIF-ID
reverse proxy header is no longer supported. UseX-Forwarded-ID
instead. - If you were using the
processor.metadata.preserve
key, you will need to use the newmetadata()
delegate method instead. - If you were using the
cookie
key in the delegate script context hash, note that its structure has changed to a hash of cookie name-value pairs. This is how it was documented to work, and how it was supposed to work, in previous versions. - Note that the default scale constraint delimiter has changed from a dash
(
-
) to a semicolon (;
). If you were using scale constraints in URI identifiers (e.g.image.jpg-1:2
), and want to avoid breaking those URIs, you must change the value ofmeta_identifier.transformer.StandardMetaIdentifierTransformer.delimiter
to-
. - Note that the
page
URI query argument has been deprecated and will be removed in a future version. A page argument should instead be expressed in the identifier path component. For example, ifmeta_identifier.transformer
is set toStandardMetaIdentifierTransformer
, and the desired page is3
, the new identifier would be:image.jpg;3
. - Similar to above, the
time
URI query argument has been deprecated. A time argument should instead be expressed in the identifier path component as above, as an integer number of seconds rather than anHH:MM::SS
string. - The source known as HttpSource2 from version 4.1.x is now known as HttpSource, and the old HttpSource has been removed. If you encounter errors from the new HttpSource like "PKIX path building failed," consult the HttpSource section of the user manual.
- If you are using KakaduNativeProcessor, you must install the updated Kakadu
shared library, contained in the
deps
folder. - KakaduDemoProcessor is no longer available. If you were using it, you must switch to either KakaduNativeProcessor, OpenJpegProcessor, or GrokProcessor.
- If you are using a derivative cache, and are serving any images that have
non-zero orientations, or embedded metadata with which you might want to
use the new
metadata()
delegate method, you must purge all cached infos. Unfortunately there is no API method to do this yet, so this will require either deleting all.json
files/objects manually, or else purging the whole cache (manually or via the API).
- Rename the following configuration keys:
HttpSource.trust_all_certs
toHttpSource.allow_insecure
processor.[format]
toprocessor.ManualSelectionStrategy.[format]
processor.fallback
toprocessor.ManualSelectionStrategy.fallback
- Add the following keys from the sample configuration:
max_scale
HttpSource.chunking.*
S3Source.chunking.*
AzureStorageSource.chunking.*
processor.selection_strategy
- Remove the following configuration keys:
allow_upscaling
endpoint.public.auth.*
S3Source.max_connections
processor.normalize
- If you have implemented the
redirect()
orauthorized?()
delegate methods, migrate their logic intoauthorize()
and remove them. - If you were using the
endpoint.public.auth.*
keys, you will need to use the newauthorize()
delegate method instead. - Note that
KakaduDemoProcessor
has been deprecated and may be removed in a future version. Consider migrating now to eitherKakaduNativeProcessor
orOpenJpegProcessor
.
Nothing to do.
- Rename the following configuration keys:
- Any key containing the string
Resolver
to containSource
HttpSource.auth.*
toHttpSource.BasicLookupStrategy.auth.*
AmazonS3Source.*
toS3Source.*
StreamProcessor.retrieval_strategy
toprocessor.stream_retrieval_strategy
KakaduProcessor.path_to_binaries
toKakaduDemoProcessor.path_to_binaries
AmazonS3Cache.*
toS3Cache.*
- Any key containing the string
- Add the following keys from the sample configuration:
S3Source.endpoint
S3Source.BasicLookupStrategy.path_prefix
S3Source.BasicLookupStrategy.path_suffix
processor.fallback_retrieval_strategy
processor.imageio.*
S3Cache.endpoint
cache.server.source.ttl_seconds
cache.server.derivative.ttl_seconds
- Remove the following configuration keys:
S3Source.bucket.region
processor.limit_to_8_bits
S3Cache.bucket.region
cache.server.source.enabled
cache.server.ttl_seconds
- Change any
AmazonS3Source
configuration values toS3Source
. - Change any configuration values containing
Resolver
to containSource
. - Change any
AmazonS3Cache
configuration values toS3Cache
. - The delegate script architecture has changed, and the 3.x script is not compatible. See the "Delegate Script" section of the user manual for migration info.
- The deprecated
DELETE /cache/:identifier
HTTP API method has been removed. See the "Remote Management" section of the user manual for information about its successor. - The
X-IIIF-ID
reverse proxy header is deprecated and will be removed in a future version. Start usingX-Forwarded-ID
instead. - If you'd like to use the new KakaduNativeProcessor non-commercially for decoding JPEG2000 images, see the "Processors" section of the user manual for information on configuring it.
Nothing to do.
- Add the following keys from the sample configuration:
temp_pathname
http.http2.enabled
https.http2.enabled
http.accept_queue_limit
endpoint.iiif.min_size
endpoint.admin.username
HttpResolver.trust_all_certs
HttpResolver.request_timeout
AmazonS3Resolver.max_connections
processor.flv
processor.limit_to_8_bits
cache.server.source.enabled
cache.server.derivative.enabled
cache.server.info.enabled
AmazonS3Cache.max_connections
HeapCache.*
RedisCache.*
log.error.*
- Rename the following keys:
auth.*
toendpoint.public.auth.*
admin.enabled
toendpoint.admin.enabled
admin.password
toendpoint.admin.secret
PdfBoxProcessor.dpi
toprocessor.dpi
cache.source
tocache.server.source
cache.derivative
tocache.server.derivative
metadata.*
toprocessor.metadata.*
- If you are using the delegate script, add a
context
argument to the method signature of any existing source delegates. Seedelegates.rb.sample
for examples. - The
DELETE /cache/:identifier
HTTP API method is deprecated and will be removed in version 4. Begin migrating now to the updated equivalent. - Managing the cache on the command line with VM arguments is deprecated and will be removed in version 4. Begin migrating now to the cache management methods in the HTTP API.
Nothing to do.
- Add the following keys from the sample configuration:
delegate_script.cache.enabled
endpoint.api.*
processor.dcm
processor.normalize
processor.background_color
processor.upscale_filter
processor.downscale_filter
processor.sharpen
processor.jpg.progressive
processor.jpg.quality
processor.tif.compression
cache.server.ttl_seconds
overlays.BasicStrategy.type
overlays.BasicStrategy.string
overlays.BasicStrategy.string.*
- Rename the following keys:
watermark.*
tooverlays.*
- Remove the following configuration keys:
JdbcResolver.max_pool_size
FfmpegProcessor.sharpen
GraphicsMagickProcessor.sharpen
GraphicsMagickProcessor.background_color
ImageMagickProcessor.sharpen
ImageMagickProcessor.background_color
JaiProcessor.sharpen
JaiProcessor.jpg.quality
JaiProcessor.tif.compression
Java2dProcessor.upscale_filter
Java2dProcessor.downscale_filter
Java2dProcessor.sharpen
Java2dProcessor.jpg.quality
Java2dProcessor.tif.compression
KakaduProcessor.upscale_filter
KakaduProcessor.downscale_filter
KakaduProcessor.sharpen
OpenJpegProcessor.upscale_filter
OpenJpegProcessor.downscale_filter
OpenJpegProcessor.sharpen
PdfBoxProcessor.upscale_filter
PdfBoxProcessor.downscale_filter
PdfBoxProcessor.sharpen
FilesystemCache.ttl_seconds
JdbcCache.max_pool_size
JdbcCache.ttl_seconds
AmazonS3Cache.ttl_seconds
AzureStorageCache.ttl_seconds
- If you are using FilesystemCache, purge your cache.
- If you are using the
authorized?()
orwatermark()
delegate methods, note that the contents of theoperations
argument have changed; see the new sample delegate script for more information. - If you are using the
watermark()
delegate method, note that thepathname
key in the returned hash must be changed toimage
. - Rename the
watermark()
delegate method tooverlay()
.
Nothing to do.
- Add the following keys from the sample configuration:
FfmpegProcessor.sharpen
GraphicsMagickProcessor.sharpen
ImageMagickProcessor.sharpen
JaiProcessor.sharpen
Java2dProcessor.upscale_filter
Java2dProcessor.downscale_filter
Java2dProcessor.sharpen
KakaduProcessor.upscale_filter
KakaduProcessor.downscale_filter
KakaduProcessor.sharpen
OpenJpegProcessor.upscale_filter
OpenJpegProcessor.downscale_filter
OpenJpegProcessor.sharpen
PdfBoxProcessor.upscale_filter
PdfBoxProcessor.downscale_filter
PdfBoxProcessor.sharpen
metadata.*
- Remove the following configuration keys:
Java2dProcessor.scale_mode
KakaduProcessor.post_processor.*
OpenJpegProcessor.post_processor.*
PdfBoxProcessor.post_processor.*
Nothing to do.
- Add the
http.host
andhttps.host
keys from the sample configuration.
- Replace the
get_iiif2_service
delegate script method withextra_iiif2_information_response_keys
.
Nothing to do.
- Add the following keys from the sample configuration:
admin.*
delegate_script.enabled
endpoint.iiif.2.restrict_to_sizes
StreamProcessor.retrieval_strategy
cache.source
AmazonS3Cache.*
AzureStorageCache.*
redaction.enabled
- Rename the following keys:
delegate_script
todelegate_script.pathname
cache.server
tocache.derivative
- Remove the following keys:
JdbcResolver.function.*
- Add the following methods from the sample delegate script:
redactions
Cantaloupe::JdbcResolver::get_database_identifier
Cantaloupe::JdbcResolver::get_media_type
Cantaloupe::JdbcResolver::get_lookup_sql
- Rename the following delegate script methods:
Cantaloupe::get_pathname
toCantaloupe::FilesystemResolver::get_pathname
Cantaloupe::get_url
toCantaloupe::HttpResolver::get_url
Cantaloupe::get_azure_storage_blob_key
toCantaloupe::AzureStorageResolver::get_blob_key
Cantaloupe::get_s3_object_key
toCantaloupe::AmazonS3Resolver::get_object_key
- If you are using JdbcResolver, be aware that the
JdbcResolver.function.*
configuration keys are now obsolete, and these functions will have to be rewritten as delegate script methods. - If you are using JdbcCache, modify your database schema:
ALTER TABLE {JdbcCache.info_table} CHANGE COLUMN last_modified last_accessed; ALTER TABLE {JdbcCache.derivative_image_table} CHANGE COLUMN last_modified last_accessed;
- Note that the information that used to be available on the landing page
(
/
) has moved to the Control Panel (/admin
). Log in with a username ofadmin
and the password defined in theadmin.password
configuration option.