{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-core-io",
      "artifactVersion": "2021.62.7",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.core",
          "org.nuxeo.ecm.core.api",
          "org.nuxeo.ecm.core.bulk",
          "org.nuxeo.ecm.core.cache",
          "org.nuxeo.ecm.core.event",
          "org.nuxeo.ecm.core.io",
          "org.nuxeo.ecm.core.mimetype",
          "org.nuxeo.ecm.core.mongodb",
          "org.nuxeo.ecm.core.persistence",
          "org.nuxeo.ecm.core.query",
          "org.nuxeo.ecm.core.redis",
          "org.nuxeo.ecm.core.schema",
          "org.nuxeo.ecm.platform.el"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.core",
        "id": "grp:org.nuxeo.ecm.core",
        "name": "org.nuxeo.ecm.core",
        "parentIds": [],
        "readmes": [],
        "version": "2021.62"
      },
      "bundleId": "org.nuxeo.ecm.core.io",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.io.impl.DocumentXMLExporterImpl",
          "documentation": "\n    This service allows to export a document to XML.\n\n    @author\n    Antoine Taillefer\n  \n",
          "documentationHtml": "<p>\nThis service allows to export a document to XML.\n</p><p>\nAntoine Taillefer\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.DocumentXMLExporter",
          "name": "org.nuxeo.ecm.core.io.DocumentXMLExporter",
          "requirements": [],
          "resolutionOrder": 147,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.io.DocumentXMLExporter",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.DocumentXMLExporter/Services/org.nuxeo.ecm.core.io.DocumentXMLExporter",
              "id": "org.nuxeo.ecm.core.io.DocumentXMLExporter",
              "overriden": false,
              "version": "2021.62.7"
            }
          ],
          "startOrder": 139,
          "version": "2021.62.7",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.io.DocumentXMLExporter\">\n\n  <documentation>\n    This service allows to export a document to XML.\n\n    @author\n    Antoine Taillefer\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.io.impl.DocumentXMLExporterImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.io.DocumentXMLExporter\" />\n  </service>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-xml-exporter-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Core IO contribution to Avro for Nuxeo core model.\n  \n",
          "documentationHtml": "<p>\nCore IO contribution to Avro for Nuxeo core model.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.avro--factory",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.avro.factories/Contributions/org.nuxeo.ecm.core.io.avro.factories--factory",
              "id": "org.nuxeo.ecm.core.io.avro.factories--factory",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.avro",
                "name": "org.nuxeo.runtime.avro",
                "type": "service"
              },
              "version": "2021.62.7",
              "xml": "<extension point=\"factory\" target=\"org.nuxeo.runtime.avro\">\n    <factory class=\"org.nuxeo.ecm.core.io.avro.TypeSchemaFactory\" type=\"org.nuxeo.ecm.core.schema.types.Type\"/>\n    <factory class=\"org.nuxeo.ecm.core.io.avro.SchemaSchemaFactory\" type=\"org.nuxeo.ecm.core.schema.types.Schema\"/>\n    <factory class=\"org.nuxeo.ecm.core.io.avro.DocumentModelSchemaFactory\" type=\"org.nuxeo.ecm.core.api.DocumentModel\"/>\n    <factory class=\"org.nuxeo.ecm.core.io.avro.DocumentTypeSchemaFactory\" type=\"org.nuxeo.ecm.core.schema.DocumentType\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.avro--mapper",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.avro.factories/Contributions/org.nuxeo.ecm.core.io.avro.factories--mapper",
              "id": "org.nuxeo.ecm.core.io.avro.factories--mapper",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.avro",
                "name": "org.nuxeo.runtime.avro",
                "type": "service"
              },
              "version": "2021.62.7",
              "xml": "<extension point=\"mapper\" target=\"org.nuxeo.runtime.avro\">\n    <mapper class=\"org.nuxeo.ecm.core.io.avro.PropertyMapper\" type=\"org.nuxeo.ecm.core.api.model.Property\"/>\n    <mapper class=\"org.nuxeo.ecm.core.io.avro.DocumentModelMapper\" type=\"org.nuxeo.ecm.core.api.DocumentModel\"/>\n    <mapper class=\"org.nuxeo.ecm.core.io.avro.BlobPropertyMapper\" type=\"org.nuxeo.ecm.core.api.model.impl.primitives.BlobProperty\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.avro.factories",
          "name": "org.nuxeo.ecm.core.io.avro.factories",
          "requirements": [],
          "resolutionOrder": 148,
          "services": [],
          "startOrder": 142,
          "version": "2021.62.7",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.io.avro.factories\" version=\"1.0.0\">\n  <documentation>\n    Core IO contribution to Avro for Nuxeo core model.\n  </documentation>\n  <extension target=\"org.nuxeo.runtime.avro\" point=\"factory\">\n    <factory class=\"org.nuxeo.ecm.core.io.avro.TypeSchemaFactory\" type=\"org.nuxeo.ecm.core.schema.types.Type\" />\n    <factory class=\"org.nuxeo.ecm.core.io.avro.SchemaSchemaFactory\" type=\"org.nuxeo.ecm.core.schema.types.Schema\" />\n    <factory class=\"org.nuxeo.ecm.core.io.avro.DocumentModelSchemaFactory\" type=\"org.nuxeo.ecm.core.api.DocumentModel\" />\n    <factory class=\"org.nuxeo.ecm.core.io.avro.DocumentTypeSchemaFactory\" type=\"org.nuxeo.ecm.core.schema.DocumentType\" />\n  </extension>\n  <extension target=\"org.nuxeo.runtime.avro\" point=\"mapper\">\n    <mapper class=\"org.nuxeo.ecm.core.io.avro.PropertyMapper\" type=\"org.nuxeo.ecm.core.api.model.Property\" />\n    <mapper class=\"org.nuxeo.ecm.core.io.avro.DocumentModelMapper\" type=\"org.nuxeo.ecm.core.api.DocumentModel\" />\n    <mapper class=\"org.nuxeo.ecm.core.io.avro.BlobPropertyMapper\" type=\"org.nuxeo.ecm.core.api.model.impl.primitives.BlobProperty\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/avro-factory-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.io.download.DownloadServiceImpl",
          "documentation": "\n    Manages repositories.\n  \n",
          "documentationHtml": "<p>\nManages repositories.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.io.download.DownloadService",
              "descriptors": [
                "org.nuxeo.ecm.core.io.download.DownloadPermissionDescriptor"
              ],
              "documentation": "\n      Defines the permissions associated to blob download. Contributions are of the form:\n      <code>\n    <permission name=\"myperm\">\n        <script language=\"JavaScript\">\n            function run() {\n              if (CurrentUser.getName() != \"bob\") {\n                return false;\n              }\n              if (!CurrentUser.getGroups().contains(\"members\")) {\n                return false;\n              }\n              if (Document.getPropertyValue(\"dc:format\") != \"pdf\") {\n                return false;\n              }\n              if (Reason != \"rendition\") {\n                return false;\n              }\n              if (Rendition != \"myrendition\") {\n                return false;\n              }\n              if (Blob.getFilename() != \"myfile.txt\") {\n                return false;\n              }\n              if (XPath == \"file:content\" || XPath == \"blobholder:0\") {\n                return false;\n              }\n              return true;\n          </script>\n    </permission>\n</code>\n\n      The language can be any JVM scripting language, the default is \"JavaScript\".\n\n      The script must define a \"run()\" function that returns a boolean:\n      - true means that downloading the blob is not disallowed by this permission.\n      - false means that downloading the blob is forbidden.\n      The method will get called with the following global context (some values may be null):\n      Document (DocumentModel), XPath (String), Blob (Blob), CurrentUser (NuxeoPrincipal),\n      Reason (String), Rendition (String), Infos (Map).\n\n      If there are several permissions defined, a single one returning false is sufficient\n      to forbid the blob download.\n    \n",
              "documentationHtml": "<p>\nDefines the permissions associated to blob download. Contributions are of the form:\n</p><p></p><pre><code>    &lt;permission name&#61;&#34;myperm&#34;&gt;\n        &lt;script language&#61;&#34;JavaScript&#34;&gt;\n            function run() {\n              if (CurrentUser.getName() !&#61; &#34;bob&#34;) {\n                return false;\n              }\n              if (!CurrentUser.getGroups().contains(&#34;members&#34;)) {\n                return false;\n              }\n              if (Document.getPropertyValue(&#34;dc:format&#34;) !&#61; &#34;pdf&#34;) {\n                return false;\n              }\n              if (Reason !&#61; &#34;rendition&#34;) {\n                return false;\n              }\n              if (Rendition !&#61; &#34;myrendition&#34;) {\n                return false;\n              }\n              if (Blob.getFilename() !&#61; &#34;myfile.txt&#34;) {\n                return false;\n              }\n              if (XPath &#61;&#61; &#34;file:content&#34; || XPath &#61;&#61; &#34;blobholder:0&#34;) {\n                return false;\n              }\n              return true;\n          &lt;/script&gt;\n    &lt;/permission&gt;\n</code></pre><p>\nThe language can be any JVM scripting language, the default is &#34;JavaScript&#34;.\n</p><p>\nThe script must define a &#34;run()&#34; function that returns a boolean:\n- true means that downloading the blob is not disallowed by this permission.\n- false means that downloading the blob is forbidden.\nThe method will get called with the following global context (some values may be null):\nDocument (DocumentModel), XPath (String), Blob (Blob), CurrentUser (NuxeoPrincipal),\nReason (String), Rendition (String), Infos (Map).\n</p><p>\nIf there are several permissions defined, a single one returning false is sufficient\nto forbid the blob download.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.download.DownloadService/ExtensionPoints/org.nuxeo.ecm.core.io.download.DownloadService--permissions",
              "id": "org.nuxeo.ecm.core.io.download.DownloadService--permissions",
              "label": "permissions (org.nuxeo.ecm.core.io.download.DownloadService)",
              "name": "permissions",
              "version": "2021.62.7"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.io.download.DownloadService",
              "descriptors": [
                "org.nuxeo.ecm.core.io.download.RedirectResolverDescriptor"
              ],
              "documentation": "\n      Defines the redirect resolver associated to blob download. Contributions are of the form:\n      <code>\n    <redirectResolver class=\"org.nuxeo.ecm.core.io.download.DefaultRedirectResolver\"/>\n</code>\n\n      This allows you to redirect to a specific cache server or by default the blobManager redirect mechanism\n    \n",
              "documentationHtml": "<p>\nDefines the redirect resolver associated to blob download. Contributions are of the form:\n</p><p></p><pre><code>    &lt;redirectResolver class&#61;&#34;org.nuxeo.ecm.core.io.download.DefaultRedirectResolver&#34;/&gt;\n</code></pre><p>\nThis allows you to redirect to a specific cache server or by default the blobManager redirect mechanism\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.download.DownloadService/ExtensionPoints/org.nuxeo.ecm.core.io.download.DownloadService--redirectResolver",
              "id": "org.nuxeo.ecm.core.io.download.DownloadService--redirectResolver",
              "label": "redirectResolver (org.nuxeo.ecm.core.io.download.DownloadService)",
              "name": "redirectResolver",
              "version": "2021.62.7"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Property that enables returning blob URLs with redirections already taken into account.\n      Only applies to code calling the DownloadService.getFullDownloadUrl API.\n    \n",
              "documentationHtml": "<p>\nProperty that enables returning blob URLs with redirections already taken into account.\nOnly applies to code calling the DownloadService.getFullDownloadUrl API.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.download.DownloadService/Contributions/org.nuxeo.ecm.core.io.download.DownloadService--configuration",
              "id": "org.nuxeo.ecm.core.io.download.DownloadService--configuration",
              "registrationOrder": 20,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "2021.62.7",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <documentation>\n      Property that enables returning blob URLs with redirections already taken into account.\n      Only applies to code calling the DownloadService.getFullDownloadUrl API.\n    </documentation>\n    <property name=\"org.nuxeo.download.url.follow.redirect\">false</property>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent--store",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.download.DownloadService/Contributions/org.nuxeo.ecm.core.io.download.DownloadService--store",
              "id": "org.nuxeo.ecm.core.io.download.DownloadService--store",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
                "name": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
                "type": "service"
              },
              "version": "2021.62.7",
              "xml": "<extension point=\"store\" target=\"org.nuxeo.ecm.core.transientstore.TransientStorageComponent\">\n    <!-- Explicit declaration based on default configuration to enforce GC -->\n    <store name=\"download\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.download.DownloadService",
          "name": "org.nuxeo.ecm.core.io.download.DownloadService",
          "requirements": [
            "org.nuxeo.ecm.core.transientstore.TransientStorageComponent"
          ],
          "resolutionOrder": 149,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.io.download.DownloadService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.download.DownloadService/Services/org.nuxeo.ecm.core.io.download.DownloadService",
              "id": "org.nuxeo.ecm.core.io.download.DownloadService",
              "overriden": false,
              "version": "2021.62.7"
            }
          ],
          "startOrder": 822,
          "version": "2021.62.7",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.io.download.DownloadService\">\n\n  <documentation>\n    Manages repositories.\n  </documentation>\n\n  <require>org.nuxeo.ecm.core.transientstore.TransientStorageComponent</require>\n\n  <implementation class=\"org.nuxeo.ecm.core.io.download.DownloadServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.io.download.DownloadService\" />\n  </service>\n\n  <extension-point name=\"permissions\">\n\n    <documentation>\n      Defines the permissions associated to blob download. Contributions are of the form:\n      <code>\n        <permission name=\"myperm\">\n          <script language=\"JavaScript\">\n            function run() {\n              if (CurrentUser.getName() != \"bob\") {\n                return false;\n              }\n              if (!CurrentUser.getGroups().contains(\"members\")) {\n                return false;\n              }\n              if (Document.getPropertyValue(\"dc:format\") != \"pdf\") {\n                return false;\n              }\n              if (Reason != \"rendition\") {\n                return false;\n              }\n              if (Rendition != \"myrendition\") {\n                return false;\n              }\n              if (Blob.getFilename() != \"myfile.txt\") {\n                return false;\n              }\n              if (XPath == \"file:content\" || XPath == \"blobholder:0\") {\n                return false;\n              }\n              return true;\n          </script>\n        </permission>\n      </code>\n      The language can be any JVM scripting language, the default is \"JavaScript\".\n\n      The script must define a \"run()\" function that returns a boolean:\n      - true means that downloading the blob is not disallowed by this permission.\n      - false means that downloading the blob is forbidden.\n      The method will get called with the following global context (some values may be null):\n      Document (DocumentModel), XPath (String), Blob (Blob), CurrentUser (NuxeoPrincipal),\n      Reason (String), Rendition (String), Infos (Map).\n\n      If there are several permissions defined, a single one returning false is sufficient\n      to forbid the blob download.\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.io.download.DownloadPermissionDescriptor\"/>\n\n  </extension-point>\n\n  <extension-point name=\"redirectResolver\">\n\n    <documentation>\n      Defines the redirect resolver associated to blob download. Contributions are of the form:\n      <code>\n        <redirectResolver class=\"org.nuxeo.ecm.core.io.download.DefaultRedirectResolver\"></redirectResolver>\n      </code>\n      This allows you to redirect to a specific cache server or by default the blobManager redirect mechanism\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.io.download.RedirectResolverDescriptor\"/>\n\n  </extension-point>\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <documentation>\n      Property that enables returning blob URLs with redirections already taken into account.\n      Only applies to code calling the DownloadService.getFullDownloadUrl API.\n    </documentation>\n    <property name=\"org.nuxeo.download.url.follow.redirect\">${org.nuxeo.download.url.follow.redirect:=false}</property>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.transientstore.TransientStorageComponent\" point=\"store\">\n    <!-- Explicit declaration based on default configuration to enforce GC -->\n    <store name=\"download\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/download-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.io.registry.MarshallerRegistryImpl",
          "documentation": "\n    Service providing a way to register marshallers and use them.\n  \n",
          "documentationHtml": "<p>\nService providing a way to register marshallers and use them.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.io.MarshallerRegistry",
              "descriptors": [
                "org.nuxeo.ecm.core.io.registry.MarshallerRegistryDescriptor"
              ],
              "documentation": "\n\n      Extension Point to register or deregister a marshaller.\n      <register\n    class=\"org.company.nuxeo.io.MyDocumentWriter\" enable=\"true\"/>\n",
              "documentationHtml": "<p>\nExtension Point to register or deregister a marshaller.\n</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.MarshallerRegistry/ExtensionPoints/org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "id": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "label": "marshallers (org.nuxeo.ecm.core.io.MarshallerRegistry)",
              "name": "marshallers",
              "version": "2021.62.7"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.MarshallerRegistry",
          "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
          "requirements": [],
          "resolutionOrder": 150,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.io.MarshallerRegistry",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.MarshallerRegistry/Services/org.nuxeo.ecm.core.io.registry.MarshallerRegistry",
              "id": "org.nuxeo.ecm.core.io.registry.MarshallerRegistry",
              "overriden": false,
              "version": "2021.62.7"
            }
          ],
          "startOrder": 821,
          "version": "2021.62.7",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" version=\"1.0.0\">\n  <documentation>\n    Service providing a way to register marshallers and use them.\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.io.registry.MarshallerRegistryImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.io.registry.MarshallerRegistry\" />\n  </service>\n\n  <extension-point name=\"marshallers\">\n\n    <documentation>\n      Extension Point to register or deregister a marshaller.\n      <register class=\"org.company.nuxeo.io.MyDocumentWriter\" enable=\"true\" />\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.io.registry.MarshallerRegistryDescriptor\" />\n\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/MarshallerRegistry.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Core IO registered marshallers set.\n  \n",
          "documentationHtml": "<p>\nCore IO registered marshallers set.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.MarshallerRegistry.marshallers/Contributions/org.nuxeo.ecm.core.io.MarshallerRegistry.marshallers--marshallers",
              "id": "org.nuxeo.ecm.core.io.MarshallerRegistry.marshallers--marshallers",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "2021.62.7",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <!-- validation -->\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.validation.ConstraintJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.validation.ConstraintListJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.validation.DocumentValidationReportJsonWriter\" enable=\"true\"/>\n    <!-- document -->\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentModelJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentModelJsonReader\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentPropertyJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentPropertiesJsonReader\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentModelListJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentModelListJsonReader\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.ACPJsonWriter\" enable=\"true\"/>\n    <!-- document type -->\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.DocumentTypeJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.DocumentTypeListJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.FacetJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.FacetListJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.SchemaJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.SchemaListJsonWriter\" enable=\"true\"/>\n    <!-- enrichers -->\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.FirstAccessibleAncestorJsonEnricher\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.BasePermissionsJsonEnricher\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.BreadcrumbJsonEnricher\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.ChildrenJsonEnricher\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.HasFolderishChildJsonEnricher\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.ContextualParametersJsonEnricher\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.UserVisiblePermissionsJsonEnricher\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.BlobAppLinksJsonEnricher\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io/org.nuxeo.ecm.core.io.MarshallerRegistry.marshallers",
          "name": "org.nuxeo.ecm.core.io.MarshallerRegistry.marshallers",
          "requirements": [],
          "resolutionOrder": 151,
          "services": [],
          "startOrder": 141,
          "version": "2021.62.7",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.io.MarshallerRegistry.marshallers\" version=\"1.0.0\">\n  <documentation>\n    Core IO registered marshallers set.\n  </documentation>\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <!-- validation -->\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.validation.ConstraintJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.validation.ConstraintListJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.validation.DocumentValidationReportJsonWriter\"\n      enable=\"true\" />\n    <!-- document -->\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentModelJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentModelJsonReader\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentPropertyJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentPropertiesJsonReader\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentModelListJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.DocumentModelListJsonReader\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.document.ACPJsonWriter\" enable=\"true\" />\n    <!-- document type -->\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.DocumentTypeJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.DocumentTypeListJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.FacetJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.FacetListJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.SchemaJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.types.SchemaListJsonWriter\" enable=\"true\" />\n    <!-- enrichers -->\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.FirstAccessibleAncestorJsonEnricher\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.BasePermissionsJsonEnricher\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.BreadcrumbJsonEnricher\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.ChildrenJsonEnricher\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.HasFolderishChildJsonEnricher\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.ContextualParametersJsonEnricher\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.UserVisiblePermissionsJsonEnricher\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.io.marshallers.json.enrichers.BlobAppLinksJsonEnricher\" enable=\"true\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/marshallers-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-core-io-2021.62.7.jar",
      "groupId": "org.nuxeo.ecm.core",
      "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.io",
      "id": "org.nuxeo.ecm.core.io",
      "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: 11.0.24\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 5.4.2.qualifier\r\nExport-Package: org.nuxeo.ecm.core.io,org.nuxeo.ecm.core.io.exceptions\r\n ,org.nuxeo.ecm.core.io.impl,org.nuxeo.ecm.core.io.impl.plugins\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: org.nuxeo.ecm.core.io\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nImport-Package: javax.security.auth.login,org.apache.commons.logging,o\r\n rg.dom4j,org.dom4j.io,org.nuxeo.common.collections,org.nuxeo.common.u\r\n tils,org.nuxeo.ecm.core;api=split,org.nuxeo.ecm.core.api;api=split,or\r\n g.nuxeo.ecm.core.api.impl,org.nuxeo.ecm.core.api.impl.blob,org.nuxeo.\r\n ecm.core.api.repository,org.nuxeo.ecm.core.api.security,org.nuxeo.ecm\r\n .core.api.security.impl,org.nuxeo.ecm.core.schema,org.nuxeo.ecm.core.\r\n schema.types,org.nuxeo.runtime.api,org.nuxeo.runtime.services.streaming\r\nBundle-SymbolicName: org.nuxeo.ecm.core.io;singleton:=true\r\nNuxeo-Component: OSGI-INF/document-xml-exporter-service.xml,OSGI-INF/a\r\n vro-factory-contrib.xml,OSGI-INF/download-service.xml,OSGI-INF/Marsha\r\n llerRegistry.xml,OSGI-INF/marshallers-contrib.xml\r\n\r\n",
      "maxResolutionOrder": 151,
      "minResolutionOrder": 147,
      "packages": [],
      "requirements": [],
      "version": "2021.62.7"
    }
  ],
  "creationDate": 1730823086020,
  "key": "Nuxeo Platform-2021.62",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1730823086020,
  "version": "2021.62"
}