All Known Implementing Classes:
AbstractResourceBasedDynamicAssetsLoader, ClassLoaderDynamicAssetsLoader, FilesystemDynamicAssetsLoader, ResourceDynamicAssetsLoader

public interface DynamicAssetsLoader
Allows to load to compile resources based on descriptor file provided by frontend packager like Webpack. This tool is extremely useful for loading resources that don't have static names. For example resources generated with webpack. Tool make possible to read path to single resources as well as "entrypoint" - set of resources that execute themselves and don't need external invoker. Usually it is used in background by thymeleaf for templates like:
     
 <html xmlns:dynamicassets="http://rarogsoftware.eu/schemas/dynamicassets.xsd">
 
     Example
     <dynamicassets:loadcss entrypoint="pluginkey|namespace|entrypointName"/>
 
 
 
<dynamicassets:loadjs entrypoint="pluginkey|namespace|entrypointName"/>
Manifest that contains info about entrypoint and assets have specified JSON format:
     {
         "assets": {
             "assetName": {
                 "src": "url address relative to base url of Rarog app",
                 "integrity": "integrity hash",
                 // additional fields
             },
             "entrypoints": {
                 "entrypointName": {
                     "assets": {
                         "js": [
                             "src": "url address relative to base url of Rarog app",
                             "integrity": "integrity hash",
                             // additional fields
                         ],
                         "css": [
                             "src": "url",
                             "integrity": "hash",
                             // fields
                         ],
                         // other supported types
                     },
                     // additional fields
                 }
             }
         }
     }
 
See Also:
  • Method Details

    • getAssetsForEntryPoint

      Optional<DynamicAssetsLoader.EntrypointAssetData> getAssetsForEntryPoint(String entrypoint)
      Returns data of set of resource that need to be loaded on page to make them execute as independent functionality. This concept is similar to webpacks entrypoint concept.
      Parameters:
      entrypoint - name of entry point in descriptor
      Returns:
      list of css and js resources that need to loaded on page to make their functionality work correctly
    • getAssetData

      Returns single resource data. Resources are unique inside single descriptor
      Parameters:
      assetName -
      Returns:
      asset data