class Maven2BrowseNodeGenerator extends ComponentPathBrowseNodeGenerator {

  @Override
  public List<BrowsePath> computeAssetPaths(final Asset asset) {
    checkNotNull(asset);

    return asset.component().map(component -> {

      // place asset under component, but use its true path as the request path for permission checks
      List<BrowsePath> assetPaths = computeComponentPaths(asset);
      appendPath(assetPaths, lastSegment(asset.path()), asset.path());
      return assetPaths;

    }).orElseGet(() -> super.computeAssetPaths(asset));
  }

}