/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* $Id$ */ package org.apache.fop.image; // Java import java.io.InputStream; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.Map; import java.util.Set; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map.Entry; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; // FOP import org.apache.fop.image.analyser.ImageReaderFactory; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.datatypes.URISpecification; /** * Create FopImage objects (with a configuration file - not yet implemented). * @author Eric SCHAEFFER */ public final class ImageFactory { /** * logging instance */ protected static Log log = LogFactory.getLog(FopImage.class); private HashMap imageMimeTypes = new HashMap(); private ImageCache cache = new ContextImageCache(true); /** * Main constructor for the ImageFactory. */ public ImageFactory() { /* @todo The mappings set up below of image mime types to implementing * classes should be made externally configurable */ ImageProvider jaiImage = new ImageProvider("JAIImage", "org.apache.fop.image.JAIImage"); ImageProvider jimiImage = new ImageProvider("JIMIImage", "org.apache.fop.image.JimiImage"); ImageProvider imageIoImage = new ImageProvider( "ImageIOImage", "org.apache.fop.image.ImageIOImage"); ImageProvider gifImage = new ImageProvider("GIFImage", "org.apache.fop.image.GifImage"); ImageProvider jpegImage = new ImageProvider("JPEGImage",backport/49199/stable30 backport/49203/stable29 backport/49203/stable30 backport/49208/stable29 backport/49208/stable30 backport/49209/stable30 backport/49218/stable28 backport/49218/stable29 backport/49218/stable30 backport/49219/stable30 backport/49225/stable28 backport/49225/stable29 backport/49225/stable30 backport/49226/stable30 backport/49232/stable28 backport/49232/stable29 backport/49232/stable30 backport/49237/stable30 backport/49260/stable30 backport/49262/stable28 backport/49262/stable29 backport/49271/stable29 backport/49271/stable30 backport/49281/stable30 backport/49288/stable29 backport/49288/stable30 backport/49293/stable30 backport/49308/stable29 backport/49308/stable30 backport/49311/stable28 backport/49311/stable29 backport/49311/stable30 backport/49315/stable28 backport/49315/stable29 backport/49315/stable30 backport/49332/stable28 backport/49332/stable29 backport/49332/stable30 backport/49346/stable30 backport/49351/stable29 backport/49351/stable30 backport/49357/stable30 backport/49361/stable28 backport/49361/stable29 backport/49361/stable30 backport/49372/stable28 backport/49372/stable29 backport/49372/stable30 backport/49373/stable29 backport/49380/stable30 backport/49384/master backport/49398/stable29 backport/49398/stable30 backport/49432/master backport/49432/stable30 backport/49434/stable30 backport/49442/stable28 backport/49442/stable29 backport/49442/stable30 backport/49451/stable29 backport/49451/stable30 backport/49454/stable28 backport/49454/stable29 backport/49454/stable30 backport/49459/stable30 backport/49464/stable28 backport/49464/stable29 backport/49464/stable30 backport/49477/stable30 backport/49489/stable30 backport/49493/stable28 backport/49494/stable29 backport/49494/stable29-squashed backport/49494/stable30 backport/49503/stable28 backport/49503/stable29 backport/49503/stable30 backport/49528/stable28 backport/49528/stable29 backport/49528/stable30 backport/49551/stable29 backport/49551/stable30 backport/49557/stable30 backport/49569/stable29 backport/49569/stable30 backport/49581/stable28 backport/49581/stable30 backport/49587/stable30 backport/49588/stable29 backport/49588/stable30 backport/49602/stable28 backport/49602/stable29 backport/49602/stable30 backport/49629/stable29 backport/49677/stable30 backport/49681/stable29 backport/49681/stable30 backport/49685/stable28 backport/49685/stable29 backport/49685/stable30 backport/49693/stable29 backport/49693/stable30 backport/49694/stable30 backport/49746/stable30 backport/49747/stable27 backport/49747/stable28 backport/49747/stable29 backport/49747/stable30 backport/49799/stable28 backport/49799/stable29 backport/49799/stable30 backport/49801/stable30 backport/49803/stable29 backport/49803/stable30 backport/49815/stable28 backport/49815/stable29 backport/49822/stable28 backport/49822/stable29 backport/49832/stable30 backport/49839/stable29 backport/49839/stable30 backport/49843/stable29 backport/49843/stable30 backport/49880/stable28 backport/49880/stable30 backport/49900/stable29 backport/49917/stable30 backport/49927/stable28 backport/49973/master backport/cachebuster-stable30 backport/dav-get backportArrayKeySetupCheks block-dav-move-parent bug/19494/insert-ignore-conflict-for-filecache-extended bug/48518/ignore-invalid-dates bug/48678/restore-dav-error-response bug/49395/handle-multiple-tags bug/noid/codeowners-caldav-carddav bug/noid/drop-group-exists-cache-fetch-list-of-groups bug/noid/federated-addressbook-sync-without-localaddressallowed bug/noid/more-routing-weirdness bug/noid/profile-clear-not-working bug/noid/skip-exceptions-in-transfer-ownership bug/noid/weird-ldap-caching bugfix/45481/controller-parameter-overwrite bugfix/47658/dont-fail-precondition-if-unset bugfix/cleanup-s3-multipart bugfix/error-on-reshare-after-transfer-ownership bugfix/exception-appscreenshot-notstring bugfix/fix-service-worker-scope bugfix/noid/add-missing-blurhash bugfix/noid/allow-to-fail-fake-AI-providers bugfix/noid/allow-to-force-db-throttler bugfix/noid/allow-to-get-permissions-of-a-principal bugfix/noid/array-keys bugfix/noid/censor-more-values bugfix/noid/compatibility-with-30 bugfix/noid/consistent-handling-of-SensitiveParameter bugfix/noid/copy-better-typing-from-notifications-app bugfix/noid/create-a-gap-before-files bugfix/noid/document-icon-requirements bugfix/noid/fix-download-activity-parameters bugfix/noid/fix-oauth2-owncloud-migration bugfix/noid/fix-otf-loading bugfix/noid/fix-rtl-language-list bugfix/noid/fix-tainted-file-appinfo bugfix/noid/improve-installation-speed-of-oracle bugfix/noid/increase-exclude-list bugfix/noid/mark-more-configs-as-sensitive bugfix/noid/more-reliable-tests bugfix/noid/oracle-federation bugfix/noid/remove-3rdparty-use bugfix/noid/remove-more-withConsecutive bugfix/noid/run-all-unit-tests bugfix/noid/skip-future-shipped-apps-from-updatenotification-check bugfix/noid/update-opendyslexic bugfix/noid/update-phpunit bugfix/noid/validate-parameter-keys build/autoloader/remove-noisy-changes build/psalm/unstable-namespace build/translation-checker-print-rtl-limited-characters cache-delete-notfound-size catchNullHash certificate-manager-fallback check-phpoutdated checkColExists chore/48408/rename-twitter-to-x chore/48409/replace-diaspora-and-twitter chore/add-deprecation-date chore/cleanup-warnings chore/deps/nextcloud-coding-standard chore/deps/openapi-extractor chore/drop-skjnldsv/sanitize-svg chore/files-consolitate-route-logic chore/force-style-lint chore/gender-neutral-language chore/github/groupware-code-owners-update chore/lazy-mount-providers chore/legacy-updatenotification chore/migrate-encryption-away-from-hooks chore/migrate-vite chore/ncselect-label-warning chore/nextcloud-dialogs chore/nextcloud-dialogs-master chore/nextcloud-dialogs-stable29 chore/nextcloud-vue-8.13.0 chore/node-moved-old-node chore/noid/coverage chore/noid/git-blame-ignore-revs chore/prepare-oc_repair-unit10 chore/remove-deprecated-aliases chore/remove-ijob-execute chore/remove-ilogger chore/remove-legacy-files-scripts chore/remove-legacy-settings-fors chore/remove-old-test chore/remove-travis chore/update-gw-codeowners-2 chore/update-nc-libs-stable29 chore/update-nc-libs-stable30 chore/update-sass-loader chore/update_mysql_setup_check_i18n chore/use-nextcloud-cypress-docker-node chore/use-public-api-helper ci-fix-30 ci/49145/php-8.4-external-storages ci/noid/debug-broken-ci ci/noid/enable-required-php-extensions ci/noid/improve-running-psalm-locally ci/noid/php-8.4 ci/noid/prepare-phpunit-10 ci/noid/require-up-to-date-psalm-paseline ci/noid/skip-other-vendor-bins-when-only-running-psalm ci/noid/try-to-fix-smb-kerberos ci/noid/update-integration-test-stuff ci/oracle ci/oracle-2 ci/phpunit-10 ci/psalm/imagick-extension ci/revert/47342 clean/version-ocp cleanup/event/trashbin clear-pending-two-factor-tokens-also-from-configuration clearKeysInBatches config-carddav-sync-request-timeout container-optimizations contctsinteraction-usersetting copy-share-unmasked copy-update-cache-excluded dav-fix-birthday-sync dav-open-log-path dav-push-sync dav-webcal-default-refresh-rate davTagColor db-error-logging-27 db-error-logging-28 dbQueriesExecStmt dbQueriesExecStmt2 dbQueriesExecStmt3 dbQueriesToMaster debt/noid/ignore-docker-image-lock-file debt/noid/user-changed-event debug-file-exists-backtrace debug/66440/logs-for-debugging-slow-user-list debug/doctrine/dbal debug/noid/imaginary debug/noid/log-ram-usage-with-threshold debug/noid/log-reason-token-mismatch debug/noid/log-reason-token-mismatch-stable27 debug/preview-invalid-id debug/snae def-share-provider-filecache-joins deleteExistingTarget dependabot/composer/aws/aws-sdk-php-3.324.13 dependabot/composer/build/integration/behat/behat-3.17.0 dependabot/composer/doctrine/dbal-3.9.x dependabot/composer/doctrine/dbal-4.0.4 dependabot/composer/giggsey/libphonenumber-for-php-lite-8.13.45 dependabot/composer/giggsey/libphonenumber-for-php-lite-8.13.48 dependabot/composer/guzzlehttp/guzzle-7.9.2 dependabot/composer/laravel/serializable-closure-1.3.5 dependabot/composer/mlocati/ip-lib-1.18.1 dependabot/composer/sabre/dav-4.7.0 dependabot/composer/stable28/aws/aws-sdk-php-3.240.11 dependabot/composer/stable30/doctrine/dbal-3.9.1 dependabot/composer/stable30/giggsey/libphonenumber-for-php-lite-8.13.45 dependabot/composer/stable30/guzzlehttp/guzzle-7.8.2 dependabot/composer/stable30/laravel/serializable-closure-1.3.5 dependabot/composer/stable30/symfony-6.4 dependabot/composer/stable30/web-auth/webauthn-lib-4.8.7 dependabot/composer/symfony-6.4 dependabot/composer/symfony/string-6.4.13 dependabot/composer/vendor-bin/cs-fixer/nextcloud/coding-standard-1.3.0 dependabot/composer/vendor-bin/cs-fixer/nextcloud/coding-standard-1.3.2 dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.0.1 dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.1.0 dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.2.2 dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.3.0 dependabot/composer/web-auth/webauthn-lib-4.9.1 dependabot/github_actions/github-actions-52fdf4f9c4 dependabot/github_actions/github-actions-560ea78344 dependabot/github_actions/github-actions-74498d6e3a dependabot/github_actions/github-actions-aa3137d618 dependabot/npm_and_yarn/babel-loader-9.2.1 dependabot/npm_and_yarn/babel/node-7.25.7 dependabot/npm_and_yarn/babel/node-7.26.0 dependabot/npm_and_yarn/babel/plugin-transform-private-methods-7.25.4 dependabot/npm_and_yarn/babel/plugin-transform-private-methods-7.25.7 dependabot/npm_and_yarn/babel/plugin-transform-private-methods-7.25.9 dependabot/npm_and_yarn/core-js-3.39.0 dependabot/npm_and_yarn/cross-spawn-7.0.6 dependabot/npm_and_yarn/cypress-13.15.0 dependabot/npm_and_yarn/debounce-2.1.1 dependabot/npm_and_yarn/debounce-2.2.0 dependabot/npm_and_yarn/dompurify-3.1.7 dependabot/npm_and_yarn/elliptic-6.6.0 dependabot/npm_and_yarn/eslint-plugin-cypress-4.1.0 dependabot/npm_and_yarn/focus-trap-7.6.0 dependabot/npm_and_yarn/jquery-ui-1.14.0 dependabot/npm_and_yarn/jquery-ui-1.14.1 dependabot/npm_and_yarn/libphonenumber-js-1.11.16 dependabot/npm_and_yarn/libphonenumber-js-1.11.9 dependabot/npm_and_yarn/marked-14.1.1 dependabot/npm_and_yarn/marked-15.0.0 dependabot/npm_and_yarn/marked-15.0.4 dependabot/npm_and_yarn/mime-4.0.6 dependabot/npm_and_yarn/multi-2299424a7d dependabot/npm_and_yarn/multi-9423f4c335 dependabot/npm_and_yarn/multi-cf87d80143 dependabot/npm_and_yarn/multi-d66d039ac5 dependabot/npm_and_yarn/nanoid-3.3.8 dependabot/npm_and_yarn/nextcloud/axios-2.5.1 dependabot/npm_and_yarn/nextcloud/calendar-availability-vue-2.2.4 dependabot/npm_and_yarn/nextcloud/cypress-1.0.0-beta.12 dependabot/npm_and_yarn/nextcloud/cypress-1.0.0-beta.9 dependabot/npm_and_yarn/nextcloud/upload-1.6.1 dependabot/npm_and_yarn/nextcloud/vue-8.19.0 dependabot/npm_and_yarn/nextcloud/vue-8.20.0 dependabot/npm_and_yarn/pinia-2.2.6 dependabot/npm_and_yarn/pinia-2.3.0 dependabot/npm_and_yarn/pinia/testing-0.1.6 dependabot/npm_and_yarn/pinia/testing-0.1.7 dependabot/npm_and_yarn/puppeteer-23.10.4 dependabot/npm_and_yarn/puppeteer-23.4.1 dependabot/npm_and_yarn/puppeteer-23.5.0 dependabot/npm_and_yarn/query-string-9.1.1 dependabot/npm_and_yarn/sass-1.79.3 dependabot/npm_and_yarn/sass-1.81.0 dependabot/npm_and_yarn/sass-loader-16.0.3 dependabot/npm_and_yarn/simplewebauthn/browser-11.0.0 dependabot/npm_and_yarn/simplewebauthn/types-12.0.0 dependabot/npm_and_yarn/stable28/babel/preset-typescript-7.24.7 dependabot/npm_and_yarn/stable28/browserslist-useragent-regexp-4.1.3 dependabot/npm_and_yarn/stable28/cypress-13.13.3 dependabot/npm_and_yarn/stable28/cypress-if-1.12.6 dependabot/npm_and_yarn/stable28/cypress/vue2-2.1.1 dependabot/npm_and_yarn/stable28/dompurify-3.1.7 dependabot/npm_and_yarn/stable28/karma-6.4.4 dependabot/npm_and_yarn/stable28/libphonenumber-js-1.10.64 dependabot/npm_and_yarn/stable28/moment-timezone-0.5.46 dependabot/npm_and_yarn/stable28/nextcloud/calendar-availability-vue-2.2.4 dependabot/npm_and_yarn/stable28/nextcloud/cypress-1.0.0-beta.10 dependabot/npm_and_yarn/stable28/nextcloud/cypress-1.0.0-beta.12 dependabot/npm_and_yarn/stable28/nextcloud/cypress-1.0.0-beta.9 dependabot/npm_and_yarn/stable28/nextcloud/dialogs-5.3.8 dependabot/npm_and_yarn/stable28/nextcloud/moment-1.3.2 dependabot/npm_and_yarn/stable28/nextcloud/password-confirmation-5.1.1 dependabot/npm_and_yarn/stable28/pinia/testing-0.1.6 dependabot/npm_and_yarn/stable28/pinia/testing-0.1.7 dependabot/npm_and_yarn/stable28/testing-library/jest-dom-6.4.8 dependabot/npm_and_yarn/stable28/types/jest-29.5.14 dependabot/npm_and_yarn/stable28/underscore-1.13.7 dependabot/npm_and_yarn/stable29/jquery-ui-1.13.3 dependabot/npm_and_yarn/stable29/jsdoc-4.0.3 dependabot/npm_and_yarn/stable29/jsdoc-4.0.4 dependabot/npm_and_yarn/stable29/moment-timezone-0.5.46 dependabot/npm_and_yarn/stable29/nextcloud/cypress-1.0.0-beta.12 dependabot/npm_and_yarn/stable29/nextcloud/sharing-0.2.4 dependabot/npm_and_yarn/stable29/nextcloud/upload-1.7.1 dependabot/npm_and_yarn/stable29/nextcloud/vue-8.17.1 dependabot/npm_and_yarn/stable29/pinia/testing-0.1.7 dependabot/npm_and_yarn/stable29/throttle-debounce-5.0.2 dependabot/npm_and_yarn/stable29/types/jest-29.5.14 dependabot/npm_and_yarn/stable29/vue-material-design-icons-5.3.1 dependabot/npm_and_yarn/stable29/vueuse/components-10.11.1 dependabot/npm_and_yarn/stable29/vueuse/core-10.11.1 dependabot/npm_and_yarn/stable30/cypress-13.13.3 dependabot/npm_and_yarn/stable30/cypress-if-1.12.6 dependabot/npm_and_yarn/stable30/debounce-2.1.1 dependabot/npm_and_yarn/stable30/dompurify-3.1.7 dependabot/npm_and_yarn/stable30/jsdoc-4.0.4 dependabot/npm_and_yarn/stable30/libphonenumber-js-1.11.10 dependabot/npm_and_yarn/stable30/libphonenumber-js-1.11.11 dependabot/npm_and_yarn/stable30/libphonenumber-js-1.11.16 dependabot/npm_and_yarn/stable30/libphonenumber-js-1.11.9 dependabot/npm_and_yarn/stable30/mime-4.0.6 dependabot/npm_and_yarn/stable30/moment-timezone-0.5.46 dependabot/npm_and_yarn/stable30/nextcloud/axios-2.5.1 dependabot/npm_and_yarn/stable30/nextcloud/calendar-availability-vue-2.2.4 dependabot/npm_and_yarn/stable30/nextcloud/files-3.10.1 dependabot/npm_and_yarn/stable30/nextcloud/sharing-0.2.4 dependabot/npm_and_yarn/stable30/nextcloud/upload-1.7.1 dependabot/npm_and_yarn/stable30/pinia/testing-0.1.5 dependabot/npm_and_yarn/stable30/pinia/testing-0.1.6 dependabot/npm_and_yarn/stable30/pinia/testing-0.1.7 dependabot/npm_and_yarn/stable30/query-string-9.1.1 dependabot/npm_and_yarn/stable30/types/dockerode-3.3.32 dependabot/npm_and_yarn/stable30/types/jest-29.5.13 dependabot/npm_and_yarn/stable30/types/jest-29.5.14 dependabot/npm_and_yarn/stable30/underscore-1.13.7 dependabot/npm_and_yarn/stable30/vue-material-design-icons-5.3.1 dependabot/npm_and_yarn/stable30/vueuse/components-10.11.1 dependabot/npm_and_yarn/stable30/vueuse/core-10.11.1 dependabot/npm_and_yarn/stable30/vueuse/integrations-10.11.1 dependabot/npm_and_yarn/testing-library/jest-dom-6.6.3 dependabot/npm_and_yarn/tslib-2.7.0 dependabot/npm_and_yarn/types/dockerode-3.3.32 dependabot/npm_and_yarn/typescript-5.6.2 dependabot/npm_and_yarn/vitejs/plugin-vue2-2.3.3 dependabot/npm_and_yarn/vitest/coverage-v8-2.1.1 dependabot/npm_and_yarn/vitest/coverage-v8-2.1.5 dependabot/npm_and_yarn/vitest/coverage-v8-2.1.8 dependabot/npm_and_yarn/vue-material-design-icons-5.3.1 dependabot/npm_and_yarn/vueuse/components-11.1.0 dependabot/npm_and_yarn/vueuse/core-11.3.0 dependabot/npm_and_yarn/vueuse/integrations-11.1.0 dependabot/npm_and_yarn/wait-on-8.0.0 dependabot/npm_and_yarn/wait-on-8.0.1 dependabot/npm_and_yarn/webdav-5.7.1 dependabot/npm_and_yarn/workbox-webpack-plugin-7.3.0 dependabot/npm_and_yarn/zip.js/zip.js-2.7.53 dependabot/npm_and_yarn/zip.js/zip.js-2.7.54 dependaniel/aws-sdk-for-28 dependaniel/aws-sdk-for-29 deps/noid/bump-3rdparty-hash dept-remove-csrf-dependency-from-request detect-inadvertent-config-overlaps direct-access-shared-calendar encoding-wrapper-metadata encryption-version-version enh/30551/weather-status-support-more-codes enh/add-details-to-code-integrity-check enh/add-first-login-timestamp enh/add-rich-object-formatter enh/add-user-creation-date enh/displayname-group-search enh/do-not-enforce-cache-for-cli enh/favorite-search enh/identityproof/key_storage enh/issue-48528-disable-imip-messages enh/more-task-types enh/no-issues/share-entry-link enh/noid/allow-configure-config.owner enh/noid/avatar-chinese enh/noid/disable-user-unmount enh/noid/fix-personal-settings-layout enh/noid/fix-properties-files enh/noid/gs.federation.auto_accept_shares enh/noid/navigationentryevent enh/noid/returns-formated-app-values-2 enh/noid/signed-request enh/noid/taskprocessing-commands-task-errors enh/noid/taskprocessing-include-error-msg-in-tasks enh/noid/testing-namespace enh/noid/update-o.c.u-wording enh/noid/user-preferences enh/repair-mimetype-job enh/test-mtime-after-move enh/trashbin-scan-command enh/users-configured-quota-value enhancement/passwordless-login-token ensureTemplateFolder ernolf/configurable_sharetoken_length feat-setupcheck-php-sapi-fpm-max-children feat/26668/notifications-for-shared-calendars-2 feat/31420/bidi-backend-support feat/45085/validate-config-values feat/46528/ask-confirm-extension-change feat/add-addressbook-list-command feat/add-datetime-qbmapper-support feat/add-mount-change-log feat/add-proofread-tasktype feat/add-query-param-to-force-language feat/add-rector-config feat/add-subscription-via-occ feat/allow-account-local-search feat/allow-enum-entity feat/allow-getter-setter-decl-fors feat/allow-oauth-grant-bypass feat/auto-accept-trusted-server feat/caption-cant-upload feat/check-enterprise feat/clipboard-fallback feat/contacts-menu/js-hook-action feat/core/features-api feat/cors-on-webdav feat/database/primary-replica-split-stable28 feat/database/query-result-fetch-associative-fetch-num feat/dav-pagination feat/dav-trashbin-backend feat/dav/calendar-object-admin-audit-log feat/declarative-settings/typed-abstraction feat/disable-share-deletion feat/dispatcher/log-raw-response-data feat/edit-share-token feat/empty-trash feat/expose-nc-groups-to-system-addressbook-contacts feat/file-conversion-provider feat/file-list-actions feat/files-bulk-tagging feat/files-bulk-tagging-followup feat/files-shortcuts feat/files-shortcuts-2 feat/files/chunked-upload-config-capabilities feat/files/resumable-uploads feat/files_sharing/co-owner feat/issue-3786-allow-shared-calendars feat/issue-994-two-factor-api feat/log-large-assets feat/logger-allow-psr-loglevel feat/mail-provider-settings feat/make-setup-check-trait-public feat/make-tasks-types-toggleable feat/namespace-group-route feat/nfo feat/node-dist feat/noid/add-fake-summary-provider feat/noid/happy-birthday feat/noid/lexicon-configurable-default-value feat/noid/priority-notifications feat/noid/ratelimit-header feat/noid/support-email-mentions feat/occ-files-cleanup-help feat/ocp/meetings-api-requirements feat/pagination-cardav feat/photo-cache-webp feat/php-setup-file-upload feat/postgres-13-17 feat/profile-app feat/public-log-level feat/reduce_available_languages_set feat/restore-to-original-dir feat/restrict-tag-creation feat/row_format_check feat/search-by-parent-id feat/settings/advanced-deploy-options feat/settings/app_api_apps_management feat/settings/too-much-caching-setup-check feat/sharing-title feat/shipped/app_api feat/switch-from-settype-to-casts feat/systemtags-bulk-create-list feat/systemtags-missing-attrs feat/systemtags-public feat/tags-colors feat/tags-colors-2 feat/taskprocessing/TextToImageSingle feat/verbose-cron feat/workflow-auto-update-cypress.yml feat/workflow-auto-update-reuse.yml feat/zip-folder-plugin feat/zst feature/23308/create-new-favorite-dashboard-widget feature/add-allowed-view-extensions-config feature/files-list-occ-command feature/noid/config-lexicon feature/noid/wrapped-appconfig feature/settings-design-improvements fieat/profile-pronounces file-info-key-location-27 filecache-chunking files-external-setup-path filesVersionsFuncRefact fix-44318-remote-share-not-listed fix-copying-or-moving-from-shared-groupfolders fix-dav-properties-column-type fix-federated-group-shares-when-no-longer-found-in-remote-server fix-files-external-smbclient-deprecated-binaryfinder fix-nc-env-inclusion fix-remove-auto-guessing-for-preview-semaphore fix-setupcheck-filelocking fix-setupcheck-webfinger-400 fix-setupchecks-normalizeUrl-url-filter fix-show-original-owner fix-updater-secret fix/43260 fix/44288/catch-filesmetadatanotfound-exception fix/45717/hide-last-modified-for-shipped-apps fix/45884/accept-notification fix/46920/respect-no-download fix/47275/driverException fix/47658/upgrade-version-3100005 fix/48012/fix-share-email-send-mail-share fix/48415/do-not-rename-main-share-link fix/48437/dont-exclude-user fix/48829/visual-feedback-4-encryption-toggle fix/48860/stop-silent-expiry-date-addition-on-link-shares fix/48993 fix/49473/task-url fix/788/add-password-confirmation-required-to-user-storage-create fix/788/add-password-required-to-external-storages fix/AppStore--remove-unneeded-warning fix/activity-log-for-favorites-in-dav fix/add-function-type-for-mimetype-sanitizer fix/add-password-confirmation-to-save-global-creds fix/adjust-default-color-background-plain-to-new-background fix/ai-settings fix/align-avatar-visibility fix/allow-enforcing-windows-support fix/allow-quota-wrapper-check fix/app-discover fix/app-store-groups fix/app-store-markdown fix/app-store-reactivity fix/app-store-remove-force-enable fix/appconfig/sensitive-keys-external-jwt-private-key fix/appframework/csrf-request-checks fix/apps/wrong-missing-casts fix/appstore-regressions fix/auth-token-uniq-constraint-violation-handling fix/auth/authtoken-activity-update-in-transaction fix/avoid-invalid-share-on-transfer-ownership fix/background-image fix/backgroundjobs/adjust-intervals-time-sensitivities fix/baseresponse/xml-element-value-string-cast fix/better-drag-n-drop fix/bring-back-zip-event fix/broken-event-notifications fix/cachebuster-stable30 fix/caldav/event-organizer-interaction fix/caldav/event-reader-duration fix/carddav/create-sab-concurrently fix/cast-node-names-to-string fix/clarify-app-manager-methods fix/cloud-id-input fix/comment/children-count-integer fix/config/additional-configs fix/contactsmigratortest fix/core-session-logout-logging fix/cron-strict-cookie fix/cron/log-long-running-jobs-stable26 fix/dashboard--performance-and-refactoring fix/datadirectory-protection-setupcheck fix/dav-add-strict-type-declarations fix/dav-cast-content-lenght-to-int fix/dav-cast-params-to-string fix/dav/abort-incomplete-caldav-changes-sync fix/dav/carddav-read-card-memory-usage fix/dav/image-export-plugin-fallback fix/dav/limit-sync-token-created-at-updates-stable28 fix/dav/limit-sync-token-created-at-updates-stable29 fix/dav/view-only-check fix/declarative-settings-priority fix/deps/php-seclin fix/do-not-throw-from-countusers fix/download-non-files-view fix/drop-v-html fix/duplicated-conflict-resolution fix/edit-locally-labels fix/empty-file-0byte-stable30 fix/encode-guest-file-request fix/encrypt-decrypt-password fix/encryption/web-ui-bogus fix/entity/strict-types fix/eslint-warning fix/eslint-warnings fix/etag-constraint-search-query fix/external-storage-controller-cast-id fix/external-storage-int fix/fail-safe-files-actions fix/federated-users fix/federation-certificate-store fix/file-list-filters-reset fix/file-type-filter-state fix/files--handle-empty-view-with-error fix/files--list-header-button-title fix/files-add-move-info fix/files-duplicated-nodes fix/files-page-title fix/files-proper-loading-icon fix/files-rename fix/files-rename-esc fix/files-rename-store fix/files-renaming fix/files-scroll-perf fix/files/delete-display-no-trashbin fix/files/preview-service-worker-registration fix/files/reactivity-inject fix/files_external/forbidden-exception fix/files_external_scan fix/files_sharing--global-search-in-select fix/files_sharing/cleanup-error-messages fix/files_sharing/disable-editing fix/files_sharing/ocm-permissions fix/filesreport-cast-fileId-to-int fix/filter-for-components-explicitly fix/fix-admin-audit-event-listening fix/fix-copy-to-mountpoint-root fix/fix-disabled-user-list-for-subadmins fix/fix-email-share-transfer-accross-storages fix/fix-int-casting fix/fix-ldap-setupcheck-crash fix/fix-server-tests fix/fix-share-creation-error-messages fix/fix-storage-interface-check fix/flaky-live-photos fix/forbidden-files-insensitive fix/forward-user-login-if-no-session fix/get-managers-as-subadmin fix/gracefully-parse-trusted-certificates fix/handle-errors-in-migrate-key-format fix/http/template-valid-status-codes fix/imip-test-expects-integer fix/install-dbport-unused fix/installation-wording fix/invalid-app-config fix/invalid-copied-share-link fix/invalid-mtime fix/invitations-named-parameter fix/issue-12387-delete-invitations fix/issue-13862 fix/issue-3021-return-no-content-instead-of-error fix/issue-34720 fix/issue-47879-property-serialization fix/issue-48079-windows-time-zones fix/issue-48528-disable-itip-and-imip-messages fix/issue-48528-disable-itip-and-imip-messages-2 fix/issue-48732-exdate-rdate-property-instances fix/issue-49756-translations fix/issue-8458-imip-improvements-2 fix/istorage/return-types fix/iurlgenerator/url-regex-markdown-parenthesis fix/ldap-avoid-false-positive-mapping fix/line-height-calc fix/link-share-conflict-modal fix/lock-session-during-cookie-renew fix/log-login-flow-state-token-errors fix/log-memcache-log-path-hash fix/login-origin fix/mailer-binaryfinder-fallback fix/make-router-reactive fix/migrate-encryption-away-from-hooks fix/move-email-logic-local-user-backend fix/move-storage-constructor-to-specific-interface fix/multi-select fix/nav-quota-new-design fix/no-issue/enforced-props-checks fix/no-issue/file-request-disable-when-no-public-upload fix/no-issue/link-sharing-defaults fix/no-issue/no-reshare-perms-4-email-shares fix/no-issue/proper-share-sorting fix/no-issue/show-file-drop-permissions-correctly fix/no-issues/add-encryption-available-config fix/noid/appconfig-setmixed-on-typed fix/noid/clean-config-code fix/noid/count-disabled-correct fix/noid/debug-objectstorage-s3 fix/noid/deleted-circles-share fix/noid/deprecation-correct-case fix/noid/empty-path-for-files-versions fix/noid/federation-really-surely-init-token fix/noid/fix-try-login fix/noid/get-fedid-from-cloudfed-provider fix/noid/ignore-unavailable-token fix/noid/init-navigation-data-too-soon fix/noid/ldap-displayname-cached fix/noid/ldap-n-counted-mapped-users fix/noid/ldap-remnants-as-disabled-global fix/noid/no-emails-for-user-shares fix/noid/null-safe-metadata fix/noid/path-hash-prep-statement fix/noid/refresh-filesize-on-conflict-24 fix/noid/return-verified-email fix/noid/set-ext-pwd-as-sensitive fix/noid/test-samba-with-self-hosted fix/noid/textprocessing-list-types fix/noid/textprocessing-schedule-taskprocessing-provider fix/noid/try-latest-buildjet-cache fix/noid/update-codeowners-nfebe fix/note-icon-color fix/null-label fix/oc/inheritdoc fix/ocm-host fix/ocmdiscoveryservice/cache-errors fix/openapi/array-syntax fix/overide-itip-broker fix/ownership-transfer-source-user-files fix/password-field-sharing fix/people-translation fix/pick-folder-smart-picker fix/pronouns-tests fix/provisionApi-status-codes fix/proxy-app-screenshot fix/psalm/enabled-find-unused-baseline-entry fix/psalm/throws-annotations fix/psalm/update-baseline fix/public-copy-move-stable-28 fix/public-get fix/qbmapper/find-entities-return-type fix/querybuilder/oracle-indentifier-length fix/querybuilder/output-columns-aliases fix/reasons-to-use fix/recently_active_pgsql fix/rector-use-statements fix/refactor-user-access-to-file-list fix/remove-needless-console-log fix/remove-references-to-deprected-storage-interface fix/remove-share-hint-exception-wrapping fix/resiliant-user-removal fix/resolve_public_rate_limit fix/restore-sucess fix/retry-delete-if-locked fix/rtl-regession fix/s3-verify-peer-setting fix/s3configtrait/proxy-false fix/sabre-dav-itip-broker fix/sass fix/session-cron fix/session/log-likely-lost-session-conditions fix/session/log-session-id fix/session/log-session-start-error fix/session/session-passphraze-handling fix/session/transactional-remember-me-renewal fix/settings--disable-discover-when-app-store-is-disabled fix/settings-command fix/settings/admin/ai/textprocessing fix/settings/ex-apps-search fix/settings/userid-dependency-injection fix/share-notifications fix/sharing-entry-link fix/sharing-password-submit-create fix/sharing-sidebar-tab-default fix/shipped-app-version fix/stable27 fix/stable28-uploader fix/stable28/webcal-subscription-jobs-middleware fix/stable29/numerical-userid-file-item-display fix/stable29/webcal-subscription-jobs-middleware fix/storage-local/get-source-path-spl-file-info fix/storage/get-directory-content-return-type fix/storage/get-owner-false fix/storage/method-docs-inheritance fix/strict-types fix/subadmin-user-groups fix/tags/boolean-user-has-tags fix/task-processing-api-controller/dont-use-plus fix/taskprocessing-api-get-file-contents fix/taskprocessing-better-errors fix/taskprocessing-manager/php-notice fix/texttotextchatwithtools-translator-notes fix/themes-layout fix/theming/default-theme-selection fix/ticket_9672007/share_mail fix/typo-recommended-apps fix/undefined-response fix/unified-search-ctrl-f fix/unified-search-empty-sections fix/update-share-entry-quick-select fix/updatenotification-legacy-toast fix/use-invokeprivate-for-test fix/user_status/harden-api fix/usertrait/backend-initialization fix/view-in-folder-conditions fix/view-only-preview fix/view/catch-mkdir-exception-non-existent-parents fix/weather_status/search-address-offline-errors fix/webcal-subscription-jobs-middleware fix/wrong-image-type fixHeaderStyleSettings fixKeyExFileExt followup/39574/ocm-provider-without-beautiful-urls followup/47329/add-all-types-to-handling followup/48086/fix-more-activity-providers forbid-moving-subfolder-24 fox/noid/extended-auth-on-webdav fwdport/48445/master getMountsForFileId-non-sparse guzzleHandler hasTableTaskprocessingTasks ignore-write-test-unlink-err instance-quota issue_45523_actionmenu_in_multiple_actions_menu_bar joblist-build-error-log jr-quota-exceeded-admin-log jr/enh/updates/options-buttons-web-ui jr/meta/issue-template-bugs-closed-link jtr-settings-memory-limit-details jtr/chore-bug-report-logs jtr/desc-and-help-plus-minor-fixes-files-scan jtr/dns-noisy-dns-get-record jtr/fix-25162 jtr/fix-40666-fallback-copy jtr/fix-45671 jtr/fix-46609-delegation-add-group-overlap jtr/fix-hash-hkdf-valueerror jtr/fix-ipv6-zone-ids-link-local jtr/fix-streamer-zip64 jtr/fix-tests/mysql-phpunit-health jtr/fix-updater-cleanup-job-logging jtr/fix-wipe-missing-token-handling jtr/occ-maintenance-mode-desc jtr/router-light-refactoring jtr/setup-checks-heading jtr/test-binaryfinder kerberos-saved-ticket kerberos-saved-ticket-27 location-provider lockThreadsOlderThan120d log-event-recursion login-less-custom-bundle man/backport/45237/stable27 master merge-token-updates metadata-storage-id mgallien/fix/retry_cache_operations_on_deadlock mixedSetTTL mount-move-checks move-from-encryption-no-opt moveStrictTyping mysqlNativePassCi new-julius no-issue-use-correct-exceptions-in-share-class noissue-refactor-share-class normlize-less notfound-debug-mounts obj-delete-not-found obj-delete-not-found-20 object-store-move-db object-store-move-fixes object-store-trash-move oc-wnd-migrate oc-wnd-migrate-25 occ-as-root occ-upgrade-reminder occ-upgrade-wording oci-ci-faststart ocs-user-info-quota-optimize optionally-hide-hidden-files-in-public-share-access oracle-share-reminder passedLockValueIsIntOrNull patch/61084/disable-clear-cache patch/hash-return-null patch/performance-scckit path-available perf/core/jobs-index perf/files/chunked-upload-default-100-mib perf/log-excessive-memory-consumption perf/log-high-memory-requests perf/noid/split-getSharedWith-query-into-more-performance-sets printOccHumanFriendly printOnlyOnceText profile-request pull_request-trigger query-req-id-26 rakekniven-patch-1 rakekniven-patch-2 readd-object-store-phpunit refactSmallAdjust refactor/app/remove-register-routes refactor/apps/constructor-property-promotion refactor/apps/declare-strict-types refactor/apps/php55-features refactor/appstore-modernization refactor/background-service refactor/class-string-constant refactor/dirname-to-dir refactor/drop-to-uploader refactor/elvis refactor/files-cleanup refactor/files-deprecated-share-types refactor/files-filelist-width refactor/files-required-navigation refactor/move-to-new-activity-exception refactor/provide-file-actions-through-composable refactor/rector/extend-scope refactor/register-routes refactor/self-class-reference refactor/settings/mail-settings-parameters refactor/storage/constructors refactor/storage/strong-param-types refactor/storage/strong-type-properties refactor/stream-encryption/typings refactor/template-layout refactor/void-tests refactor/zip-event release/28.0.11 release/28.0.11_rc1 release/28.0.12 release/28.0.12_rc1 release/28.0.12_rc2 release/28.0.14 release/28.0.14_rc1 release/29.0.0beta2 release/29.0.8 release/29.0.8_rc1 release/29.0.9 release/29.0.9_rc1 release/29.0.9_rc2 release/30.0.1_rc release/30.0.1_rc1 release/30.0.1_rc2 release/30.0.2 release/30.0.2_rc1 release/30.0.2_rc2 release/30.0.4 release/30.0.4_rc1 remove-filecache-joins remove-locking-config-sample remove-non-accessible-shares removeNoisyTextEmails repair-mimetype-expensive-squashed-29 repair-tree-invalid-parent reshare-permission-logic-27 revert-49004 revert-49650-backport/49293/stable30 revert-49825-revert-49650-backport/49293/stable30 revert/41453 revert/openapi-extractor revoke-admin-overwrite-8 reworkShareExceptions rfc/global-rate-limit rfc/request-timeout run-test-mime-type-icon-again s3-bucket-create-exception s3-disable-multipart s3-disable-multipart-remove-debug safety-net-null-check scan-home-ext-storae scanner-invalid-data-log scckit-backports seekable-http-size-24 sftp-fopen-write-stat-cache sftp-known-mtime sharding-code-fixes sharding-existing sharding-select-fixes share-list-set-owner share-mount-check-no-in share-move-storage-error share-reminder-sharding share-root-meta-cache skjnldbot/nextcloud-upload smb-acl-fail-soft smb-notify-test smb-systembridge stable-swift-v3 stable10 stable11 stable12 stable13 stable14 stable15 stable16 stable17 stable18 stable19 stable20 stable21 stable22 stable23 stable24 stable25 stable26 stable27 stable28 stable28BackportMissingSetTTL stable29 stable30 stable9 storage-cache-not-exists storage-debug-info storage-id-cache-memcache stream-assembly-stream-size techdebt/noid/add-parameter-typehints techdebt/noid/more-useful-debug-logs test-scanner-no-transactions-26 test/eol-check test/eol-check-26 test/fix-cypress test/folder-tree test/integration/cleanup-logs tests/fix-jest-leftover tests/template-workflow transfer-share-skip-notfound try-non-recursive-source-27 update-phpdoc-for-folder-get update-stale-bot-configuration updater-change-mimetype-objectstore useHttpFramework useOCPClassesTrashbin usermountcache-filecache-joins validateProvidedEmail wrapper-instanceof-resiliant-squash