From 5d6375debf7fd456c3865908c3508ffcde9b360e Mon Sep 17 00:00:00 2001 From: Maurits van Rees Date: Sat, 18 Jan 2025 23:24:13 +0100 Subject: [PATCH] Prevent deprecation warnings. --- news/4090.bugfix | 1 + src/plone/restapi/bbb.py | 10 ++++++++++ src/plone/restapi/configure.zcml | 6 +++--- src/plone/restapi/profiles/performance/registry.xml | 2 +- src/plone/restapi/search/handler.py | 9 +-------- src/plone/restapi/serializer/dxcontent.py | 2 +- src/plone/restapi/services/addons/configure.zcml | 2 +- src/plone/restapi/services/aliases/configure.zcml | 8 ++++---- src/plone/restapi/services/auth/configure.zcml | 6 +++--- src/plone/restapi/services/content/configure.zcml | 12 ++++++------ src/plone/restapi/services/content/utils.py | 2 +- src/plone/restapi/services/contextnavigation/get.py | 10 +++++----- .../restapi/services/controlpanels/configure.zcml | 8 ++++---- src/plone/restapi/services/database/configure.zcml | 2 +- .../restapi/services/linkintegrity/configure.zcml | 2 +- src/plone/restapi/services/locking/configure.zcml | 8 ++++---- src/plone/restapi/services/navigation/get.py | 4 ++-- .../restapi/services/querysources/configure.zcml | 2 +- .../restapi/services/querystring/configure.zcml | 2 +- .../services/querystringsearch/configure.zcml | 4 ++-- src/plone/restapi/services/relations/configure.zcml | 6 +++--- src/plone/restapi/services/roles/configure.zcml | 2 +- src/plone/restapi/services/site/configure.zcml | 2 +- src/plone/restapi/services/site/get.py | 4 ++-- src/plone/restapi/services/system/configure.zcml | 2 +- .../restapi/services/transactions/configure.zcml | 4 ++-- src/plone/restapi/services/types/configure.zcml | 8 ++++---- src/plone/restapi/services/types/get.py | 2 +- src/plone/restapi/services/upgrade/configure.zcml | 4 ++-- .../restapi/services/vocabularies/configure.zcml | 2 +- src/plone/restapi/services/workflow/configure.zcml | 2 +- src/plone/restapi/tests/test_search.py | 2 +- .../restapi/tests/test_services_contextnavigation.py | 2 +- src/plone/restapi/tests/test_services_navroot.py | 2 +- src/plone/restapi/upgrades/configure.zcml | 6 +++--- 35 files changed, 78 insertions(+), 74 deletions(-) create mode 100644 news/4090.bugfix diff --git a/news/4090.bugfix b/news/4090.bugfix new file mode 100644 index 0000000000..3a0ea37c4b --- /dev/null +++ b/news/4090.bugfix @@ -0,0 +1 @@ +Prevent deprecation warnings. @mauritsvanrees diff --git a/src/plone/restapi/bbb.py b/src/plone/restapi/bbb.py index 6e54f1d84e..bbe8c0faef 100644 --- a/src/plone/restapi/bbb.py +++ b/src/plone/restapi/bbb.py @@ -5,6 +5,8 @@ from plone.base.interfaces import IImagingSchema from plone.base.interfaces import ILanguage from plone.base.interfaces import IMailSchema + from plone.base.interfaces import IMigratingPloneSiteRoot + from plone.base.interfaces import INavigationRoot from plone.base.interfaces import INavigationSchema from plone.base.interfaces import INonInstallable from plone.base.interfaces import INonStructuralFolder @@ -13,18 +15,25 @@ from plone.base.interfaces import ISecuritySchema from plone.base.interfaces import ISelectableConstrainTypes from plone.base.interfaces import ISiteSchema + from plone.base.interfaces import ITestCasePloneSiteRoot + from plone.base.navigationroot import get_navigation_root from plone.base.utils import base_hasattr from plone.base.utils import safe_callable from plone.base.utils import safe_hasattr from plone.base.utils import safe_text except ImportError: # BBB Plone 5.2 + from plone.app.layout.navigation.interfaces import INavigationRoot + from plone.app.layout.navigation.root import ( + getNavigationRoot as get_navigation_root, + ) from Products.CMFPlone.defaultpage import is_default_page from Products.CMFPlone.interfaces import IConstrainTypes from Products.CMFPlone.interfaces import IEditingSchema from Products.CMFPlone.interfaces import IImagingSchema from Products.CMFPlone.interfaces import ILanguage from Products.CMFPlone.interfaces import IMailSchema + from Products.CMFPlone.interfaces import IMigratingPloneSiteRoot from Products.CMFPlone.interfaces import INavigationSchema from Products.CMFPlone.interfaces import INonInstallable from Products.CMFPlone.interfaces import INonStructuralFolder @@ -33,6 +42,7 @@ from Products.CMFPlone.interfaces import ISecuritySchema from Products.CMFPlone.interfaces import ISelectableConstrainTypes from Products.CMFPlone.interfaces import ISiteSchema + from Products.CMFPlone.interfaces import ITestCasePloneSiteRoot from Products.CMFPlone.utils import base_hasattr from Products.CMFPlone.utils import safe_callable from Products.CMFPlone.utils import safe_hasattr diff --git a/src/plone/restapi/configure.zcml b/src/plone/restapi/configure.zcml index 8bd6c38c33..6d6ab0bace 100644 --- a/src/plone/restapi/configure.zcml +++ b/src/plone/restapi/configure.zcml @@ -52,7 +52,7 @@ title="plone.restapi testing" description="Adds sample content types for testing" provides="Products.GenericSetup.interfaces.EXTENSION" - for="Products.CMFPlone.interfaces.ITestCasePloneSiteRoot" + for="plone.restapi.bbb.ITestCasePloneSiteRoot" directory="profiles/testing" /> @@ -61,7 +61,7 @@ title="plone.restapi testing-workflows" description="Adds sample workflows for testing" provides="Products.GenericSetup.interfaces.EXTENSION" - for="Products.CMFPlone.interfaces.ITestCasePloneSiteRoot" + for="plone.restapi.bbb.ITestCasePloneSiteRoot" directory="profiles/testing-workflows" /> @@ -127,7 +127,7 @@ diff --git a/src/plone/restapi/profiles/performance/registry.xml b/src/plone/restapi/profiles/performance/registry.xml index b95fcf8861..f169f73704 100644 --- a/src/plone/restapi/profiles/performance/registry.xml +++ b/src/plone/restapi/profiles/performance/registry.xml @@ -1,6 +1,6 @@ - + icon 32:32 tile 64:64 diff --git a/src/plone/restapi/search/handler.py b/src/plone/restapi/search/handler.py index 2a362e05d5..22dda01fb8 100644 --- a/src/plone/restapi/search/handler.py +++ b/src/plone/restapi/search/handler.py @@ -1,5 +1,6 @@ from plone.registry.interfaces import IRegistry from plone.restapi.bbb import ISearchSchema +from plone.restapi.bbb import get_navigation_root from plone.restapi.interfaces import ISerializeToJson from plone.restapi.interfaces import IZCatalogCompatibleQuery from Products.CMFCore.utils import getToolByName @@ -7,14 +8,6 @@ from zope.component import getUtility -try: - from plone.base.navigationroot import get_navigation_root -except ImportError: - from plone.app.layout.navigation.root import ( - getNavigationRoot as get_navigation_root, - ) - - class SearchHandler: """Executes a catalog search based on a query dict, and returns JSON compatible results. diff --git a/src/plone/restapi/serializer/dxcontent.py b/src/plone/restapi/serializer/dxcontent.py index eb0fc44c6e..30e0a970e0 100644 --- a/src/plone/restapi/serializer/dxcontent.py +++ b/src/plone/restapi/serializer/dxcontent.py @@ -7,6 +7,7 @@ from plone.dexterity.interfaces import IDexterityContent from plone.dexterity.utils import iterSchemata from plone.restapi.batching import HypermediaBatch +from plone.restapi.bbb import base_hasattr from plone.restapi.deserializer import boolean_value from plone.restapi.interfaces import IFieldSerializer from plone.restapi.interfaces import IObjectPrimaryFieldTarget @@ -21,7 +22,6 @@ from plone.rfc822.interfaces import IPrimaryFieldInfo from plone.supermodel.utils import mergedTaggedValueDict from Products.CMFCore.utils import getToolByName -from Products.CMFPlone.utils import base_hasattr from Products.CMFCore.interfaces import IContentish from zope.component import adapter from zope.component import ComponentLookupError diff --git a/src/plone/restapi/services/addons/configure.zcml b/src/plone/restapi/services/addons/configure.zcml index b8140dc1fb..e05ca6f114 100644 --- a/src/plone/restapi/services/addons/configure.zcml +++ b/src/plone/restapi/services/addons/configure.zcml @@ -14,7 +14,7 @@ diff --git a/src/plone/restapi/services/aliases/configure.zcml b/src/plone/restapi/services/aliases/configure.zcml index b68d1050cb..b3417c7f15 100644 --- a/src/plone/restapi/services/aliases/configure.zcml +++ b/src/plone/restapi/services/aliases/configure.zcml @@ -7,7 +7,7 @@ method="GET" accept="application/json,application/schema+json" factory=".get.AliasesGet" - for="Products.CMFPlone.interfaces.IPloneSiteRoot" + for="plone.restapi.bbb.IPloneSiteRoot" permission="Products.CMFPlone.ManagePortalAliases" name="@aliases" /> @@ -16,7 +16,7 @@ method="GET" accept="text/csv" factory=".get.AliasesGet" - for="Products.CMFPlone.interfaces.IPloneSiteRoot" + for="plone.restapi.bbb.IPloneSiteRoot" permission="Products.CMFPlone.ManagePortalAliases" name="@aliases" /> @@ -41,7 +41,7 @@ @@ -57,7 +57,7 @@ diff --git a/src/plone/restapi/services/auth/configure.zcml b/src/plone/restapi/services/auth/configure.zcml index dec5304c50..e96d04197a 100644 --- a/src/plone/restapi/services/auth/configure.zcml +++ b/src/plone/restapi/services/auth/configure.zcml @@ -7,7 +7,7 @@ @@ -15,7 +15,7 @@ @@ -23,7 +23,7 @@ diff --git a/src/plone/restapi/services/content/configure.zcml b/src/plone/restapi/services/content/configure.zcml index 72073faafb..674d54523b 100644 --- a/src/plone/restapi/services/content/configure.zcml +++ b/src/plone/restapi/services/content/configure.zcml @@ -8,7 +8,7 @@ @@ -27,7 +27,7 @@ @@ -55,7 +55,7 @@ @@ -71,7 +71,7 @@ @@ -119,7 +119,7 @@ @@ -135,7 +135,7 @@ diff --git a/src/plone/restapi/services/content/utils.py b/src/plone/restapi/services/content/utils.py index beb23b98ef..a2d958990a 100644 --- a/src/plone/restapi/services/content/utils.py +++ b/src/plone/restapi/services/content/utils.py @@ -2,9 +2,9 @@ from DateTime import DateTime from plone.app.content.interfaces import INameFromTitle from plone.app.uuid.utils import uuidToObject +from plone.restapi.bbb import base_hasattr from plone.uuid.interfaces import IUUID from Products.CMFCore.utils import getToolByName -from Products.CMFPlone.utils import base_hasattr from random import randint from zExceptions import Unauthorized from zope.component import getUtility diff --git a/src/plone/restapi/services/contextnavigation/get.py b/src/plone/restapi/services/contextnavigation/get.py index 0fe0d7a054..df02a52854 100644 --- a/src/plone/restapi/services/contextnavigation/get.py +++ b/src/plone/restapi/services/contextnavigation/get.py @@ -6,12 +6,12 @@ from Acquisition import aq_parent from collections import UserDict from plone import api -from plone.app.layout.navigation.interfaces import INavigationRoot from plone.app.layout.navigation.navtree import buildFolderTree -from plone.app.layout.navigation.root import getNavigationRoot +from plone.restapi.bbb import get_navigation_root from plone.i18n.normalizer.interfaces import IIDNormalizer from plone.memoize.instance import memoize from plone.registry.interfaces import IRegistry +from plone.restapi.bbb import INavigationRoot from plone.restapi.bbb import INavigationSchema from plone.restapi.bbb import INonStructuralFolder from plone.restapi.bbb import is_default_page @@ -353,7 +353,7 @@ def getMimeTypeIcon(self, node): if not node["normalized_portal_type"] == "file": return fileo = node["item"].getObject().file - portal_url = getNavigationRoot(self.context) + portal_url = get_navigation_root(self.context) mtt = getToolByName(self.context, "mimetypes_registry") if fileo.contentType: ctype = mtt.lookup(fileo.contentType) @@ -562,7 +562,7 @@ def getRootPath(context, currentFolderOnly, topLevel, root_path): if root is not None: rootPath = "/".join(root.getPhysicalPath()) else: - rootPath = getNavigationRoot(context) + rootPath = get_navigation_root(context) # Adjust for topLevel if topLevel > 0: @@ -637,7 +637,7 @@ def __init__(self, context, data): if root is not None: rootPath = "/".join(root.getPhysicalPath()) else: - rootPath = getNavigationRoot(context) + rootPath = get_navigation_root(context) currentPath = "/".join(context.getPhysicalPath()) diff --git a/src/plone/restapi/services/controlpanels/configure.zcml b/src/plone/restapi/services/controlpanels/configure.zcml index 690490e2aa..beb718fe7a 100644 --- a/src/plone/restapi/services/controlpanels/configure.zcml +++ b/src/plone/restapi/services/controlpanels/configure.zcml @@ -19,7 +19,7 @@ @@ -27,7 +27,7 @@ @@ -35,7 +35,7 @@ @@ -43,7 +43,7 @@ diff --git a/src/plone/restapi/services/database/configure.zcml b/src/plone/restapi/services/database/configure.zcml index a4477cc3b0..428bcb5373 100644 --- a/src/plone/restapi/services/database/configure.zcml +++ b/src/plone/restapi/services/database/configure.zcml @@ -19,7 +19,7 @@ diff --git a/src/plone/restapi/services/linkintegrity/configure.zcml b/src/plone/restapi/services/linkintegrity/configure.zcml index 65da4559e8..377f17de3b 100644 --- a/src/plone/restapi/services/linkintegrity/configure.zcml +++ b/src/plone/restapi/services/linkintegrity/configure.zcml @@ -9,7 +9,7 @@ diff --git a/src/plone/restapi/services/locking/configure.zcml b/src/plone/restapi/services/locking/configure.zcml index abfd584a77..1c0b10a82a 100644 --- a/src/plone/restapi/services/locking/configure.zcml +++ b/src/plone/restapi/services/locking/configure.zcml @@ -14,7 +14,7 @@ @@ -30,7 +30,7 @@ @@ -46,7 +46,7 @@ @@ -62,7 +62,7 @@ diff --git a/src/plone/restapi/services/navigation/get.py b/src/plone/restapi/services/navigation/get.py index de9f91ed6b..8b4417feb3 100644 --- a/src/plone/restapi/services/navigation/get.py +++ b/src/plone/restapi/services/navigation/get.py @@ -1,6 +1,6 @@ from Acquisition import aq_inner from collections import defaultdict -from plone.app.layout.navigation.root import getNavigationRoot +from plone.restapi.bbb import get_navigation_root from plone.memoize.view import memoize from plone.memoize.view import memoize_contextless from plone.registry.interfaces import IRegistry @@ -66,7 +66,7 @@ def default_language(self): @property def navtree_path(self): - return getNavigationRoot(self.context) + return get_navigation_root(self.context) @property def current_language(self): diff --git a/src/plone/restapi/services/querysources/configure.zcml b/src/plone/restapi/services/querysources/configure.zcml index e44dfab15d..cb807d94d0 100644 --- a/src/plone/restapi/services/querysources/configure.zcml +++ b/src/plone/restapi/services/querysources/configure.zcml @@ -7,7 +7,7 @@ method="GET" accept="application/json" factory=".get.QuerySourcesGet" - for="Products.CMFPlone.interfaces.IPloneSiteRoot" + for="plone.restapi.bbb.IPloneSiteRoot" permission="plone.restapi.vocabularies" name="@querysources" /> diff --git a/src/plone/restapi/services/querystring/configure.zcml b/src/plone/restapi/services/querystring/configure.zcml index f7e6f38343..c280558a72 100644 --- a/src/plone/restapi/services/querystring/configure.zcml +++ b/src/plone/restapi/services/querystring/configure.zcml @@ -8,7 +8,7 @@ diff --git a/src/plone/restapi/services/querystringsearch/configure.zcml b/src/plone/restapi/services/querystringsearch/configure.zcml index 21ad182d55..35a690c2a6 100644 --- a/src/plone/restapi/services/querystringsearch/configure.zcml +++ b/src/plone/restapi/services/querystringsearch/configure.zcml @@ -8,7 +8,7 @@ @@ -24,7 +24,7 @@ diff --git a/src/plone/restapi/services/relations/configure.zcml b/src/plone/restapi/services/relations/configure.zcml index f21cd0ac15..fb7e9d5e17 100644 --- a/src/plone/restapi/services/relations/configure.zcml +++ b/src/plone/restapi/services/relations/configure.zcml @@ -7,7 +7,7 @@ method="GET" accept="application/json,application/schema+json" factory=".get.GetRelations" - for="Products.CMFPlone.interfaces.IPloneSiteRoot" + for="plone.restapi.bbb.IPloneSiteRoot" permission="zope2.View" name="@relations" /> @@ -15,7 +15,7 @@ @@ -23,7 +23,7 @@ diff --git a/src/plone/restapi/services/roles/configure.zcml b/src/plone/restapi/services/roles/configure.zcml index 4dfd989234..e903274aca 100644 --- a/src/plone/restapi/services/roles/configure.zcml +++ b/src/plone/restapi/services/roles/configure.zcml @@ -6,7 +6,7 @@ diff --git a/src/plone/restapi/services/site/configure.zcml b/src/plone/restapi/services/site/configure.zcml index 24ed968654..87c65903b6 100644 --- a/src/plone/restapi/services/site/configure.zcml +++ b/src/plone/restapi/services/site/configure.zcml @@ -8,7 +8,7 @@ diff --git a/src/plone/restapi/services/site/get.py b/src/plone/restapi/services/site/get.py index 4ab0a9801e..612a85c1fa 100644 --- a/src/plone/restapi/services/site/get.py +++ b/src/plone/restapi/services/site/get.py @@ -1,14 +1,14 @@ # -*- coding: utf-8 -*- from plone.app.event.base import FALLBACK_TIMEZONE from plone.app.event.base import replacement_zones +from plone.base.interfaces import IImagingSchema +from plone.base.interfaces import ISiteSchema from plone.event.utils import default_timezone as fallback_default_timezone from plone.event.utils import validated_timezone from plone.i18n.interfaces import ILanguageSchema from plone.registry.interfaces import IRegistry from plone.restapi.interfaces import IExpandableElement from plone.restapi.services import Service -from Products.CMFPlone.interfaces import IImagingSchema -from Products.CMFPlone.interfaces import ISiteSchema from Products.CMFPlone.utils import getSiteLogo from Products.CMFPlone.controlpanel.browser.redirects import RedirectionSet from zope.component import adapter diff --git a/src/plone/restapi/services/system/configure.zcml b/src/plone/restapi/services/system/configure.zcml index bbf1900010..9258c0aa52 100644 --- a/src/plone/restapi/services/system/configure.zcml +++ b/src/plone/restapi/services/system/configure.zcml @@ -6,7 +6,7 @@ diff --git a/src/plone/restapi/services/transactions/configure.zcml b/src/plone/restapi/services/transactions/configure.zcml index 1a44d018b7..6117fc3aaf 100644 --- a/src/plone/restapi/services/transactions/configure.zcml +++ b/src/plone/restapi/services/transactions/configure.zcml @@ -9,7 +9,7 @@ @@ -17,7 +17,7 @@ diff --git a/src/plone/restapi/services/types/configure.zcml b/src/plone/restapi/services/types/configure.zcml index a386e9b159..f91bbca5fa 100644 --- a/src/plone/restapi/services/types/configure.zcml +++ b/src/plone/restapi/services/types/configure.zcml @@ -15,7 +15,7 @@ @@ -23,7 +23,7 @@ @@ -31,7 +31,7 @@ @@ -39,7 +39,7 @@ diff --git a/src/plone/restapi/services/types/get.py b/src/plone/restapi/services/types/get.py index af20cdd01f..777e9379eb 100644 --- a/src/plone/restapi/services/types/get.py +++ b/src/plone/restapi/services/types/get.py @@ -1,5 +1,6 @@ from plone.dexterity.interfaces import IDexterityContent from plone.restapi.bbb import IConstrainTypes +from plone.restapi.bbb import IPloneSiteRoot from plone.restapi.interfaces import IExpandableElement from plone.restapi.interfaces import IPloneRestapiLayer from plone.restapi.services import Service @@ -7,7 +8,6 @@ from plone.restapi.types.utils import get_info_for_fieldset from plone.restapi.types.utils import get_info_for_type from Products.CMFCore.interfaces import IFolderish -from Products.CMFPlone.interfaces import IPloneSiteRoot from Products.CMFCore.utils import getToolByName from zExceptions import Unauthorized from zope.component import adapter diff --git a/src/plone/restapi/services/upgrade/configure.zcml b/src/plone/restapi/services/upgrade/configure.zcml index 5079d7fedb..9abc266b84 100644 --- a/src/plone/restapi/services/upgrade/configure.zcml +++ b/src/plone/restapi/services/upgrade/configure.zcml @@ -6,7 +6,7 @@ @@ -14,7 +14,7 @@ diff --git a/src/plone/restapi/services/vocabularies/configure.zcml b/src/plone/restapi/services/vocabularies/configure.zcml index 8091472727..295fc46de3 100644 --- a/src/plone/restapi/services/vocabularies/configure.zcml +++ b/src/plone/restapi/services/vocabularies/configure.zcml @@ -7,7 +7,7 @@ method="GET" accept="application/json" factory=".get.VocabulariesGet" - for="Products.CMFPlone.interfaces.IPloneSiteRoot" + for="plone.restapi.bbb.IPloneSiteRoot" permission="zope2.View" name="@vocabularies" /> diff --git a/src/plone/restapi/services/workflow/configure.zcml b/src/plone/restapi/services/workflow/configure.zcml index 29cb0163bf..a9ab252218 100644 --- a/src/plone/restapi/services/workflow/configure.zcml +++ b/src/plone/restapi/services/workflow/configure.zcml @@ -7,7 +7,7 @@ diff --git a/src/plone/restapi/tests/test_search.py b/src/plone/restapi/tests/test_search.py index 84b6e0b480..3626efeb09 100644 --- a/src/plone/restapi/tests/test_search.py +++ b/src/plone/restapi/tests/test_search.py @@ -4,7 +4,7 @@ from pkg_resources import parse_version from plone import api from plone.app.discussion.interfaces import IDiscussionSettings -from plone.app.layout.navigation.interfaces import INavigationRoot +from plone.base.interfaces import INavigationRoot from plone.app.testing import SITE_OWNER_NAME from plone.app.testing import SITE_OWNER_PASSWORD from plone.app.testing import TEST_USER_PASSWORD diff --git a/src/plone/restapi/tests/test_services_contextnavigation.py b/src/plone/restapi/tests/test_services_contextnavigation.py index 9f8405e95a..d5851e8d30 100644 --- a/src/plone/restapi/tests/test_services_contextnavigation.py +++ b/src/plone/restapi/tests/test_services_contextnavigation.py @@ -1,4 +1,4 @@ -from plone.app.layout.navigation.interfaces import INavigationRoot +from plone.base.interfaces import INavigationRoot from plone.app.testing import setRoles from plone.app.testing import SITE_OWNER_NAME from plone.app.testing import SITE_OWNER_PASSWORD diff --git a/src/plone/restapi/tests/test_services_navroot.py b/src/plone/restapi/tests/test_services_navroot.py index 327b48847b..ffd3694356 100644 --- a/src/plone/restapi/tests/test_services_navroot.py +++ b/src/plone/restapi/tests/test_services_navroot.py @@ -8,7 +8,7 @@ from plone.restapi.testing import RelativeSession from zope.component import getMultiAdapter from zope.interface import alsoProvides -from plone.app.layout.navigation.interfaces import INavigationRoot +from plone.base.interfaces import INavigationRoot import unittest from plone import api diff --git a/src/plone/restapi/upgrades/configure.zcml b/src/plone/restapi/upgrades/configure.zcml index ab6cae887d..aeae9a0297 100644 --- a/src/plone/restapi/upgrades/configure.zcml +++ b/src/plone/restapi/upgrades/configure.zcml @@ -8,7 +8,7 @@ @@ -28,7 +28,7 @@ title="plone.restapi.upgrades.0002" description="" provides="Products.GenericSetup.interfaces.EXTENSION" - for="Products.CMFPlone.interfaces.IMigratingPloneSiteRoot" + for="plone.restapi.bbb.IMigratingPloneSiteRoot" directory="profiles/0002" /> @@ -47,7 +47,7 @@ title="plone.restapi.upgrades.0004" description="" provides="Products.GenericSetup.interfaces.EXTENSION" - for="Products.CMFPlone.interfaces.IMigratingPloneSiteRoot" + for="plone.restapi.bbb.IMigratingPloneSiteRoot" directory="profiles/0004" />