{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-web-resources-core",
      "artifactVersion": "2023.16.12",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.web.resources.api",
          "org.nuxeo.web.resources.core",
          "org.nuxeo.web.resources.jsf",
          "org.nuxeo.web.resources.rest",
          "org.nuxeo.web.resources.wro"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.web.resources",
        "id": "grp:org.nuxeo.web.resources",
        "name": "org.nuxeo.web.resources",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "2023.16"
      },
      "bundleId": "org.nuxeo.web.resources.core",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.web.resources.core.service.WebResourceManagerImpl",
          "documentation": "\n    The WebResourceManager service provides extension points for\n    pluggable resources, resource bundles and resource processors.\n\n    @since 7.3\n  \n",
          "documentationHtml": "<p>\nThe WebResourceManager service provides extension points for\npluggable resources, resource bundles and resource processors.\n</p><p>\n&#64;since 7.3\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.WebResources",
              "descriptors": [
                "org.nuxeo.ecm.web.resources.core.ResourceDescriptor"
              ],
              "documentation": "\n\n      The resources extension point allows to declare typed resources, with dependencies.\n\n      Example:\n\n      <code>\n    <resource name=\"foldable-box.js\">\n        <path>scripts/foldable-box.js</path>\n        <require>effects</require>\n    </resource>\n</code>\n\n\n      There are several ways to declare the resource type. It can be retrieved\n      from the resource name ('js' for above example) or declared explicitely,\n      for instance the following declaration is almost equivalent\n      (the resource name changes).\n\n      <code>\n    <resource name=\"foldable-box\" type=\"js\">\n        <path>scripts/foldable-box.js</path>\n        <require>effects</require>\n    </resource>\n</code>\n\n\n      The above example also specifies a dependency on a resource named \"effects\",\n      any number of dependencies can be piled up on the declaration:\n\n      <code>\n    <resource name=\"foldable-box\" type=\"js\">\n        <path>scripts/foldable-box.js</path>\n        <require>effects</require>\n        <require>jquery</require>\n    </resource>\n</code>\n\n\n      When aggregating resources with dependencies, order will be respected:\n      for instance, the effects and jquery resources will be declared *before*\n      the foldable-box resource in above example.\n\n      The \"path\" element resolves the resource inside the jar that holds the\n      extension point contribution declaration. An alternative way can be used\n      to reference the resource path in the nuxeo.war directory:\n\n      <code>\n    <resource name=\"foldable-box.js\">\n        <uri>/scripts/foldable-box.js</uri>\n    </resource>\n</code>\n\n\n      Notice the \"uri\" element instead of the \"path\", and leading slash\n      (making the resource lookup from the war directory root).\n\n      When only the path is filled, the resource uri is filled automatically\n      with the resource classpath uri in the corresponding runtime bundle context.\n\n      When using the uri element, wildcard are supported, for instance:\n\n      <code>\n    <resource name=\"scripts.js\">\n        <uri>/scripts/*.js</uri>\n    </resource>\n</code>\n\n\n      Alternatively, classpath, file URL and external URLs are allowed:\n      <code>\n    <uri>classpath:com/mycompany/resources/script.js</uri>\n    <uri>file:c:/temp/file.css</uri>\n    <uri>http://www.site.com/static/style.css</uri>\n</code>\n\n\n      Minimization, URL rewriting, etc... processing of resources can be applied\n      implicitly to all resources of a given type.\n      Resources definition can also explicitly reference processors that\n      should to be applied to them, see the \"processors\" extension point documentation.\n\n      <code>\n    <resource name=\"foldable-box.css\">\n        <path>css/foldable-box.css</path>\n        <processors>\n            <processor>flavor</processor>\n        </processors>\n    </resource>\n</code>\n",
              "documentationHtml": "<p>\nThe resources extension point allows to declare typed resources, with dependencies.\n</p><p>\nExample:\n</p><p>\n</p><pre><code>    &lt;resource name&#61;&#34;foldable-box.js&#34;&gt;\n        &lt;path&gt;scripts/foldable-box.js&lt;/path&gt;\n        &lt;require&gt;effects&lt;/require&gt;\n    &lt;/resource&gt;\n</code></pre><p>\nThere are several ways to declare the resource type. It can be retrieved\nfrom the resource name (&#39;js&#39; for above example) or declared explicitely,\nfor instance the following declaration is almost equivalent\n(the resource name changes).\n</p><p>\n</p><pre><code>    &lt;resource name&#61;&#34;foldable-box&#34; type&#61;&#34;js&#34;&gt;\n        &lt;path&gt;scripts/foldable-box.js&lt;/path&gt;\n        &lt;require&gt;effects&lt;/require&gt;\n    &lt;/resource&gt;\n</code></pre><p>\nThe above example also specifies a dependency on a resource named &#34;effects&#34;,\nany number of dependencies can be piled up on the declaration:\n</p><p>\n</p><pre><code>    &lt;resource name&#61;&#34;foldable-box&#34; type&#61;&#34;js&#34;&gt;\n        &lt;path&gt;scripts/foldable-box.js&lt;/path&gt;\n        &lt;require&gt;effects&lt;/require&gt;\n        &lt;require&gt;jquery&lt;/require&gt;\n    &lt;/resource&gt;\n</code></pre><p>\nWhen aggregating resources with dependencies, order will be respected:\nfor instance, the effects and jquery resources will be declared *before*\nthe foldable-box resource in above example.\n</p><p>\nThe &#34;path&#34; element resolves the resource inside the jar that holds the\nextension point contribution declaration. An alternative way can be used\nto reference the resource path in the nuxeo.war directory:\n</p><p>\n</p><pre><code>    &lt;resource name&#61;&#34;foldable-box.js&#34;&gt;\n        &lt;uri&gt;/scripts/foldable-box.js&lt;/uri&gt;\n    &lt;/resource&gt;\n</code></pre><p>\nNotice the &#34;uri&#34; element instead of the &#34;path&#34;, and leading slash\n(making the resource lookup from the war directory root).\n</p><p>\nWhen only the path is filled, the resource uri is filled automatically\nwith the resource classpath uri in the corresponding runtime bundle context.\n</p><p>\nWhen using the uri element, wildcard are supported, for instance:\n</p><p>\n</p><pre><code>    &lt;resource name&#61;&#34;scripts.js&#34;&gt;\n        &lt;uri&gt;/scripts/*.js&lt;/uri&gt;\n    &lt;/resource&gt;\n</code></pre><p>\nAlternatively, classpath, file URL and external URLs are allowed:\n</p><p></p><pre><code>    &lt;uri&gt;classpath:com/mycompany/resources/script.js&lt;/uri&gt;\n    &lt;uri&gt;file:c:/temp/file.css&lt;/uri&gt;\n    &lt;uri&gt;http://www.site.com/static/style.css&lt;/uri&gt;\n</code></pre><p>\nMinimization, URL rewriting, etc... processing of resources can be applied\nimplicitly to all resources of a given type.\nResources definition can also explicitly reference processors that\nshould to be applied to them, see the &#34;processors&#34; extension point documentation.\n</p><p>\n</p><pre><code>    &lt;resource name&#61;&#34;foldable-box.css&#34;&gt;\n        &lt;path&gt;css/foldable-box.css&lt;/path&gt;\n        &lt;processors&gt;\n            &lt;processor&gt;flavor&lt;/processor&gt;\n        &lt;/processors&gt;\n    &lt;/resource&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.web.resources/org.nuxeo.web.resources.core/org.nuxeo.ecm.platform.WebResources/ExtensionPoints/org.nuxeo.ecm.platform.WebResources--resources",
              "id": "org.nuxeo.ecm.platform.WebResources--resources",
              "label": "resources (org.nuxeo.ecm.platform.WebResources)",
              "name": "resources",
              "version": "2023.16.12"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.WebResources",
              "descriptors": [
                "org.nuxeo.ecm.web.resources.core.ResourceBundleDescriptor"
              ],
              "documentation": "\n\n      The resourceBundles extension point allows to group resources by name.\n\n      Example:\n\n      <code>\n    <bundle name=\"myapp\">\n        <resources>\n            <resource>jquery.js</resource>\n            <resource>foldable-box.js</resource>\n            <resource>foldable-box.css</resource>\n        </resources>\n    </bundle>\n</code>\n\n\n      Bundles support override and merging logics: another module can contribute\n      to the same bundle:\n\n      <code>\n    <bundle name=\"myapp\">\n        <resources append=\"true\">\n            <resource>my.css</resource>\n        </resources>\n    </bundle>\n</code>\n\n\n      If the attribute append is not set, or set to false, resources will be overridden.\n\n      Pages and page elements should refer to resource bundle to allow pluggability.\n\n    \n",
              "documentationHtml": "<p>\nThe resourceBundles extension point allows to group resources by name.\n</p><p>\nExample:\n</p><p>\n</p><pre><code>    &lt;bundle name&#61;&#34;myapp&#34;&gt;\n        &lt;resources&gt;\n            &lt;resource&gt;jquery.js&lt;/resource&gt;\n            &lt;resource&gt;foldable-box.js&lt;/resource&gt;\n            &lt;resource&gt;foldable-box.css&lt;/resource&gt;\n        &lt;/resources&gt;\n    &lt;/bundle&gt;\n</code></pre><p>\nBundles support override and merging logics: another module can contribute\nto the same bundle:\n</p><p>\n</p><pre><code>    &lt;bundle name&#61;&#34;myapp&#34;&gt;\n        &lt;resources append&#61;&#34;true&#34;&gt;\n            &lt;resource&gt;my.css&lt;/resource&gt;\n        &lt;/resources&gt;\n    &lt;/bundle&gt;\n</code></pre><p>\nIf the attribute append is not set, or set to false, resources will be overridden.\n</p><p>\nPages and page elements should refer to resource bundle to allow pluggability.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.web.resources/org.nuxeo.web.resources.core/org.nuxeo.ecm.platform.WebResources/ExtensionPoints/org.nuxeo.ecm.platform.WebResources--bundles",
              "id": "org.nuxeo.ecm.platform.WebResources--bundles",
              "label": "bundles (org.nuxeo.ecm.platform.WebResources)",
              "name": "bundles",
              "version": "2023.16.12"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.WebResources",
              "descriptors": [
                "org.nuxeo.ecm.web.resources.core.ProcessorDescriptor"
              ],
              "documentation": "\n\n      The processors extension point allows to define what processors should\n      apply to resources. Some builtin processors apply to all resources,\n      implicitly, this is the case for all processors coming with wro4j.\n\n      Other processors require the resource to reference them explicitly\n      in the resource definition (like the \"flavor\" Nuxeo-specific processor).\n\n      Example:\n\n      <code>\n    <processor name=\"myProc\" order=\"10\" type=\"wroPost\">\n        <class>org.nuxeo.ecm.web.resources.tests.MockProcessor</class>\n    </processor>\n</code>\n\n\n      The processor type is a marker that allows to group and order processors\n      for a given usage (here, as a wro4j post processor).\n\n      Multiple types are also supported:\n\n      <code>\n    <processor name=\"myProc\" order=\"10\">\n        <types>\n            <type>wropPre</type>\n            <type>wropPost</type>\n        </types>\n        <class>org.nuxeo.ecm.web.resources.tests.MockProcessor</class>\n    </processor>\n</code>\n\n\n      The processor class usually needs to follow a given interface depending on\n      its type, but this check is only done at runtime.\n      For instance, processors with the \"wroPre\" type have to extend\n      ro.isdc.wro.model.resource.processor.ResourcePreProcessor and processors\n      with the \"wroPost\" type have to extend\n      ro.isdc.wro.model.resource.processor.ResourcePostProcessor.\n\n      Builtin wro processors can also be registered without mentioning a class,\n      using their wro alias:\n\n      <code>\n    <processor name=\"cssMin\" order=\"30\" type=\"wroPre\"/>\n</code>\n\n\n      Some default processors (like cssMin above) are already registered by default\n      in Nuxeo.\n\n    \n",
              "documentationHtml": "<p>\nThe processors extension point allows to define what processors should\napply to resources. Some builtin processors apply to all resources,\nimplicitly, this is the case for all processors coming with wro4j.\n</p><p>\nOther processors require the resource to reference them explicitly\nin the resource definition (like the &#34;flavor&#34; Nuxeo-specific processor).\n</p><p>\nExample:\n</p><p>\n</p><pre><code>    &lt;processor name&#61;&#34;myProc&#34; order&#61;&#34;10&#34; type&#61;&#34;wroPost&#34;&gt;\n        &lt;class&gt;org.nuxeo.ecm.web.resources.tests.MockProcessor&lt;/class&gt;\n    &lt;/processor&gt;\n</code></pre><p>\nThe processor type is a marker that allows to group and order processors\nfor a given usage (here, as a wro4j post processor).\n</p><p>\nMultiple types are also supported:\n</p><p>\n</p><pre><code>    &lt;processor name&#61;&#34;myProc&#34; order&#61;&#34;10&#34;&gt;\n        &lt;types&gt;\n            &lt;type&gt;wropPre&lt;/type&gt;\n            &lt;type&gt;wropPost&lt;/type&gt;\n        &lt;/types&gt;\n        &lt;class&gt;org.nuxeo.ecm.web.resources.tests.MockProcessor&lt;/class&gt;\n    &lt;/processor&gt;\n</code></pre><p>\nThe processor class usually needs to follow a given interface depending on\nits type, but this check is only done at runtime.\nFor instance, processors with the &#34;wroPre&#34; type have to extend\nro.isdc.wro.model.resource.processor.ResourcePreProcessor and processors\nwith the &#34;wroPost&#34; type have to extend\nro.isdc.wro.model.resource.processor.ResourcePostProcessor.\n</p><p>\nBuiltin wro processors can also be registered without mentioning a class,\nusing their wro alias:\n</p><p>\n</p><pre><code>    &lt;processor name&#61;&#34;cssMin&#34; order&#61;&#34;30&#34; type&#61;&#34;wroPre&#34;/&gt;\n</code></pre><p>\nSome default processors (like cssMin above) are already registered by default\nin Nuxeo.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.web.resources/org.nuxeo.web.resources.core/org.nuxeo.ecm.platform.WebResources/ExtensionPoints/org.nuxeo.ecm.platform.WebResources--processors",
              "id": "org.nuxeo.ecm.platform.WebResources--processors",
              "label": "processors (org.nuxeo.ecm.platform.WebResources)",
              "name": "processors",
              "version": "2023.16.12"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.web.resources/org.nuxeo.web.resources.core/org.nuxeo.ecm.platform.WebResources",
          "name": "org.nuxeo.ecm.platform.WebResources",
          "requirements": [],
          "resolutionOrder": 919,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.WebResources",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.web.resources/org.nuxeo.web.resources.core/org.nuxeo.ecm.platform.WebResources/Services/org.nuxeo.ecm.web.resources.api.service.WebResourceManager",
              "id": "org.nuxeo.ecm.web.resources.api.service.WebResourceManager",
              "overriden": false,
              "version": "2023.16.12"
            }
          ],
          "startOrder": 839,
          "version": "2023.16.12",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.WebResources\">\n  <documentation>\n    The WebResourceManager service provides extension points for\n    pluggable resources, resource bundles and resource processors.\n\n    @since 7.3\n  </documentation>\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.web.resources.api.service.WebResourceManager\" />\n  </service>\n  <implementation class=\"org.nuxeo.ecm.web.resources.core.service.WebResourceManagerImpl\" />\n\n  <extension-point name=\"resources\">\n    <documentation>\n\n      The resources extension point allows to declare typed resources, with dependencies.\n\n      Example:\n\n      <code>\n        <resource name=\"foldable-box.js\">\n          <path>scripts/foldable-box.js</path>\n          <require>effects</require>\n        </resource>\n      </code>\n\n      There are several ways to declare the resource type. It can be retrieved\n      from the resource name ('js' for above example) or declared explicitely,\n      for instance the following declaration is almost equivalent\n      (the resource name changes).\n\n      <code>\n        <resource name=\"foldable-box\" type=\"js\">\n          <path>scripts/foldable-box.js</path>\n          <require>effects</require>\n        </resource>\n      </code>\n\n      The above example also specifies a dependency on a resource named \"effects\",\n      any number of dependencies can be piled up on the declaration:\n\n      <code>\n        <resource name=\"foldable-box\" type=\"js\">\n          <path>scripts/foldable-box.js</path>\n          <require>effects</require>\n          <require>jquery</require>\n        </resource>\n      </code>\n\n      When aggregating resources with dependencies, order will be respected:\n      for instance, the effects and jquery resources will be declared *before*\n      the foldable-box resource in above example.\n\n      The \"path\" element resolves the resource inside the jar that holds the\n      extension point contribution declaration. An alternative way can be used\n      to reference the resource path in the nuxeo.war directory:\n\n      <code>\n        <resource name=\"foldable-box.js\">\n          <uri>/scripts/foldable-box.js</uri>\n        </resource>\n      </code>\n\n      Notice the \"uri\" element instead of the \"path\", and leading slash\n      (making the resource lookup from the war directory root).\n\n      When only the path is filled, the resource uri is filled automatically\n      with the resource classpath uri in the corresponding runtime bundle context.\n\n      When using the uri element, wildcard are supported, for instance:\n\n      <code>\n        <resource name=\"scripts.js\">\n          <uri>/scripts/*.js</uri>\n        </resource>\n      </code>\n\n      Alternatively, classpath, file URL and external URLs are allowed:\n      <code>\n        <uri>classpath:com/mycompany/resources/script.js</uri>\n        <uri>file:c:/temp/file.css</uri>\n        <uri>http://www.site.com/static/style.css</uri>\n      </code>\n\n      Minimization, URL rewriting, etc... processing of resources can be applied\n      implicitly to all resources of a given type.\n      Resources definition can also explicitly reference processors that\n      should to be applied to them, see the \"processors\" extension point documentation.\n\n      <code>\n        <resource name=\"foldable-box.css\">\n          <path>css/foldable-box.css</path>\n          <processors>\n            <processor>flavor</processor>\n          </processors>\n        </resource>\n      </code>\n\n    </documentation>\n    <object class=\"org.nuxeo.ecm.web.resources.core.ResourceDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"bundles\">\n    <documentation>\n\n      The resourceBundles extension point allows to group resources by name.\n\n      Example:\n\n      <code>\n        <bundle name=\"myapp\">\n          <resources>\n            <resource>jquery.js</resource>\n            <resource>foldable-box.js</resource>\n            <resource>foldable-box.css</resource>\n          </resources>\n        </bundle>\n      </code>\n\n      Bundles support override and merging logics: another module can contribute\n      to the same bundle:\n\n      <code>\n        <bundle name=\"myapp\">\n          <resources append=\"true\">\n            <resource>my.css</resource>\n          </resources>\n        </bundle>\n      </code>\n\n      If the attribute append is not set, or set to false, resources will be overridden.\n\n      Pages and page elements should refer to resource bundle to allow pluggability.\n\n    </documentation>\n    <object class=\"org.nuxeo.ecm.web.resources.core.ResourceBundleDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"processors\">\n    <documentation>\n\n      The processors extension point allows to define what processors should\n      apply to resources. Some builtin processors apply to all resources,\n      implicitly, this is the case for all processors coming with wro4j.\n\n      Other processors require the resource to reference them explicitly\n      in the resource definition (like the \"flavor\" Nuxeo-specific processor).\n\n      Example:\n\n      <code>\n        <processor name=\"myProc\" type=\"wroPost\" order=\"10\">\n          <class>org.nuxeo.ecm.web.resources.tests.MockProcessor</class>\n        </processor>\n      </code>\n\n      The processor type is a marker that allows to group and order processors\n      for a given usage (here, as a wro4j post processor).\n\n      Multiple types are also supported:\n\n      <code>\n        <processor name=\"myProc\" order=\"10\">\n          <types>\n            <type>wropPre</type>\n            <type>wropPost</type>\n          </types>\n          <class>org.nuxeo.ecm.web.resources.tests.MockProcessor</class>\n        </processor>\n      </code>\n\n      The processor class usually needs to follow a given interface depending on\n      its type, but this check is only done at runtime.\n      For instance, processors with the \"wroPre\" type have to extend\n      ro.isdc.wro.model.resource.processor.ResourcePreProcessor and processors\n      with the \"wroPost\" type have to extend\n      ro.isdc.wro.model.resource.processor.ResourcePostProcessor.\n\n      Builtin wro processors can also be registered without mentioning a class,\n      using their wro alias:\n\n      <code>\n        <processor name=\"cssMin\" type=\"wroPre\" order=\"30\" />\n      </code>\n\n      Some default processors (like cssMin above) are already registered by default\n      in Nuxeo.\n\n    </documentation>\n    <object class=\"org.nuxeo.ecm.web.resources.core.ProcessorDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/webresources-framework.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-web-resources-core-2023.16.12.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.web.resources/org.nuxeo.web.resources.core",
      "id": "org.nuxeo.web.resources.core",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven 3.9.6\r\nBuilt-By: root\r\nBuild-Jdk: 17.0.11\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 2023.16.12-t20240807-002023\r\nBundle-Name: Nuxeo Web Resources Core\r\nBundle-SymbolicName: org.nuxeo.web.resources.core;singleton:=true\r\nBundle-Localization: plugin\r\nBundle-Vendor: Nuxeo\r\nBundle-Category: core\r\nNuxeo-Component: OSGI-INF/webresources-framework.xml\r\n\r\n",
      "maxResolutionOrder": 919,
      "minResolutionOrder": 919,
      "packages": [],
      "requirements": [],
      "version": "2023.16.12"
    }
  ],
  "creationDate": 1723456257461,
  "key": "Nuxeo Platform-2023.16",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1723456257461,
  "version": "2023.16"
}