If you are skipping versions, work through these sections backwards from your current version.
- Add the following keys from the sample configuration:
endpoint.health.enabledHttpSource.proxy.http.hostHttpSource.proxy.http.portHttpSource.BasicLookupStrategy.send_head_requestsprocessor.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_threadshttp.max_threadslog_error_responsesmeta_identifier.*endpoint.iiif.3.enabledendpoint.health.dependency_checkS3Source.region- If you had set
S3Source.endpointto an AWS endpoint, unset that and set this key to your AWS region instead.
- If you had set
processor.ManualSelectionStrategy.xpmprocessor.downscale_linearprocessor.imageio.xpm.readerGrokProcessor.path_to_binariesprocessor.pdf.*S3Cache.region- If you had set
S3Cache.endpointto an AWS endpoint, unset that and set this key to your AWS region instead.
- If you had set
log.application.ConsoleAppender.logstash.enabledlog.application.FileAppender.logstash.enabledlog.application.RollingFileAppender.logstash.enabledlog.error.FileAppender.logstash.enabledlog.error.RollingFileAppender.logstash.enabled
- Remove the following configuration keys:
http.http2.enabledhttps.http2.enabledscale_constraint_suffix.patternscale_constraint_suffix.formatendpoint.iiif.content_dispositiondelegate_script.cache.enabledprocessor.metadata.*GraphicsMagickProcessor.path_to_binariesKakaduDemoProcessor.path_to_binariesImageMagickProcessor.path_to_binariesS3Cache.max_connectionsredaction.enabled
- Rename the following configuration keys:
endpoint.iiif.2.restrict_to_sizestoendpoint.iiif.restrict_to_sizesoverlays.enabledtooverlays.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.Loggertoedu.illinois.library.cantaloupe.delegate.Logger. - The
X-IIIF-IDreverse proxy header is no longer supported. UseX-Forwarded-IDinstead. - If you were using the
processor.metadata.preservekey, you will need to use the newmetadata()delegate method instead. - If you were using the
cookiekey 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.delimiterto-. - Note that the
pageURI 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.transformeris set toStandardMetaIdentifierTransformer, and the desired page is3, the new identifier would be:image.jpg;3. - Similar to above, the
timeURI 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::SSstring. - 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
depsfolder. - 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.jsonfiles/objects manually, or else purging the whole cache (manually or via the API).
- Rename the following configuration keys:
HttpSource.trust_all_certstoHttpSource.allow_insecureprocessor.[format]toprocessor.ManualSelectionStrategy.[format]processor.fallbacktoprocessor.ManualSelectionStrategy.fallback
- Add the following keys from the sample configuration:
max_scaleHttpSource.chunking.*S3Source.chunking.*AzureStorageSource.chunking.*processor.selection_strategy
- Remove the following configuration keys:
allow_upscalingendpoint.public.auth.*S3Source.max_connectionsprocessor.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
KakaduDemoProcessorhas been deprecated and may be removed in a future version. Consider migrating now to eitherKakaduNativeProcessororOpenJpegProcessor.
Nothing to do.
- Rename the following configuration keys:
- Any key containing the string
Resolverto containSource HttpSource.auth.*toHttpSource.BasicLookupStrategy.auth.*AmazonS3Source.*toS3Source.*StreamProcessor.retrieval_strategytoprocessor.stream_retrieval_strategyKakaduProcessor.path_to_binariestoKakaduDemoProcessor.path_to_binariesAmazonS3Cache.*toS3Cache.*
- Any key containing the string
- Add the following keys from the sample configuration:
S3Source.endpointS3Source.BasicLookupStrategy.path_prefixS3Source.BasicLookupStrategy.path_suffixprocessor.fallback_retrieval_strategyprocessor.imageio.*S3Cache.endpointcache.server.source.ttl_secondscache.server.derivative.ttl_seconds
- Remove the following configuration keys:
S3Source.bucket.regionprocessor.limit_to_8_bitsS3Cache.bucket.regioncache.server.source.enabledcache.server.ttl_seconds
- Change any
AmazonS3Sourceconfiguration values toS3Source. - Change any configuration values containing
Resolverto containSource. - Change any
AmazonS3Cacheconfiguration 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/:identifierHTTP API method has been removed. See the "Remote Management" section of the user manual for information about its successor. - The
X-IIIF-IDreverse proxy header is deprecated and will be removed in a future version. Start usingX-Forwarded-IDinstead. - 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_pathnamehttp.http2.enabledhttps.http2.enabledhttp.accept_queue_limitendpoint.iiif.min_sizeendpoint.admin.usernameHttpResolver.trust_all_certsHttpResolver.request_timeoutAmazonS3Resolver.max_connectionsprocessor.flvprocessor.limit_to_8_bitscache.server.source.enabledcache.server.derivative.enabledcache.server.info.enabledAmazonS3Cache.max_connectionsHeapCache.*RedisCache.*log.error.*
- Rename the following keys:
auth.*toendpoint.public.auth.*admin.enabledtoendpoint.admin.enabledadmin.passwordtoendpoint.admin.secretPdfBoxProcessor.dpitoprocessor.dpicache.sourcetocache.server.sourcecache.derivativetocache.server.derivativemetadata.*toprocessor.metadata.*
- If you are using the delegate script, add a
contextargument to the method signature of any existing source delegates. Seedelegates.rb.samplefor examples. - The
DELETE /cache/:identifierHTTP 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.enabledendpoint.api.*processor.dcmprocessor.normalizeprocessor.background_colorprocessor.upscale_filterprocessor.downscale_filterprocessor.sharpenprocessor.jpg.progressiveprocessor.jpg.qualityprocessor.tif.compressioncache.server.ttl_secondsoverlays.BasicStrategy.typeoverlays.BasicStrategy.stringoverlays.BasicStrategy.string.*
- Rename the following keys:
watermark.*tooverlays.*
- Remove the following configuration keys:
JdbcResolver.max_pool_sizeFfmpegProcessor.sharpenGraphicsMagickProcessor.sharpenGraphicsMagickProcessor.background_colorImageMagickProcessor.sharpenImageMagickProcessor.background_colorJaiProcessor.sharpenJaiProcessor.jpg.qualityJaiProcessor.tif.compressionJava2dProcessor.upscale_filterJava2dProcessor.downscale_filterJava2dProcessor.sharpenJava2dProcessor.jpg.qualityJava2dProcessor.tif.compressionKakaduProcessor.upscale_filterKakaduProcessor.downscale_filterKakaduProcessor.sharpenOpenJpegProcessor.upscale_filterOpenJpegProcessor.downscale_filterOpenJpegProcessor.sharpenPdfBoxProcessor.upscale_filterPdfBoxProcessor.downscale_filterPdfBoxProcessor.sharpenFilesystemCache.ttl_secondsJdbcCache.max_pool_sizeJdbcCache.ttl_secondsAmazonS3Cache.ttl_secondsAzureStorageCache.ttl_seconds
- If you are using FilesystemCache, purge your cache.
- If you are using the
authorized?()orwatermark()delegate methods, note that the contents of theoperationsargument have changed; see the new sample delegate script for more information. - If you are using the
watermark()delegate method, note that thepathnamekey 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.sharpenGraphicsMagickProcessor.sharpenImageMagickProcessor.sharpenJaiProcessor.sharpenJava2dProcessor.upscale_filterJava2dProcessor.downscale_filterJava2dProcessor.sharpenKakaduProcessor.upscale_filterKakaduProcessor.downscale_filterKakaduProcessor.sharpenOpenJpegProcessor.upscale_filterOpenJpegProcessor.downscale_filterOpenJpegProcessor.sharpenPdfBoxProcessor.upscale_filterPdfBoxProcessor.downscale_filterPdfBoxProcessor.sharpenmetadata.*
- Remove the following configuration keys:
Java2dProcessor.scale_modeKakaduProcessor.post_processor.*OpenJpegProcessor.post_processor.*PdfBoxProcessor.post_processor.*
Nothing to do.
- Add the
http.hostandhttps.hostkeys from the sample configuration.
- Replace the
get_iiif2_servicedelegate script method withextra_iiif2_information_response_keys.
Nothing to do.
- Add the following keys from the sample configuration:
admin.*delegate_script.enabledendpoint.iiif.2.restrict_to_sizesStreamProcessor.retrieval_strategycache.sourceAmazonS3Cache.*AzureStorageCache.*redaction.enabled
- Rename the following keys:
delegate_scripttodelegate_script.pathnamecache.servertocache.derivative
- Remove the following keys:
JdbcResolver.function.*
- Add the following methods from the sample delegate script:
redactionsCantaloupe::JdbcResolver::get_database_identifierCantaloupe::JdbcResolver::get_media_typeCantaloupe::JdbcResolver::get_lookup_sql
- Rename the following delegate script methods:
Cantaloupe::get_pathnametoCantaloupe::FilesystemResolver::get_pathnameCantaloupe::get_urltoCantaloupe::HttpResolver::get_urlCantaloupe::get_azure_storage_blob_keytoCantaloupe::AzureStorageResolver::get_blob_keyCantaloupe::get_s3_object_keytoCantaloupe::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 ofadminand the password defined in theadmin.passwordconfiguration option.