{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-tag",
      "artifactVersion": "2023.8.13",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.platform.tag",
          "org.nuxeo.ecm.platform.tag.web"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag",
        "id": "grp:org.nuxeo.ecm.platform.tag",
        "name": "org.nuxeo.ecm.platform.tag",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "2023.8"
      },
      "bundleId": "org.nuxeo.ecm.platform.tag",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.tag.TagServiceImpl",
          "declaredStartOrder": 99,
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.TagService",
          "name": "org.nuxeo.ecm.platform.tag.TagService",
          "requirements": [],
          "resolutionOrder": 505,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.tag.TagService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.TagService/Services/org.nuxeo.ecm.platform.tag.TagService",
              "id": "org.nuxeo.ecm.platform.tag.TagService",
              "overriden": false,
              "version": "2023.8.13"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.tag.TagService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.TagService/Services/org.nuxeo.ecm.platform.tag.TagServiceImpl",
              "id": "org.nuxeo.ecm.platform.tag.TagServiceImpl",
              "overriden": false,
              "version": "2023.8.13"
            }
          ],
          "startOrder": 771,
          "version": "2023.8.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.tag.TagService\">\n\n  <implementation class=\"org.nuxeo.ecm.platform.tag.TagServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.tag.TagService\" />\n    <provide interface=\"org.nuxeo.ecm.platform.tag.TagServiceImpl\" />\n  </service>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/TagService.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.service.coreTypes/Contributions/org.nuxeo.ecm.platform.tag.service.coreTypes--schema",
              "id": "org.nuxeo.ecm.platform.tag.service.coreTypes--schema",
              "registrationOrder": 33,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"tag\" prefix=\"tag\" src=\"schemas/tag.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.service.coreTypes/Contributions/org.nuxeo.ecm.platform.tag.service.coreTypes--doctype",
              "id": "org.nuxeo.ecm.platform.tag.service.coreTypes--doctype",
              "registrationOrder": 29,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <doctype extends=\"Document\" name=\"Tag\">\n      <schema name=\"tag\"/>\n      <schema name=\"dublincore\"/>\n      <facet name=\"HiddenInNavigation\"/>\n    </doctype>\n\n    <doctype extends=\"Relation\" name=\"Tagging\">\n      <facet name=\"HiddenInNavigation\"/>\n    </doctype>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.service.coreTypes",
          "name": "org.nuxeo.ecm.platform.tag.service.coreTypes",
          "requirements": [],
          "resolutionOrder": 506,
          "services": [],
          "startOrder": 487,
          "version": "2023.8.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.tag.service.coreTypes\">\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n      point=\"schema\">\n    <schema name=\"tag\" src=\"schemas/tag.xsd\" prefix=\"tag\"/>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n      point=\"doctype\">\n\n    <doctype name=\"Tag\" extends=\"Document\">\n      <schema name=\"tag\"/>\n      <schema name=\"dublincore\"/>\n      <facet name=\"HiddenInNavigation\"/>\n    </doctype>\n\n    <doctype name=\"Tagging\" extends=\"Relation\">\n      <facet name=\"HiddenInNavigation\"/>\n    </doctype>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/tag-service-core-types.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Property that enables sanitization on tags.\n    \n",
              "documentationHtml": "<p>\nProperty that enables sanitization on tags.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.tag.service.properties/Contributions/org.nuxeo.tag.service.properties--configuration",
              "id": "org.nuxeo.tag.service.properties--configuration",
              "registrationOrder": 39,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <documentation>\n      Property that enables sanitization on tags.\n    </documentation>\n    <property name=\"nuxeo.tag.sanitization.enabled\">true</property>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.tag.service.properties",
          "name": "org.nuxeo.tag.service.properties",
          "requirements": [],
          "resolutionOrder": 507,
          "services": [],
          "startOrder": 743,
          "version": "2023.8.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.tag.service.properties\">\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <documentation>\n      Property that enables sanitization on tags.\n    </documentation>\n    <property name=\"nuxeo.tag.sanitization.enabled\">true</property>\n  </extension>\n\n</component>",
          "xmlFileName": "/OSGI-INF/tag-service-properties.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService--queryMaker",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.service.querymaker/Contributions/org.nuxeo.ecm.platform.tag.service.querymaker--queryMaker",
              "id": "org.nuxeo.ecm.platform.tag.service.querymaker--queryMaker",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService",
                "name": "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"queryMaker\" target=\"org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService\">\n    <queryMaker name=\"NXTAG\">org.nuxeo.ecm.platform.tag.TagQueryMaker\n    </queryMaker>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.service.querymaker",
          "name": "org.nuxeo.ecm.platform.tag.service.querymaker",
          "requirements": [],
          "resolutionOrder": 508,
          "services": [],
          "startOrder": 490,
          "version": "2023.8.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.tag.service.querymaker\"\n  version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService\"\n    point=\"queryMaker\">\n    <queryMaker name=\"NXTAG\">org.nuxeo.ecm.platform.tag.TagQueryMaker\n    </queryMaker>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/tag-querymaker-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.service.listener/Contributions/org.nuxeo.ecm.platform.tag.service.listener--listener",
              "id": "org.nuxeo.ecm.platform.tag.service.listener--listener",
              "registrationOrder": 36,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n\n    <listener async=\"true\" class=\"org.nuxeo.ecm.platform.tag.TaggedVersionListener\" name=\"taggedVersionListener\" postCommit=\"true\">\n      <event>documentRestored</event>\n      <event>documentProxyPublished</event>\n      <event>documentRemoved</event>\n    </listener>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.service.listener",
          "name": "org.nuxeo.ecm.platform.tag.service.listener",
          "requirements": [],
          "resolutionOrder": 509,
          "services": [],
          "startOrder": 488,
          "version": "2023.8.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.tag.service.listener\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\" point=\"listener\">\n\n    <listener name=\"taggedVersionListener\" class=\"org.nuxeo.ecm.platform.tag.TaggedVersionListener\"\n      async=\"true\" postCommit=\"true\">\n      <event>documentRestored</event>\n      <event>documentProxyPublished</event>\n      <event>documentRemoved</event>\n    </listener>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/tag-listener-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.query.api.PageProviderService--providers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.service.pageprovider/Contributions/org.nuxeo.ecm.platform.tag.service.pageprovider--providers",
              "id": "org.nuxeo.ecm.platform.tag.service.pageprovider--providers",
              "registrationOrder": 22,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.query.api.PageProviderService",
                "name": "org.nuxeo.ecm.platform.query.api.PageProviderService",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"providers\" target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\">\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_DOCUMENT_IDS_FOR_FACETED_TAG\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT DISTINCT ecm:uuid FROM Document WHERE nxtag:tags/*/label = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_DOCUMENT_IDS_FOR_TAG\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT ecm:uuid FROM Tag WHERE tag:label = ? AND ecm:isProxy = 0\n      </pattern>\n      <pageSize>1</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_FIRST_TAGGING_FOR_DOC_AND_TAG\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT ecm:uuid FROM Tagging WHERE relation:source = ? AND\n        relation:target = ?\n      </pattern>\n      <pageSize>1</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_FIRST_TAGGING_FOR_DOC_AND_TAG_AND_USER\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT ecm:uuid FROM Tagging WHERE relation:source = ? AND\n        relation:target = ? AND dc:creator = ?\n      </pattern>\n      <pageSize>1</pageSize>\n    </genericPageProvider>\n\n    <!-- page provider that can be optimized using ES for instance -->\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_TAGS_FOR_DOCUMENT\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE\n        relation:source = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <!-- page provider that should keep on using the VCS storage -->\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_TAGS_FOR_DOCUMENT_CORE\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE\n        relation:source = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_DOCUMENTS_FOR_TAG\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT relation:source FROM Tagging WHERE\n        tag:label = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <!-- page provider that can be optimized using ES for instance -->\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_TAGS_FOR_DOCUMENT_AND_USER\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE\n        relation:source = ? AND dc:creator = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <!-- page provider that should keep on using the VCS storage -->\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_TAGS_FOR_DOCUMENT_AND_USER_CORE\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE\n        relation:source = ? AND dc:creator = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_DOCUMENTS_FOR_TAG_AND_USER\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT relation:source FROM Tagging WHERE\n        tag:label = ? AND dc:creator = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_TAGS_TO_COPY_FOR_DOCUMENT\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT tag:label, dc:created, dc:creator,\n        relation:target FROM Tagging\n        WHERE relation:source = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_FACETED_TAG_SUGGESTIONS\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT nxtag:tags/*1/label FROM Document WHERE nxtag:tags/*1/label LIKE ? AND\n        ecm:isProxy = 0\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_TAG_SUGGESTIONS\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT DISTINCT tag:label FROM Tag WHERE tag:label LIKE ? AND\n        ecm:isProxy = 0\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_TAG_SUGGESTIONS_FOR_USER\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT DISTINCT tag:label FROM Tag WHERE tag:label LIKE ? AND\n        ecm:isProxy = 0\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_ALL_TAGS\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_ALL_TAGS_FOR_USER\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging WHERE\n        dc:creator = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_TAGS_FOR_DOCUMENTS\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging WHERE\n        relation:source IN ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_TAGS_FOR_DOCUMENTS_AND_USER\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging WHERE\n        relation:source IN ? AND dc:creator = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\" name=\"GET_TAGGED_DOCUMENTS_UNDER\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT ecm:uuid FROM Document WHERE ecm:path STARTSWITH ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.service.pageprovider",
          "name": "org.nuxeo.ecm.platform.tag.service.pageprovider",
          "requirements": [],
          "resolutionOrder": 510,
          "services": [],
          "startOrder": 489,
          "version": "2023.8.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.tag.service.pageprovider\">\n\n  <extension target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\"\n    point=\"providers\">\n\n    <genericPageProvider name=\"GET_DOCUMENT_IDS_FOR_FACETED_TAG\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT DISTINCT ecm:uuid FROM Document WHERE nxtag:tags/*/label = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_DOCUMENT_IDS_FOR_TAG\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT ecm:uuid FROM Tag WHERE tag:label = ? AND ecm:isProxy = 0\n      </pattern>\n      <pageSize>1</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_FIRST_TAGGING_FOR_DOC_AND_TAG\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT ecm:uuid FROM Tagging WHERE relation:source = ? AND\n        relation:target = ?\n      </pattern>\n      <pageSize>1</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_FIRST_TAGGING_FOR_DOC_AND_TAG_AND_USER\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT ecm:uuid FROM Tagging WHERE relation:source = ? AND\n        relation:target = ? AND dc:creator = ?\n      </pattern>\n      <pageSize>1</pageSize>\n    </genericPageProvider>\n\n    <!-- page provider that can be optimized using ES for instance -->\n    <genericPageProvider name=\"GET_TAGS_FOR_DOCUMENT\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE\n        relation:source = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <!-- page provider that should keep on using the VCS storage -->\n    <genericPageProvider name=\"GET_TAGS_FOR_DOCUMENT_CORE\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE\n        relation:source = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_DOCUMENTS_FOR_TAG\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT relation:source FROM Tagging WHERE\n        tag:label = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <!-- page provider that can be optimized using ES for instance -->\n    <genericPageProvider name=\"GET_TAGS_FOR_DOCUMENT_AND_USER\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE\n        relation:source = ? AND dc:creator = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <!-- page provider that should keep on using the VCS storage -->\n    <genericPageProvider name=\"GET_TAGS_FOR_DOCUMENT_AND_USER_CORE\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT tag:label FROM Tagging WHERE\n        relation:source = ? AND dc:creator = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_DOCUMENTS_FOR_TAG_AND_USER\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT DISTINCT relation:source FROM Tagging WHERE\n        tag:label = ? AND dc:creator = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_TAGS_TO_COPY_FOR_DOCUMENT\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        TAGISTARGET: SELECT tag:label, dc:created, dc:creator,\n        relation:target FROM Tagging\n        WHERE relation:source = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_FACETED_TAG_SUGGESTIONS\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT nxtag:tags/*1/label FROM Document WHERE nxtag:tags/*1/label LIKE ? AND\n        ecm:isProxy = 0\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_TAG_SUGGESTIONS\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT DISTINCT tag:label FROM Tag WHERE tag:label LIKE ? AND\n        ecm:isProxy = 0\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_TAG_SUGGESTIONS_FOR_USER\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT DISTINCT tag:label FROM Tag WHERE tag:label LIKE ? AND\n        ecm:isProxy = 0\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_ALL_TAGS\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_ALL_TAGS_FOR_USER\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging WHERE\n        dc:creator = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_TAGS_FOR_DOCUMENTS\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging WHERE\n        relation:source IN ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_TAGS_FOR_DOCUMENTS_AND_USER\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <property name=\"language\">NXTAG</property>\n      <pattern>\n        COUNTSOURCE: SELECT tag:label, relation:source FROM Tagging WHERE\n        relation:source IN ? AND dc:creator = ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"GET_TAGGED_DOCUMENTS_UNDER\"\n      class=\"org.nuxeo.ecm.platform.query.nxql.CoreQueryAndFetchPageProvider\">\n      <property name=\"useUnrestrictedSession\">true</property>\n      <pattern>\n        SELECT ecm:uuid FROM Document WHERE ecm:path STARTSWITH ?\n      </pattern>\n      <pageSize>0</pageSize>\n      <maxPageSize>0</maxPageSize>\n    </genericPageProvider>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/tag-pageprovider-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.operations.contrib/Contributions/org.nuxeo.ecm.platform.tag.operations.contrib--operations",
              "id": "org.nuxeo.ecm.platform.tag.operations.contrib--operations",
              "registrationOrder": 27,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"operations\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <operation class=\"org.nuxeo.ecm.platform.tag.operations.TagDocument\"/>\n    <operation class=\"org.nuxeo.ecm.platform.tag.operations.UntagDocument\"/>\n    <operation class=\"org.nuxeo.ecm.platform.tag.operations.RemoveDocumentTags\"/>\n    <operation class=\"org.nuxeo.ecm.platform.tag.automation.SuggestTagEntry\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag.operations.contrib",
          "name": "org.nuxeo.ecm.platform.tag.operations.contrib",
          "requirements": [],
          "resolutionOrder": 511,
          "services": [],
          "startOrder": 486,
          "version": "2023.8.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.tag.operations.contrib\" version=\"1.0\">\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n             point=\"operations\">\n    <operation class=\"org.nuxeo.ecm.platform.tag.operations.TagDocument\"/>\n    <operation class=\"org.nuxeo.ecm.platform.tag.operations.UntagDocument\"/>\n    <operation\n            class=\"org.nuxeo.ecm.platform.tag.operations.RemoveDocumentTags\"/>\n    <operation\n      class=\"org.nuxeo.ecm.platform.tag.automation.SuggestTagEntry\" />\n  </extension>\n</component>",
          "xmlFileName": "/OSGI-INF/tag-operations-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.tags.jsonEnrichers/Contributions/org.nuxeo.ecm.tags.jsonEnrichers--marshallers",
              "id": "org.nuxeo.ecm.tags.jsonEnrichers--marshallers",
              "registrationOrder": 17,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <register class=\"org.nuxeo.ecm.platform.tag.io.TagsJsonEnricher\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.tags.jsonEnrichers",
          "name": "org.nuxeo.ecm.tags.jsonEnrichers",
          "requirements": [],
          "resolutionOrder": 512,
          "services": [],
          "startOrder": 593,
          "version": "2023.8.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.tags.jsonEnrichers\">\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <register class=\"org.nuxeo.ecm.platform.tag.io.TagsJsonEnricher\"\n      enable=\"true\" />\n  </extension>\n</component>",
          "xmlFileName": "/OSGI-INF/json-enrichers-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.tags.schemas/Contributions/org.nuxeo.ecm.tags.schemas--schema",
              "id": "org.nuxeo.ecm.tags.schemas--schema",
              "registrationOrder": 34,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <schema name=\"facetedTag\" prefix=\"nxtag\" src=\"schemas/facetedTag.xsd\"/>\n\n    <property indexOrder=\"ascending\" name=\"tags/*/label\" schema=\"facetedTag\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.tags.schemas/Contributions/org.nuxeo.ecm.tags.schemas--doctype",
              "id": "org.nuxeo.ecm.tags.schemas--doctype",
              "registrationOrder": 30,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <facet name=\"NXTag\">\n      <schema name=\"facetedTag\"/>\n    </facet>\n\n    <doctype append=\"true\" name=\"Folder\">\n      <facet name=\"NXTag\"/>\n    </doctype>\n\n    <doctype append=\"true\" name=\"File\">\n      <facet name=\"NXTag\"/>\n    </doctype>\n\n    <doctype append=\"true\" name=\"Note\">\n      <facet name=\"NXTag\"/>\n    </doctype>\n\n    <doctype append=\"true\" name=\"Collection\">\n      <facet name=\"NXTag\"/>\n    </doctype>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.tags.schemas",
          "name": "org.nuxeo.ecm.tags.schemas",
          "requirements": [
            "org.nuxeo.ecm.core.CoreExtensions"
          ],
          "resolutionOrder": 513,
          "services": [],
          "startOrder": 594,
          "version": "2023.8.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.tags.schemas\">\n\n  <require>org.nuxeo.ecm.core.CoreExtensions</require>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"schema\">\n\n    <schema name=\"facetedTag\" src=\"schemas/facetedTag.xsd\" prefix=\"nxtag\" />\n\n    <property schema=\"facetedTag\" name=\"tags/*/label\" indexOrder=\"ascending\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"doctype\">\n\n    <facet name=\"NXTag\">\n      <schema name=\"facetedTag\" />\n    </facet>\n\n    <doctype name=\"Folder\" append=\"true\">\n      <facet name=\"NXTag\" />\n    </doctype>\n\n    <doctype name=\"File\" append=\"true\">\n      <facet name=\"NXTag\" />\n    </doctype>\n\n    <doctype name=\"Note\" append=\"true\">\n      <facet name=\"NXTag\" />\n    </doctype>\n\n    <doctype name=\"Collection\" append=\"true\">\n      <facet name=\"NXTag\" />\n    </doctype>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/faceted-tag-service-core-types.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.versioning.VersioningService--policies",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.tags.versioning.policy/Contributions/org.nuxeo.ecm.tags.versioning.policy--policies",
              "id": "org.nuxeo.ecm.tags.versioning.policy--policies",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.versioning.VersioningService",
                "name": "org.nuxeo.ecm.core.api.versioning.VersioningService",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"policies\" target=\"org.nuxeo.ecm.core.api.versioning.VersioningService\">\n    <policy beforeUpdate=\"true\" id=\"no-versioning-for-faceted-tag-before\" increment=\"NONE\" order=\"3\">\n      <filter-id>no-versioning-faceted-tag-filter</filter-id>\n    </policy>\n    <policy id=\"no-versioning-for-faceted-tag\" increment=\"NONE\" order=\"3\">\n      <filter-id>no-versioning-faceted-tag-filter</filter-id>\n    </policy>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.versioning.VersioningService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.tags.versioning.policy/Contributions/org.nuxeo.ecm.tags.versioning.policy--filters",
              "id": "org.nuxeo.ecm.tags.versioning.policy--filters",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.versioning.VersioningService",
                "name": "org.nuxeo.ecm.core.api.versioning.VersioningService",
                "type": "service"
              },
              "version": "2023.8.13",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.core.api.versioning.VersioningService\">\n    <filter class=\"org.nuxeo.ecm.platform.tag.NoVersioningFacetedTagFilter\" id=\"no-versioning-faceted-tag-filter\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.tags.versioning.policy",
          "name": "org.nuxeo.ecm.tags.versioning.policy",
          "requirements": [],
          "resolutionOrder": 516,
          "services": [],
          "startOrder": 596,
          "version": "2023.8.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.tags.versioning.policy\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.api.versioning.VersioningService\" point=\"policies\">\n    <policy id=\"no-versioning-for-faceted-tag-before\" increment=\"NONE\" order=\"3\" beforeUpdate=\"true\">\n      <filter-id>no-versioning-faceted-tag-filter</filter-id>\n    </policy>\n    <policy id=\"no-versioning-for-faceted-tag\" increment=\"NONE\" order=\"3\">\n      <filter-id>no-versioning-faceted-tag-filter</filter-id>\n    </policy>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.api.versioning.VersioningService\" point=\"filters\">\n    <filter id=\"no-versioning-faceted-tag-filter\" class=\"org.nuxeo.ecm.platform.tag.NoVersioningFacetedTagFilter\"/>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/faceted-tag-versioning-policy.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-tag-2023.8.13.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.tag/org.nuxeo.ecm.platform.tag",
      "id": "org.nuxeo.ecm.platform.tag",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: root\r\nBuild-Jdk: 17.0.9\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 0.0.0.SNAPSHOT\r\nExport-Package: org.nuxeo.ecm.platform.tag;core=split\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Category: core,stateful\r\nBundle-Name: Nuxeo ECM Tag Core\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nRequire-Bundle: org.nuxeo.ecm.platform.tag.api;visibility:=reexport\r\nBundle-Vendor: Nuxeo\r\nEclipse-LazyStart: false\r\nNuxeo-Component: OSGI-INF/TagService.xml, OSGI-INF/tag-service-core-type\r\n s.xml, OSGI-INF/tag-service-properties.xml, OSGI-INF/tag-querymaker-con\r\n trib.xml, OSGI-INF/tag-listener-contrib.xml, OSGI-INF/tag-pageprovider-\r\n contrib.xml, OSGI-INF/tag-operations-contrib.xml, OSGI-INF/json-enriche\r\n rs-contrib.xml, OSGI-INF/faceted-tag-service-core-types.xml, OSGI-INF/f\r\n aceted-tag-versioning-policy.xml\r\nImport-Package: javax.resource,org.apache.commons.logging,org.nuxeo.comm\r\n on.utils,org.nuxeo.ecm.core.api,org.nuxeo.ecm.core.api.repository,org.n\r\n uxeo.ecm.core.query,org.nuxeo.ecm.core.query.sql,org.nuxeo.ecm.core.sto\r\n rage,org.nuxeo.ecm.core.storage.sql,org.nuxeo.ecm.core.storage.sql.jdbc\r\n ,org.nuxeo.ecm.core.storage.sql.jdbc.db,org.nuxeo.ecm.core.storage.sql.\r\n jdbc.dialect,org.nuxeo.runtime.api,org.nuxeo.runtime.model\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.tag;singleton:=true\r\n\r\n",
      "maxResolutionOrder": 516,
      "minResolutionOrder": 505,
      "packages": [],
      "requirements": [
        "org.nuxeo.ecm.platform.tag.api"
      ],
      "version": "2023.8.13"
    }
  ],
  "creationDate": 1709128388721,
  "key": "Nuxeo Platform-2023.8",
  "name": "Nuxeo Platform",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.platform.tag.operations.contrib",
      "description": "Remove all document tags.",
      "hierarchyPath": "/op:Services.RemoveDocumentTags",
      "label": "Remove All Document Tags",
      "name": "Services.RemoveDocumentTags",
      "operationClass": "org.nuxeo.ecm.platform.tag.operations.RemoveDocumentTags",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "since": "7.1",
      "url": "Services.RemoveDocumentTags",
      "version": "2023.8.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.platform.tag.operations.contrib",
      "description": "Tag document with one or several 'tags'.",
      "hierarchyPath": "/op:Services.TagDocument",
      "label": "Tag Document",
      "name": "Services.TagDocument",
      "operationClass": "org.nuxeo.ecm.platform.tag.operations.TagDocument",
      "params": [
        {
          "description": "Labels or tags separated by comma.",
          "isRequired": true,
          "name": "tags",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "since": "7.1",
      "url": "Services.TagDocument",
      "version": "2023.8.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.platform.tag.operations.contrib",
      "description": "Untag document from one or several 'tags'.",
      "hierarchyPath": "/op:Services.UntagDocument",
      "label": "Untag Document",
      "name": "Services.UntagDocument",
      "operationClass": "org.nuxeo.ecm.platform.tag.operations.UntagDocument",
      "params": [
        {
          "description": "Labels or tags separated by comma.",
          "isRequired": true,
          "name": "tags",
          "order": 0,
          "type": "stringlist",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "since": "7.1",
      "url": "Services.UntagDocument",
      "version": "2023.8.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.platform.tag.operations.contrib",
      "description": "Get tag suggestion",
      "hierarchyPath": "/op:Tag.Suggestion",
      "label": "Get tag suggestion",
      "name": "Tag.Suggestion",
      "operationClass": "org.nuxeo.ecm.platform.tag.automation.SuggestTagEntry",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "document",
          "order": 0,
          "type": "document",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "searchTerm",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "value",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Tag.Suggestion",
      "version": "2023.8.13"
    }
  ],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1709128388721,
  "version": "2023.8"
}