Skip to content

Releases: PebbleTemplates/pebble

4.1.2

29 May 17:53

Choose a tag to compare

New Features

  • Add format filter (#772)
  • Add support for string operands in binary operations (#773)

Bug Fixes

  • List + / - operators mutate the left operand in place (#803)

4.1.1

04 Feb 14:42

Choose a tag to compare

New Features

  • Expose AST Root Node to Enable Custom NodeVisitor Implementation (#701)

Bug Fixes

  • Catch all exceptions in DelegatingLoader (#765)

4.1.0

11 Dec 20:22

Choose a tag to compare

BREAKING CHANGES

  • If you do not provide a custom Loader, Pebble will now use only a ClasspathLoader by default, same as the spring autoconfiguration. Before that, it would have used an instance of the DelegatingLoader which consists of a ClasspathLoader and a FileLoader behind the scenes to find your templates.
  • Modify the FileLoader to use a mandatory base directory parameter.

Security

New Features

  • Use a default existing format of yyyy-MM-dd'T'HH:mm:ssZ when using date filter with a string (#677)
  • Look for exact method / field match when doing reflection. Look for method get/is/has if none match (#712)
  • Support dynamic named arguments (#741)

Bug Fixes

  • NaN must return false instead of throwing an exception (#695)

Dependency Upgrades

  • Upgrade to SLF4J 2.0.17 (#709)

4.0.0

22 Nov 01:36

Choose a tag to compare

BREAKING CHANGES

  • Add support for spring boot 4 (#704)
  • Use one of the following artifactId according to the spring boot version that you are using
ArtifactId spring-boot version
pebble-legacy-spring-boot-starter 3.x.x
pebble-spring-boot-starter 4.x.x
  • The following spring boot properties has been moved to .servlet or .reactive
Old property New Property
pebble.allowRequestOverride pebble.servlet.allowRequestOverride
pebble.allowSessionOverride pebble.servlet.allowSessionOverride
pebble.cache pebble.servlet.cache
pebble.contentType pebble.servlet.contentType
pebble.exposeRequestAttributes pebble.servlet.exposeRequestAttributes
pebble.exposeSessionAttributes pebble.servlet.exposeSessionAttributes
pebble.exposeSpringMacroHelpers pebble.servlet.exposeSpringMacroHelpers
pebble.reactive.mediaTypes

For more information, please consult the spring-boot integration documentation in
the Boot externalized configuration section

New Features

  • Add nl2br filter (#699)

3.2.4

01 Apr 14:09

Choose a tag to compare

  • Fix the problem of unit test failure under JDK 21 (#692)
  • Fix the problem of not resolving reactive values in models (#691)

3.2.3

04 Feb 19:58

Choose a tag to compare

  • Dynamically open different feature according to different scenarios (#671)
  • Fix the ability to provide your own PebbleViewResolver (#686)

3.2.2

27 Nov 15:31

Choose a tag to compare

  • Throw a more detailed exception from DefaultAttributeResolver (#653)
  • Make expression nodes fully visitable (#657)
  • Added getTemplates function to MemoryLoader (#660)
  • Generate OSGi metadata into pebble jar to make it OSGi compliant (#663)
  • Add flag for parameter name retention in maven compiler plugin (#664)

3.2.1

28 Apr 19:24

Choose a tag to compare

  • Fix the null pointer exception on the replace filter (#650)
  • Add native hints for GraalVM (#648)

3.2.0

24 Nov 19:46

Choose a tag to compare

  • Add support for spring framework 6 and spring-boot 3 (#630)
  • Bump minimum supported java version to 17 in pebble-spring6 and pebble-spring-boot-starter in order to work with spring (#630)
  • Add a memory loader that supports inheritance and doesn't require a filesystem. This is useful for applications that retrieve templates from a database for example (#617).
  • BREAKING CHANGE: Change default suffix to .peb instead of .pebble in spring boot autoconfiguration (#553)
  • BREAKING CHANGE: Rename method getInstance to createInstance in BinaryOperator interface (#521)
  • BREAKING CHANGE: Rename package from com.mitchellbosecke to io.pebbletemplates (#635)

3.1.6

21 Sep 19:38

Choose a tag to compare

  • Make CacheKey class extendible (#604)
  • Remove support for spring 1.5.x (#628)
  • Fix for older Android versions (#585 #581 #580)