GithubHelp home page GithubHelp logo

Comments (5)

lpellegr avatar lpellegr commented on July 22, 2024 2

Thanks for your answer.

You are right, the issue is mainly with GraalVM that is not able to detect classes from dependencies that are loaded dynamically. Indeed, Jinja seems to load exptest, filter, and tags classes dynamically.

Although, that's a native-image problem, libraries usually include a reflect-config.json file to list elements used by reflection.

For example, here is one for Netty:
https://github.com/netty/netty/blob/4.1/transport/src/main/resources/META-INF/native-image/io.netty/transport/reflection-config.json

I am investigating what content should be used to make jinjava work in native-images and will post any progress here for help to others, or in case you want to include a reflect-config.json in released artifacts.

from jinjava.

jasmith-hs avatar jasmith-hs commented on July 22, 2024

I've never used Graal, but this does not sound like an issue with Jinjava. Unless c.getDeclaredConstructor().newInstance() would help, there's likely some configuration needed with Graal as the reflection done here works fine

from jinjava.

lpellegr avatar lpellegr commented on July 22, 2024

Here is the resources/META-INF/native-image/reflect-config.json I used to make Jinja work with my native-image:

[
  {
    "name": "com.hubspot.jinjava.el.ExtendedSyntaxBuilder",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  },
  {
    "name": "com.hubspot.jinjava.el.ext.eager.EagerExtendedSyntaxBuilder",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  },
  {
    "name": "com.google.common.collect.Lists",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  },
  {
    "name": "com.hubspot.jinjava.lib.fn.Functions",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  },
  {
    "name": "com.hubspot.jinjava.lib.fn.TypeFunction",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.CollectionExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsBooleanExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsContainingExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsContainingAllExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsDefinedExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsDivisibleByExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsEqExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsEqualToExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsEqualsSymbolExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.SymmetricDifferenceFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsEvenExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsFalseExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsFloatExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsGeTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsGreaterThanExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsGreaterThanOrEqualToSymbolExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsGreaterThanSymbolExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsGtTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsInExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsIntegerExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.IntersectFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsIterableExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsLeTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsLessThanExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsLessThanOrEqualToSymbolExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsLessThanSymbolExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsLowerExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsLtTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsMappingExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsNeExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsNoneExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsNotEqualToSymbolExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsNumberExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsOddExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsSameAsExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsSequenceExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsStringContainingExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsStringExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsStringStartingWithExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsTrueExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsTruthyExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsUndefinedExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsUpperExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.exptest.IsWithinExpTest",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.PrettyPrintFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.EscapeJsFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.EscapeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.EAliasedEscapeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.RejectFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.CenterFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.WordCountFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.UnixTimestampFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.AbsFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.StringToDateFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.ShuffleFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.StringFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.Base64DecodeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.DivideFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.XmlAttrFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.IntersectFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.FloatFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.SortFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.RoundFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.Md5Filter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.MinusTimeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.AttrFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.UpperFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.BetweenTimesFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.BoolFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.CapitalizeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.DifferenceFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.DictSortFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.RandomFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.IntFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.JoinFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.SumFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.BaseDateFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.SelectAttrFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.FormatFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.AbstractSetFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.SelectFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.RejectAttrFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.DefaultFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.TruncateHtmlFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.MapFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.LengthFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.CountFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.FileSizeFormatFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.LastFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.FromJsonFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.ReverseFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.DivisibleFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.TitleFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.AddFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.CutFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.ForceEscapeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.FromYamlFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.BatchFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.LogFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.StringToTimeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.SliceFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.WordWrapFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.SplitFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.PlusTimeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.UniqueFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.UnionFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.ListFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.AbstractFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.IndentFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.DefaultFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.LowerFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.SafeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.TruncateFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.RenderFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.ToYamlFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.Base64EncodeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.UrlEncodeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.RootFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.EscapeJinjavaFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.RegexReplaceFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.UrlizeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.ReplaceFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.IpAddrFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.Ipv6Filter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.Ipv4Filter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.ToJsonFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.FirstFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.DateTimeFormatFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.DatetimeFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.StripTagsFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.DAliasedDefaultFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.MultiplyFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.GroupByFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.TrimFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.filter.EscapeJsonFilter",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.CycleTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.ElseTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.ImportTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.RawTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.EndTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": [
          "com.hubspot.jinjava.lib.tag.Tag"
        ]
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.ForTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.CallTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.BlockTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.ExtendsTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.MacroTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.SetTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.DoTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.IfTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.UnlessTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.PrintTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.IfchangedTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.IncludeTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.FromTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.AutoEscapeTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  },
  {
    "name": "com.hubspot.jinjava.lib.tag.ElseIfTag",
    "methods": [
      {
        "name": "<init>",
        "parameterTypes": []
      }
    ]
  }
]

If you plan to add native support for GraalVM with Jinjava, then it could more maintainable to use "Configuration with Features" as described in the docs:

https://www.graalvm.org/22.0/reference-manual/native-image/Reflection/#configuration-with-features

from jinjava.

gsb-eng avatar gsb-eng commented on July 22, 2024

@lpellegr were able to solve this? I'm also facing the similar issue.

from jinjava.

dpozinen avatar dpozinen commented on July 22, 2024

I was able to get it to work with this reflect-config.json

[
  {
    "name": "com.hubspot.jinjava.el.ExtendedSyntaxBuilder",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  },
  {
    "name": "com.hubspot.jinjava.el.ext.eager.EagerExtendedSyntaxBuilder",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  },
  {
    "name": "com.google.common.collect.Lists",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  },
  {
    "name": "com.hubspot.jinjava.lib.fn.Functions",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  },
  {
    "name": "com.hubspot.jinjava.lib.fn.TypeFunction",
    "allDeclaredConstructors": true,
    "allPublicConstructors": true,
    "allDeclaredMethods": true,
    "allPublicMethods": true
  },
  {"name":"com.hubspot.jinjava.lib.tag.CycleTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.ElseTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.ImportTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.RawTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.EndTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.Tag"]}]},{"name":"com.hubspot.jinjava.lib.tag.ForTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.CallTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.BlockTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.ExtendsTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerGenericTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.Tag"]}]},{"name":"com.hubspot.jinjava.lib.tag.MacroTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.SetTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.IfTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.DoTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.PrintTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.IfchangedTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerTagDecorator","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.Tag"]}]},{"name":"com.hubspot.jinjava.lib.tag.FromTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.AutoEscapeTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.IncludeTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.ElseIfTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.UnlessTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerIncludeTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.IncludeTag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerIfTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]},{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.IfTag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerForTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]},{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.ForTag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerStateChangingTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.Tag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerUnlessTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]},{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.UnlessTag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerPrintTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]},{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.PrintTag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerCycleTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]},{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.CycleTag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerFromTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]},{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.FromTag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerSetTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]},{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.SetTag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerImportTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]},{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.ImportTag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerCallTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]},{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.CallTag"]}]},{"name":"com.hubspot.jinjava.lib.tag.eager.EagerDoTag","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]},{"name":"<init>","parameterTypes":["com.hubspot.jinjava.lib.tag.DoTag"]}]},
  {"name":"com.hubspot.jinjava.lib.filter.EscapeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.EscapeJsFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.PrettyPrintFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.CenterFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.WordCountFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.UnixTimestampFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.AbsFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.ShuffleFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.StringToDateFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.StringFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.Base64DecodeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.UrlDecodeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.XmlAttrFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.FloatFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.SortFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.time.FormatDatetimeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.time.FormatTimeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.Md5Filter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.RoundFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.AttrFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.UpperFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.BoolFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.CapitalizeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.DictSortFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.time.FormatDateFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.RandomFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.IntFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.JoinFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.LengthFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.FileSizeFormatFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.LastFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.FromJsonFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.ReverseFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.DivisibleFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.TitleFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.AddFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.CutFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.ForceEscapeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.FromYamlFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.BatchFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.StringToTimeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.LogFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.WordWrapFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.SplitFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.SliceFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.UniqueFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.ListFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.AbstractFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.LowerFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.SafeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.RenderFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.TruncateFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.ToYamlFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.FormatNumberFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.Base64EncodeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.RootFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.UrlEncodeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.EscapeJinjavaFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.RegexReplaceFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.UnescapeHtmlFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.UrlizeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.ReplaceFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.IpAddrFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.ToJsonFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.DateTimeFormatFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.FirstFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.StripTagsFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.GroupByFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.TrimFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.EscapeJsonFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.EAliasedEscapeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.SumFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.BaseDateFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.DivideFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.SelectAttrFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.FormatFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.MultiplyFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.AbstractSetFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.SelectFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.RejectAttrFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.DefaultFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.TruncateHtmlFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.MapFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.CountFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.IndentFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.Ipv6Filter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.Ipv4Filter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.DatetimeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.PlusTimeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.BetweenTimesFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.MinusTimeFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.UnionFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.DifferenceFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.SymmetricDifferenceFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.IntersectFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.RejectFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.filter.DAliasedDefaultFilter","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},
  {"name":"com.hubspot.jinjava.lib.exptest.IsFalseExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsNoneExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsUpperExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsNumberExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsEqualToExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsDefinedExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsGtTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsOddExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsTruthyExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsDivisibleByExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsStringExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsSameAsExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsEvenExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsLowerExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsBooleanExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsLtTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsLeTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsIntegerExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsMappingExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsGeTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsTrueExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsFloatExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsUndefinedExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.CollectionExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsSequenceExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsNeExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsIterableExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsEqualsSymbolExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsEqExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsGreaterThanExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsGreaterThanSymbolExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsStringContainingExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsStringStartingWithExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsLessThanOrEqualToSymbolExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsLessThanSymbolExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsLessThanExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsGreaterThanOrEqualToSymbolExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsContainingAllExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsInExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsContainingExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsNotEqualToSymbolExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},{"name":"com.hubspot.jinjava.lib.exptest.IsWithinExpTest","allDeclaredMethods": true,"methods":[{"name":"<init>","parameterTypes":[]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"dateTimeFormat","parameterTypes":["java.lang.Object","[Ljava.lang.String;"]}]},
  {"name":"com.hubspot.jinjava.lib.filter.time.FormatDateFilter","allDeclaredMethods": true,"methods":[{"name":"format","parameterTypes":["java.lang.Object","[Ljava.lang.String;"]}]},
  {"name":"com.hubspot.jinjava.lib.filter.time.FormatTimeFilter","allDeclaredMethods": true,"methods":[{"name":"format","parameterTypes":["java.lang.Object","[Ljava.lang.String;"]}]},
  {"name":"com.hubspot.jinjava.lib.filter.time.FormatDatetimeFilter","allDeclaredMethods": true,"methods":[{"name":"format","parameterTypes":["java.lang.Object","[Ljava.lang.String;"]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"unixtimestamp","parameterTypes":["[Ljava.lang.Object;"]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"truncate","parameterTypes":["java.lang.Object","[Ljava.lang.Object;"]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"range","parameterTypes":["java.lang.Object","[Ljava.lang.Object;"]}]},
  {"name":"com.hubspot.jinjava.lib.fn.TypeFunction","allDeclaredMethods": true,"methods":[{"name":"type","parameterTypes":["java.lang.Object"]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"today","parameterTypes":["[Ljava.lang.String;"]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"stringToTime","parameterTypes":["java.lang.String","java.lang.String"]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"stringToDate","parameterTypes":["java.lang.String","java.lang.String"]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"renderSuperBlock","parameterTypes":[]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"createNamespace","parameterTypes":["[Ljava.lang.Object;"]}]},
  {"name":"com.google.common.collect.Lists","allDeclaredMethods": true,"methods":[{"name":"newArrayList","parameterTypes":["[Ljava.lang.Object;"]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"immutableListOf","parameterTypes":["[Ljava.lang.Object;"]}]},
  {"name":"com.hubspot.jinjava.lib.fn.Functions","allDeclaredMethods": true,"methods":[{"name":"convertToMapEntry","parameterTypes":["java.lang.Object","java.lang.Object"]}]},
  {"name":"com.hubspot.jinjava.objects.collections.SizeLimitingPyMap","allDeclaredMethods":true,"allDeclaredConstructors":true},{"name":"com.hubspot.jinjava.objects.collections.PyList","allDeclaredMethods":true,"allDeclaredConstructors":true},{"name":"com.hubspot.jinjava.objects.collections.PyMap","allDeclaredMethods":true,"allDeclaredConstructors":true},{"name":"com.hubspot.jinjava.objects.serialization.PyishSerializable","allDeclaredMethods":true,"allDeclaredConstructors":true},{"name":"com.hubspot.jinjava.objects.DummyObject","allDeclaredMethods":true,"allDeclaredConstructors":true},{"name":"com.hubspot.jinjava.objects.collections.SizeLimitingPyList","allDeclaredMethods":true,"allDeclaredConstructors":true},{"name":"com.hubspot.jinjava.objects.date.PyishDate","allDeclaredMethods":true,"allDeclaredConstructors":true},{"name":"com.hubspot.jinjava.objects.Namespace","allDeclaredMethods":true,"allDeclaredConstructors":true},{"name":"com.hubspot.jinjava.el.ext.NamedParameter","allDeclaredMethods":true,"allDeclaredConstructors":true},{"name":"com.hubspot.jinjava.interpret.LazyReference","allDeclaredMethods":true,"allDeclaredConstructors":true},{"name":"com.hubspot.jinjava.interpret.JinjavaInterpreter","allDeclaredMethods":true,"allDeclaredConstructors":true}
]

from jinjava.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.