Feature Flags for the Java platform

Related tags

Spring Boot togglz
Overview

Togglz

Build Status Maven Central License

Togglz is an implementation of the Feature Toggles pattern for Java. Feature Toggles are a very common agile development practices in the context of continuous deployment and delivery. The basic idea is to associate a toggle with each new feature you are working on. This allows you to enable or disable these features at application runtime, even for individual users.

Want to learn more? Have a look at an usage example or check the quickstart guide, see http://www.togglz.org/

Contributors

This project exists thanks to all the people who contribute.

Comments
  • Spring Boot 2 support

    Spring Boot 2 support

    Togglz is compiled against Spring Boot 1.5, but Spring Boot 2 introduced some breaking changes.

    For instance, TogglzEndpoint no longer works in Spring Boot 2 because they changed the way custom Endpoints are implemented.

    I'm going to give it a try and migrate it myself, but do you have any plans on supporting Spring Boot 2?

    opened by ruifigueira 46
  • Introduce

    Introduce "id()" method instead of "name()" in "Feature" Interface

    To be able to use togglz with Kotlin we need to change the API. Using "enum class" in Kotlin and having a "name()" method in a parent class will result in a compiler error.

    Resolves: #292

    opened by BeneStem 26
  • Expose admin-console in Spring Boot on management.port

    Expose admin-console in Spring Boot on management.port

    Currently, the TogglzConsoleServlet is exposed on the application port. It makes sense to use management port, which is used for configuration/management stuff. You can check this SO answer: http://stackoverflow.com/questions/40851274/expose-togglz-admin-console-in-spring-boot-on-management-port

    opened by jkubrynski 26
  • Spring test issue after upgrade to 2.6.0

    Spring test issue after upgrade to 2.6.0

    Hi, Upgrading from 2.5.0.Final to 2.6.0.Final shows up a runtime error with spring tests: Running on Java 8, Spring 4.3.x

    java.lang.IncompatibleClassChangeError: Found interface org.springframework.test.context.TestContext, but class was expected
    
    	at org.togglz.spring.test.TogglzTestExecutionListener.beforeTestMethod(TogglzTestExecutionListener.java:30)
    	at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:269)
    	at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
    	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
    	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
    	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
    	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
    	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
    	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
    	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
    	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
    
    
    
    bug 
    opened by amir-khassaia 22
  • Spring boot dedicated management context causes Tooglz warning during startup

    Spring boot dedicated management context causes Tooglz warning during startup

    With Togglz 2.5.0.Final and Spring Boot, if we setup the actuator endpoints in a dedicated context (by using the property management.server.port to specify a separate port), Spring will emit two ContextRefreshedEvent events, one for the main context and another for the management context. This results in the following warning by Tooglz in the log:

    2018-06-29 13:52:41.414 WARN 29069 --- [ main] licationContextBinderApplicationListener : ApplicationContext already bound to current context class loader, releasing it first

    I have placed a breakpoint in TogglzApplicationContextBinderApplicationListener.onApplicationEvent and run several tests, and it appears that the management event is always received first. This means that after the application starts up, the ContextClassLoaderApplicationContextHolder ends up containing the correct (main) application context. However, I cannot be certain that the order of these events is always the observed one, and I don't think Spring Boot makes no such guarantees, which means that even if the order is correct now, it may not be in some future version.

    I think that Togglz should not rely on the order of these events, and I propose that ContextRefreshedEvent events originating from the management context should instead be ignored.

    If you agree with this idea, I can work on a PR to implement it.

    Thanks and best regards

    bug 
    opened by jpmsilva 19
  • Custom Activation strategy is not getting registered

    Custom Activation strategy is not getting registered

    Hi,

    I have created custom activation strategy. I have created one class by implementing ActivationStrategy interface. Wrote my business logic in isActive method.

    Then created one folder services under META-INF and created one file with name org.togglz.core.spi.ActivationStrategy in it. Put fully qualified class name of custom strategy file like a.b.c.CustomStrategy in that file.

    But I am not getting custom strategy registered and even Admin console stopped to work after this.

    What wrong here I am doing? Let me know if you need more details from my side.

    Thanks Jigar Shah

    opened by rahilk-ezdi 19
  • New repositories

    New repositories

    added url based feature toggling (in-memory) - this acts as a 2nd layer before the filtering occurs, it allows developers to enable/disable features for a specific machine (and/or user/users). this is extremly useful when testing UI (but not only :) ).

    added IP based feature toggling (JDBC based) - this is an IP based feature toggling. by setting the machine IP you can perform a "Canary Test" which means - enable one or more specific machine/s in production with this feature. If the feature needs to be disabled, no harm done! just turn it off in the admin UI console.

    bug fix: some databases stores the column names as lower case (like postgreSQL), This results in failing to create a table (for version 1).

    opened by ghost 19
  • Spring Boot integration to auto-configure filter to populate HttpServletRequestHolder

    Spring Boot integration to auto-configure filter to populate HttpServletRequestHolder

    I am using the Togglz spring-boot-starter and added a custom strategy to check HTTP header parameter for activation (didn't immediately find one out-of-the-box) . But I noticed that HttpServletRequestHolder does not contain any request object, so I rolled my own filter to populate it. But shouldn't auto-configuration do this by default, in either a filter or interceptor, like the vanilla TogglzFilter does? I have not tested but I assume the other default servlet based strategies maybe doesn't work without it either.

    I found that it registers SpringSecurityUserProvider if spring-security is on the classpath, so I guess username strategy is taken care of, but I think that the ClientIp and ServerName strategies cannot work without it, unless I missed something here.

    bug help-wanted 
    opened by taasjord 18
  • Shouldn't assume WebApplicationContext so Togglz can be used for non-web apps

    Shouldn't assume WebApplicationContext so Togglz can be used for non-web apps

    SpringBeanFinder assumes WebApplicationContext. This doesn't work if using Togglz in a Spring command line app (which Springsource is providing a lot of support for).

    bug 
    opened by rpomeroy 18
  • Update release notes

    Update release notes

    There are no release notes after 2.6 on any of these locations, making it rather hard to figure out what has changed and has to be done. For example that junit4 support seems to have been dropped, in some version.

    • https://www.togglz.org/
    • https://www.togglz.org/updating-notes.html
    • https://github.com/togglz/togglz/releases
    documentation 
    opened by leonard84 17
  • IndexOutOfBoundsException in LogFactory

    IndexOutOfBoundsException in LogFactory

    We've been using Togglz in our open source project for well over a year, and we have recently done a lot of work to refactor our code. After over 250 commits we have started testing in a staging environment in which Togglz fails with this exception:

    Caused by: java.lang.IndexOutOfBoundsException: Index 0 out-of-bounds for length 0
            at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
            at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
            at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
            at java.base/java.util.Objects.checkIndex(Objects.java:372)
            at java.base/java.util.ArrayList.get(ArrayList.java:440)
            at org.togglz.core.logging.LogFactory.getLogProvider(LogFactory.java:37)
            at org.togglz.core.logging.LogFactory.getLog(LogFactory.java:27)
            at org.togglz.core.logging.LogFactory.getLog(LogFactory.java:23)
            at org.togglz.core.repository.file.FileBasedStateRepository.<clinit>(FileBasedStateRepository.java:22)
            ... 15 more
    

    This exception only occurs after we build our project using Gradle. This means that it doesn't affect our automated testing, and we have no idea what particular commit in our project broke Togglz.

    We use SLF4J as our logging facade. The only significant change to our Gradle build configs seems to only be the addition of Kotlin, and I don't believe we have changed how we interact with Togglz.

    Any ideas as to why this is happening?

    support 
    opened by freyacodes 16
  • Bump spring-boot.version from 2.7.5 to 3.0.0

    Bump spring-boot.version from 2.7.5 to 3.0.0

    Bumps spring-boot.version from 2.7.5 to 3.0.0. Updates spring-boot-dependencies from 2.7.5 to 3.0.0

    Release notes

    Sourced from spring-boot-dependencies's releases.

    v3.0.0

    See the Release notes for 3.0 for upgrade instructions and details of new features.

    :star: New Features

    • Provide a configuration property for the observation patterns of Spring Integration components #33099

    :lady_beetle: Bug Fixes

    • io.micrometer.tracing.Tracer on the classpath breaks AOT processing for tests #33298
    • Tracer library HTTP instrumentation is auto-configured unnecessarily #33287
    • Auto-configuration ignores user-provided ObservationConventions #33285
    • ScheduledBeanLazyInitializationExcludeFilter is auto-configured even when annotation-based scheduled has not been enabled #33284
    • SpringBootContextLoader prints banner twice when using a @ContextHierarchy #33263
    • Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #33250
    • Wavefront MeterRegistryCustomizer is not applying application tags from application.properties #33244
    • Actuator responses no longer format timestamps as ISO-8601 #33236
    • Configuration property is not bound in a native image when property has get, set, and is methods #33232
    • Configuration property binding does not deal with bridge methods #33212
    • Contribute missing resource hints for GraphQL schema files and GraphiQL HTML page #33208
    • Hints for ClientHttpRequestFactory should only be generated for matching methods #33203
    • Native profile should configure execution in pluginManagement #33184
    • Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #33169
    • JBoss logging does not route directly to SLF4J when using Logback #33155
    • Test with UseMainMethod.Always do not work with Kotlin main functions #33114
    • Maven process-aot does not specify source and target release when compiling generated sources #33112
    • Some Actuator beans are ineligible for post-processing #33110
    • AOT-generated source fails to compile when Actuator is enabled on a WebFlux project #33106
    • @ContextHierarchy should never be used with main method #33078
    • Maven process-aot fails when compiler plugin has been configured with --enable-preview #33012
    • Wavefront application tags differ from those used in a Spring Boot 2.x application #32844
    • Maven goal spring-boot:build-image runs package phase twice #26455

    :notebook_with_decorative_cover: Documentation

    • Document observation for R2DBC #33335
    • Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #33333
    • Actuator document is misleading about k8s startup probe #33327
    • Update documented for @Timed to reflect narrower support #33282
    • Update reference documentation to replace mentions of tags providers and contributors with their Observation-based equivalents #33281
    • Link to Micrometer's @Timed documentation #33266
    • Clarify use of the spring.cache.type property with Hazelcast #33258
    • Example git.commit.time in the Actuator API documentation is thousands of years in the future #33256
    • Update Spring Security filter dispatcher types docs to reflect change in default value #33252
    • Documentation for nested configuration properties in a native image uses @NestedConfigurationProperty too widely #33239
    • Document that the jar task should not be disabled when building a native image #33238
    • Document nesting configuration properties using records or Kotlin data classes and how and when to use @NestedConfigurationProperty #33235
    • Links to Features describes sections that have moved elsewhere #33214
    • Fix broken links in docs #33209
    • Document the need for compilation with -parameters when targeting a native image #33182

    ... (truncated)

    Commits
    • c9c359f Release v3.0.0
    • fb2cc73 Work around Thymeleaf's dependency on spring-security-bom:6.0.0-RC2
    • 355b428 Merge branch '2.7.x'
    • 7ea5881 Update LATEST_GA to false to prepare for 3.0.0's release
    • 1de09f4 Merge branch '2.6.x' into 2.7.x
    • e922650 Upgrade to Spring Framework 6.0.2
    • 4b8a28a Next development version (v2.7.7-SNAPSHOT)
    • 14ba9b1 Start building against Spring Framework 6.0.2 snapshots
    • d4a9100 Next development version (v2.6.15-SNAPSHOT)
    • 28cb225 Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Updates spring-boot-starter-test from 2.7.5 to 3.0.0

    Release notes

    Sourced from spring-boot-starter-test's releases.

    v3.0.0

    See the Release notes for 3.0 for upgrade instructions and details of new features.

    :star: New Features

    • Provide a configuration property for the observation patterns of Spring Integration components #33099

    :lady_beetle: Bug Fixes

    • io.micrometer.tracing.Tracer on the classpath breaks AOT processing for tests #33298
    • Tracer library HTTP instrumentation is auto-configured unnecessarily #33287
    • Auto-configuration ignores user-provided ObservationConventions #33285
    • ScheduledBeanLazyInitializationExcludeFilter is auto-configured even when annotation-based scheduled has not been enabled #33284
    • SpringBootContextLoader prints banner twice when using a @ContextHierarchy #33263
    • Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #33250
    • Wavefront MeterRegistryCustomizer is not applying application tags from application.properties #33244
    • Actuator responses no longer format timestamps as ISO-8601 #33236
    • Configuration property is not bound in a native image when property has get, set, and is methods #33232
    • Configuration property binding does not deal with bridge methods #33212
    • Contribute missing resource hints for GraphQL schema files and GraphiQL HTML page #33208
    • Hints for ClientHttpRequestFactory should only be generated for matching methods #33203
    • Native profile should configure execution in pluginManagement #33184
    • Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #33169
    • JBoss logging does not route directly to SLF4J when using Logback #33155
    • Test with UseMainMethod.Always do not work with Kotlin main functions #33114
    • Maven process-aot does not specify source and target release when compiling generated sources #33112
    • Some Actuator beans are ineligible for post-processing #33110
    • AOT-generated source fails to compile when Actuator is enabled on a WebFlux project #33106
    • @ContextHierarchy should never be used with main method #33078
    • Maven process-aot fails when compiler plugin has been configured with --enable-preview #33012
    • Wavefront application tags differ from those used in a Spring Boot 2.x application #32844
    • Maven goal spring-boot:build-image runs package phase twice #26455

    :notebook_with_decorative_cover: Documentation

    • Document observation for R2DBC #33335
    • Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #33333
    • Actuator document is misleading about k8s startup probe #33327
    • Update documented for @Timed to reflect narrower support #33282
    • Update reference documentation to replace mentions of tags providers and contributors with their Observation-based equivalents #33281
    • Link to Micrometer's @Timed documentation #33266
    • Clarify use of the spring.cache.type property with Hazelcast #33258
    • Example git.commit.time in the Actuator API documentation is thousands of years in the future #33256
    • Update Spring Security filter dispatcher types docs to reflect change in default value #33252
    • Documentation for nested configuration properties in a native image uses @NestedConfigurationProperty too widely #33239
    • Document that the jar task should not be disabled when building a native image #33238
    • Document nesting configuration properties using records or Kotlin data classes and how and when to use @NestedConfigurationProperty #33235
    • Links to Features describes sections that have moved elsewhere #33214
    • Fix broken links in docs #33209
    • Document the need for compilation with -parameters when targeting a native image #33182

    ... (truncated)

    Commits
    • c9c359f Release v3.0.0
    • fb2cc73 Work around Thymeleaf's dependency on spring-security-bom:6.0.0-RC2
    • 355b428 Merge branch '2.7.x'
    • 7ea5881 Update LATEST_GA to false to prepare for 3.0.0's release
    • 1de09f4 Merge branch '2.6.x' into 2.7.x
    • e922650 Upgrade to Spring Framework 6.0.2
    • 4b8a28a Next development version (v2.7.7-SNAPSHOT)
    • 14ba9b1 Start building against Spring Framework 6.0.2 snapshots
    • d4a9100 Next development version (v2.6.15-SNAPSHOT)
    • 28cb225 Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Updates spring-boot-starter-web from 2.7.5 to 3.0.0

    Release notes

    Sourced from spring-boot-starter-web's releases.

    v3.0.0

    See the Release notes for 3.0 for upgrade instructions and details of new features.

    :star: New Features

    • Provide a configuration property for the observation patterns of Spring Integration components #33099

    :lady_beetle: Bug Fixes

    • io.micrometer.tracing.Tracer on the classpath breaks AOT processing for tests #33298
    • Tracer library HTTP instrumentation is auto-configured unnecessarily #33287
    • Auto-configuration ignores user-provided ObservationConventions #33285
    • ScheduledBeanLazyInitializationExcludeFilter is auto-configured even when annotation-based scheduled has not been enabled #33284
    • SpringBootContextLoader prints banner twice when using a @ContextHierarchy #33263
    • Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #33250
    • Wavefront MeterRegistryCustomizer is not applying application tags from application.properties #33244
    • Actuator responses no longer format timestamps as ISO-8601 #33236
    • Configuration property is not bound in a native image when property has get, set, and is methods #33232
    • Configuration property binding does not deal with bridge methods #33212
    • Contribute missing resource hints for GraphQL schema files and GraphiQL HTML page #33208
    • Hints for ClientHttpRequestFactory should only be generated for matching methods #33203
    • Native profile should configure execution in pluginManagement #33184
    • Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #33169
    • JBoss logging does not route directly to SLF4J when using Logback #33155
    • Test with UseMainMethod.Always do not work with Kotlin main functions #33114
    • Maven process-aot does not specify source and target release when compiling generated sources #33112
    • Some Actuator beans are ineligible for post-processing #33110
    • AOT-generated source fails to compile when Actuator is enabled on a WebFlux project #33106
    • @ContextHierarchy should never be used with main method #33078
    • Maven process-aot fails when compiler plugin has been configured with --enable-preview #33012
    • Wavefront application tags differ from those used in a Spring Boot 2.x application #32844
    • Maven goal spring-boot:build-image runs package phase twice #26455

    :notebook_with_decorative_cover: Documentation

    • Document observation for R2DBC #33335
    • Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #33333
    • Actuator document is misleading about k8s startup probe #33327
    • Update documented for @Timed to reflect narrower support #33282
    • Update reference documentation to replace mentions of tags providers and contributors with their Observation-based equivalents #33281
    • Link to Micrometer's @Timed documentation #33266
    • Clarify use of the spring.cache.type property with Hazelcast #33258
    • Example git.commit.time in the Actuator API documentation is thousands of years in the future #33256
    • Update Spring Security filter dispatcher types docs to reflect change in default value #33252
    • Documentation for nested configuration properties in a native image uses @NestedConfigurationProperty too widely #33239
    • Document that the jar task should not be disabled when building a native image #33238
    • Document nesting configuration properties using records or Kotlin data classes and how and when to use @NestedConfigurationProperty #33235
    • Links to Features describes sections that have moved elsewhere #33214
    • Fix broken links in docs #33209
    • Document the need for compilation with -parameters when targeting a native image #33182

    ... (truncated)

    Commits
    • c9c359f Release v3.0.0
    • fb2cc73 Work around Thymeleaf's dependency on spring-security-bom:6.0.0-RC2
    • 355b428 Merge branch '2.7.x'
    • 7ea5881 Update LATEST_GA to false to prepare for 3.0.0's release
    • 1de09f4 Merge branch '2.6.x' into 2.7.x
    • e922650 Upgrade to Spring Framework 6.0.2
    • 4b8a28a Next development version (v2.7.7-SNAPSHOT)
    • 14ba9b1 Start building against Spring Framework 6.0.2 snapshots
    • d4a9100 Next development version (v2.6.15-SNAPSHOT)
    • 28cb225 Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Updates spring-boot-maven-plugin from 2.7.5 to 3.0.0

    Release notes

    Sourced from spring-boot-maven-plugin's releases.

    v3.0.0

    See the Release notes for 3.0 for upgrade instructions and details of new features.

    :star: New Features

    • Provide a configuration property for the observation patterns of Spring Integration components #33099

    :lady_beetle: Bug Fixes

    • io.micrometer.tracing.Tracer on the classpath breaks AOT processing for tests #33298
    • Tracer library HTTP instrumentation is auto-configured unnecessarily #33287
    • Auto-configuration ignores user-provided ObservationConventions #33285
    • ScheduledBeanLazyInitializationExcludeFilter is auto-configured even when annotation-based scheduled has not been enabled #33284
    • SpringBootContextLoader prints banner twice when using a @ContextHierarchy #33263
    • Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #33250
    • Wavefront MeterRegistryCustomizer is not applying application tags from application.properties #33244
    • Actuator responses no longer format timestamps as ISO-8601 #33236
    • Configuration property is not bound in a native image when property has get, set, and is methods #33232
    • Configuration property binding does not deal with bridge methods #33212
    • Contribute missing resource hints for GraphQL schema files and GraphiQL HTML page #33208
    • Hints for ClientHttpRequestFactory should only be generated for matching methods #33203
    • Native profile should configure execution in pluginManagement #33184
    • Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #33169
    • JBoss logging does not route directly to SLF4J when using Logback #33155
    • Test with UseMainMethod.Always do not work with Kotlin main functions #33114
    • Maven process-aot does not specify source and target release when compiling generated sources #33112
    • Some Actuator beans are ineligible for post-processing #33110
    • AOT-generated source fails to compile when Actuator is enabled on a WebFlux project #33106
    • @ContextHierarchy should never be used with main method #33078
    • Maven process-aot fails when compiler plugin has been configured with --enable-preview #33012
    • Wavefront application tags differ from those used in a Spring Boot 2.x application #32844
    • Maven goal spring-boot:build-image runs package phase twice #26455

    :notebook_with_decorative_cover: Documentation

    • Document observation for R2DBC #33335
    • Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #33333
    • Actuator document is misleading about k8s startup probe #33327
    • Update documented for @Timed to reflect narrower support #33282
    • Update reference documentation to replace mentions of tags providers and contributors with their Observation-based equivalents #33281
    • Link to Micrometer's @Timed documentation #33266
    • Clarify use of the spring.cache.type property with Hazelcast #33258
    • Example git.commit.time in the Actuator API documentation is thousands of years in the future #33256
    • Update Spring Security filter dispatcher types docs to reflect change in default value #33252
    • Documentation for nested configuration properties in a native image uses @NestedConfigurationProperty too widely #33239
    • Document that the jar task should not be disabled when building a native image #33238
    • Document nesting configuration properties using records or Kotlin data classes and how and when to use @NestedConfigurationProperty #33235
    • Links to Features describes sections that have moved elsewhere #33214
    • Fix broken links in docs #33209
    • Document the need for compilation with -parameters when targeting a native image #33182

    ... (truncated)

    Commits
    • c9c359f Release v3.0.0
    • fb2cc73 Work around Thymeleaf's dependency on spring-security-bom:6.0.0-RC2
    • 355b428 Merge branch '2.7.x'
    • 7ea5881 Update LATEST_GA to false to prepare for 3.0.0's release
    • 1de09f4 Merge branch '2.6.x' into 2.7.x
    • e922650 Upgrade to Spring Framework 6.0.2
    • 4b8a28a Next development version (v2.7.7-SNAPSHOT)
    • 14ba9b1 Start building against Spring Framework 6.0.2 snapshots
    • d4a9100 Next development version (v2.6.15-SNAPSHOT)
    • 28cb225 Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Updates spring-boot-starter-tomcat from 2.7.5 to 3.0.0

    Release notes

    Sourced from spring-boot-starter-tomcat's releases.

    v3.0.0

    See the Release notes for 3.0 for upgrade instructions and details of new features.

    :star: New Features

    • Provide a configuration property for the observation patterns of Spring Integration components #33099

    :lady_beetle: Bug Fixes

    • io.micrometer.tracing.Tracer on the classpath breaks AOT processing for tests #33298
    • Tracer library HTTP instrumentation is auto-configured unnecessarily #33287
    • Auto-configuration ignores user-provided ObservationConventions #33285
    • ScheduledBeanLazyInitializationExcludeFilter is auto-configured even when annotation-based scheduled has not been enabled #33284
    • SpringBootContextLoader prints banner twice when using a @ContextHierarchy #33263
    • Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #33250
    • Wavefront MeterRegistryCustomizer is not applying application tags from application.properties #33244
    • Actuator responses no longer format timestamps as ISO-8601 #33236
    • Configuration property is not bound in a native image when property has get, set, and is methods #33232
    • Configuration property binding does not deal with bridge methods #33212
    • Contribute missing resource hints for GraphQL schema files and GraphiQL HTML page #33208
    • Hints for ClientHttpRequestFactory should only be generated for matching methods #33203
    • Native profile should configure execution in pluginManagement #33184
    • Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #33169
    • JBoss logging does not route directly to SLF4J when using Logback #33155
    • Test with UseMainMethod.Always do not work with Kotlin main functions #33114
    • Maven process-aot does not specify source and target release when compiling generated sources #33112
    • Some Actuator beans are ineligible for post-processing #33110
    • AOT-generated source fails to compile when Actuator is enabled on a WebFlux project #33106
    • @ContextHierarchy should never be used with main method #33078
    • Maven process-aot fails when compiler plugin has been configured with --enable-preview #33012
    • Wavefront application tags differ from those used in a Spring Boot 2.x application #32844
    • Maven goal spring-boot:build-image runs package phase twice #26455

    :notebook_with_decorative_cover: Documentation

    • Document observation for R2DBC #33335
    • Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #33333
    • Actuator document is misleading about k8s startup probe #33327
    • Update documented for @Timed to reflect narrower support #33282
    • Update reference documentation to replace mentions of tags providers and contributors with their Observation-based equivalents #33281
    • Link to Micrometer's @Timed documentation #33266
    • Clarify use of the spring.cache.type property with Hazelcast #33258
    • Example git.commit.time in the Actuator API documentation is thousands of years in the future #33256
    • Update Spring Security filter dispatcher types docs to reflect change in default value #33252
    • Documentation for nested configuration properties in a native image uses @NestedConfigurationProperty too widely #33239
    • Document that the jar task should not be disabled when building a native image #33238
    • Document nesting configuration properties using records or Kotlin data classes and how and when to use @NestedConfigurationProperty #33235
    • Links to Features describes sections that have moved elsewhere #33214
    • Fix broken links in docs #33209
    • Document the need for compilation with -parameters when targeting a native image #33182

    ... (truncated)

    Commits
    • c9c359f Release v3.0.0
    • fb2cc73 Work around Thymeleaf's dependency on spring-security-bom:6.0.0-RC2
    • 355b428 Merge branch '2.7.x'
    • 7ea5881 Update LATEST_GA to false to prepare for 3.0.0's release
    • 1de09f4 Merge branch '2.6.x' into 2.7.x
    • e922650 Upgrade to Spring Framework 6.0.2
    • 4b8a28a Next development version (v2.7.7-SNAPSHOT)
    • 14ba9b1 Start building against Spring Framework 6.0.2 snapshots
    • d4a9100 Next development version (v2.6.15-SNAPSHOT)
    • 28cb225 Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependency-update java 
    opened by dependabot[bot] 0
  • Reduce overhead of TogglzTestExecutionListener

    Reduce overhead of TogglzTestExecutionListener

    Hi,

    I've noticed that our test-suite spends around ~3-4% of CPU cycles just inside TogglzTestExecutionListener.

    image

    The unfortunate bit here is that we don't even customize the feature flags in the majority of cases and deal with the default state. It seems that we could skip setting the feature flag state in those cases - which resorts to the JDBC implementation for us - and avoid the corresponding overhead. The additional benefit in our case is that the CachingStateRepository will have more cache hits and avoid the reading overhead from the database as well.

    Let me know what you think.

    Cheers, Christoph

    opened by dreis2211 0
  • Bump spring.version from 5.3.23 to 6.0.2

    Bump spring.version from 5.3.23 to 6.0.2

    Bumps spring.version from 5.3.23 to 6.0.2. Updates spring-context from 5.3.23 to 6.0.2

    Release notes

    Sourced from spring-context's releases.

    v6.0.2

    :star: New Features

    • Rely on standard parameter name resolution in Bean Validation 3.0 #29566

    :lady_beetle: Bug Fixes

    • ResponseStatusException does not use the reason to set the "detail" field #29567
    • LocalVariableTableParameterNameDiscoverer logs many warnings with Hibernate validation #29563

    :notebook_with_decorative_cover: Documentation

    • org.springframework.web.multipart.commons not found #29562

    v6.0.1

    :star: New Features

    • Make SourceHttpMessageConverter optional #29535
    • Deprecate LocalVariableTableParameterNameDiscoverer completely (avoiding its exposure in native images) #29531
    • Make GeneratorStrategy.generate unreachable on native #29521
    • Update LogAdapter to allow build-time code removal #29506

    :lady_beetle: Bug Fixes

    • Unhandled exceptions should mark Servlet observation outcome as error #29512

    :notebook_with_decorative_cover: Documentation

    • Broken link in documentation section 6.10 #29554
    • Fix Javadoc link text in BindingResult #29551
    • Fix some typos in Kotlin WebClient example code #29538
    • Fix link to Bean Utils Light Library in BeanUtils Javadoc #29534
    • Fix link to WebFlux section in reference manual #29525
    • Document RuntimeHints testing strategies #29523
    • Reorganize and modularize the Testing chapter in the reference manual #29522
    • Document switch to SQLExceptionSubclassTranslator in the upgrade guide #29518
    • Update documentation to mention Java 17+ baseline #29514
    • Link to Spring WebFlux section is broken #29513
    • Update javadoc of Jackson-based decoders to reflect 2.14 baseline #29508
    • Code example has callout from a different code example #29505
    • Code listing callouts are displayed incorrectly in core-beans.adoc #29457
    • Fix a syntax error in an XML listing in core-validation.adoc #29456

    :hammer: Dependency Upgrades

    • Upgrade to Jackson 2.14.1 #29539
    • Upgrade to Kotlin 1.7.21 #29543

    :heart: Contributors

    ... (truncated)

    Commits
    • 3a04435 Release v6.0.2
    • b7e99fb Additional documentation notes on Java/Kotlin parameter name retention
    • a27f2e9 ResponseStatusException sets detail from reason again
    • 284cf3e Rely on standard parameter name resolution in Bean Validation 3.0
    • cbf25b7 Reduce deprecation warn logging to one entry per introspected class
    • 8391897 Document removal of CommonsMultipartResolver in MVC setup documentation
    • a3c8909 Log connection info in StompBrokerRelayMessageHandler
    • e77c426 Next development version (v6.0.2-SNAPSHOT)
    • fe5bd67 Retain default LocalVariableTableParameterNameDiscoverer with warn log entries
    • ed5ab77 Fix javadoc link in AOP extensibility documentation
    • Additional commits viewable in compare view

    Updates spring-core from 5.3.23 to 6.0.2

    Release notes

    Sourced from spring-core's releases.

    v6.0.2

    :star: New Features

    • Rely on standard parameter name resolution in Bean Validation 3.0 #29566

    :lady_beetle: Bug Fixes

    • ResponseStatusException does not use the reason to set the "detail" field #29567
    • LocalVariableTableParameterNameDiscoverer logs many warnings with Hibernate validation #29563

    :notebook_with_decorative_cover: Documentation

    • org.springframework.web.multipart.commons not found #29562

    v6.0.1

    :star: New Features

    • Make SourceHttpMessageConverter optional #29535
    • Deprecate LocalVariableTableParameterNameDiscoverer completely (avoiding its exposure in native images) #29531
    • Make GeneratorStrategy.generate unreachable on native #29521
    • Update LogAdapter to allow build-time code removal #29506

    :lady_beetle: Bug Fixes

    • Unhandled exceptions should mark Servlet observation outcome as error #29512

    :notebook_with_decorative_cover: Documentation

    • Broken link in documentation section 6.10 #29554
    • Fix Javadoc link text in BindingResult #29551
    • Fix some typos in Kotlin WebClient example code #29538
    • Fix link to Bean Utils Light Library in BeanUtils Javadoc #29534
    • Fix link to WebFlux section in reference manual #29525
    • Document RuntimeHints testing strategies #29523
    • Reorganize and modularize the Testing chapter in the reference manual #29522
    • Document switch to SQLExceptionSubclassTranslator in the upgrade guide #29518
    • Update documentation to mention Java 17+ baseline #29514
    • Link to Spring WebFlux section is broken #29513
    • Update javadoc of Jackson-based decoders to reflect 2.14 baseline #29508
    • Code example has callout from a different code example #29505
    • Code listing callouts are displayed incorrectly in core-beans.adoc #29457
    • Fix a syntax error in an XML listing in core-validation.adoc #29456

    :hammer: Dependency Upgrades

    • Upgrade to Jackson 2.14.1 #29539
    • Upgrade to Kotlin 1.7.21 #29543

    :heart: Contributors

    ... (truncated)

    Commits
    • 3a04435 Release v6.0.2
    • b7e99fb Additional documentation notes on Java/Kotlin parameter name retention
    • a27f2e9 ResponseStatusException sets detail from reason again
    • 284cf3e Rely on standard parameter name resolution in Bean Validation 3.0
    • cbf25b7 Reduce deprecation warn logging to one entry per introspected class
    • 8391897 Document removal of CommonsMultipartResolver in MVC setup documentation
    • a3c8909 Log connection info in StompBrokerRelayMessageHandler
    • e77c426 Next development version (v6.0.2-SNAPSHOT)
    • fe5bd67 Retain default LocalVariableTableParameterNameDiscoverer with warn log entries
    • ed5ab77 Fix javadoc link in AOP extensibility documentation
    • Additional commits viewable in compare view

    Updates spring-test from 5.3.23 to 6.0.2

    Release notes

    Sourced from spring-test's releases.

    v6.0.2

    :star: New Features

    • Rely on standard parameter name resolution in Bean Validation 3.0 #29566

    :lady_beetle: Bug Fixes

    • ResponseStatusException does not use the reason to set the "detail" field #29567
    • LocalVariableTableParameterNameDiscoverer logs many warnings with Hibernate validation #29563

    :notebook_with_decorative_cover: Documentation

    • org.springframework.web.multipart.commons not found #29562

    v6.0.1

    :star: New Features

    • Make SourceHttpMessageConverter optional #29535
    • Deprecate LocalVariableTableParameterNameDiscoverer completely (avoiding its exposure in native images) #29531
    • Make GeneratorStrategy.generate unreachable on native #29521
    • Update LogAdapter to allow build-time code removal #29506

    :lady_beetle: Bug Fixes

    • Unhandled exceptions should mark Servlet observation outcome as error #29512

    :notebook_with_decorative_cover: Documentation

    • Broken link in documentation section 6.10 #29554
    • Fix Javadoc link text in BindingResult #29551
    • Fix some typos in Kotlin WebClient example code #29538
    • Fix link to Bean Utils Light Library in BeanUtils Javadoc #29534
    • Fix link to WebFlux section in reference manual #29525
    • Document RuntimeHints testing strategies #29523
    • Reorganize and modularize the Testing chapter in the reference manual #29522
    • Document switch to SQLExceptionSubclassTranslator in the upgrade guide #29518
    • Update documentation to mention Java 17+ baseline #29514
    • Link to Spring WebFlux section is broken #29513
    • Update javadoc of Jackson-based decoders to reflect 2.14 baseline #29508
    • Code example has callout from a different code example #29505
    • Code listing callouts are displayed incorrectly in core-beans.adoc #29457
    • Fix a syntax error in an XML listing in core-validation.adoc #29456

    :hammer: Dependency Upgrades

    • Upgrade to Jackson 2.14.1 #29539
    • Upgrade to Kotlin 1.7.21 #29543

    :heart: Contributors

    ... (truncated)

    Commits
    • 3a04435 Release v6.0.2
    • b7e99fb Additional documentation notes on Java/Kotlin parameter name retention
    • a27f2e9 ResponseStatusException sets detail from reason again
    • 284cf3e Rely on standard parameter name resolution in Bean Validation 3.0
    • cbf25b7 Reduce deprecation warn logging to one entry per introspected class
    • 8391897 Document removal of CommonsMultipartResolver in MVC setup documentation
    • a3c8909 Log connection info in StompBrokerRelayMessageHandler
    • e77c426 Next development version (v6.0.2-SNAPSHOT)
    • fe5bd67 Retain default LocalVariableTableParameterNameDiscoverer with warn log entries
    • ed5ab77 Fix javadoc link in AOP extensibility documentation
    • Additional commits viewable in compare view

    Updates spring-web from 5.3.23 to 6.0.2

    Release notes

    Sourced from spring-web's releases.

    v6.0.2

    :star: New Features

    • Rely on standard parameter name resolution in Bean Validation 3.0 #29566

    :lady_beetle: Bug Fixes

    • ResponseStatusException does not use the reason to set the "detail" field #29567
    • LocalVariableTableParameterNameDiscoverer logs many warnings with Hibernate validation #29563

    :notebook_with_decorative_cover: Documentation

    • org.springframework.web.multipart.commons not found #29562

    v6.0.1

    :star: New Features

    • Make SourceHttpMessageConverter optional #29535
    • Deprecate LocalVariableTableParameterNameDiscoverer completely (avoiding its exposure in native images) #29531
    • Make GeneratorStrategy.generate unreachable on native #29521
    • Update LogAdapter to allow build-time code removal #29506

    :lady_beetle: Bug Fixes

    • Unhandled exceptions should mark Servlet observation outcome as error #29512

    :notebook_with_decorative_cover: Documentation

    • Broken link in documentation section 6.10 #29554
    • Fix Javadoc link text in BindingResult #29551
    • Fix some typos in Kotlin WebClient example code #29538
    • Fix link to Bean Utils Light Library in BeanUtils Javadoc #29534
    • Fix link to WebFlux section in reference manual #29525
    • Document RuntimeHints testing strategies #29523
    • Reorganize and modularize the Testing chapter in the reference manual #29522
    • Document switch to SQLExceptionSubclassTranslator in the upgrade guide #29518
    • Update documentation to mention Java 17+ baseline #29514
    • Link to Spring WebFlux section is broken #29513
    • Update javadoc of Jackson-based decoders to reflect 2.14 baseline #29508
    • Code example has callout from a different code example #29505
    • Code listing callouts are displayed incorrectly in core-beans.adoc #29457
    • Fix a syntax error in an XML listing in core-validation.adoc #29456

    :hammer: Dependency Upgrades

    • Upgrade to Jackson 2.14.1 #29539
    • Upgrade to Kotlin 1.7.21 #29543

    :heart: Contributors

    ... (truncated)

    Commits
    • 3a04435 Release v6.0.2
    • b7e99fb Additional documentation notes on Java/Kotlin parameter name retention
    • a27f2e9 ResponseStatusException sets detail from reason again
    • 284cf3e Rely on standard parameter name resolution in Bean Validation 3.0
    • cbf25b7 Reduce deprecation warn logging to one entry per introspected class
    • 8391897 Document removal of CommonsMultipartResolver in MVC setup documentation
    • a3c8909 Log connection info in StompBrokerRelayMessageHandler
    • e77c426 Next development version (v6.0.2-SNAPSHOT)
    • fe5bd67 Retain default LocalVariableTableParameterNameDiscoverer with warn log entries
    • ed5ab77 Fix javadoc link in AOP extensibility documentation
    • Additional commits viewable in compare view

    Updates spring-webmvc from 5.3.23 to 6.0.2

    Release notes

    Sourced from spring-webmvc's releases.

    v6.0.2

    :star: New Features

    • Rely on standard parameter name resolution in Bean Validation 3.0 #29566

    :lady_beetle: Bug Fixes

    • ResponseStatusException does not use the reason to set the "detail" field #29567
    • LocalVariableTableParameterNameDiscoverer logs many warnings with Hibernate validation #29563

    :notebook_with_decorative_cover: Documentation

    • org.springframework.web.multipart.commons not found #29562

    v6.0.1

    :star: New Features

    • Make SourceHttpMessageConverter optional #29535
    • Deprecate LocalVariableTableParameterNameDiscoverer completely (avoiding its exposure in native images) #29531
    • Make GeneratorStrategy.generate unreachable on native #29521
    • Update LogAdapter to allow build-time code removal #29506

    :lady_beetle: Bug Fixes

    • Unhandled exceptions should mark Servlet observation outcome as error #29512

    :notebook_with_decorative_cover: Documentation

    • Broken link in documentation section 6.10 #29554
    • Fix Javadoc link text in BindingResult #29551
    • Fix some typos in Kotlin WebClient example code #29538
    • Fix link to Bean Utils Light Library in BeanUtils Javadoc #29534
    • Fix link to WebFlux section in reference manual #29525
    • Document RuntimeHints testing strategies #29523
    • Reorganize and modularize the Testing chapter in the reference manual #29522
    • Document switch to SQLExceptionSubclassTranslator in the upgrade guide #29518
    • Update documentation to mention Java 17+ baseline #29514
    • Link to Spring WebFlux section is broken #29513
    • Update javadoc of Jackson-based decoders to reflect 2.14 baseline #29508
    • Code example has callout from a different code example #29505
    • Code listing callouts are displayed incorrectly in core-beans.adoc #29457
    • Fix a syntax error in an XML listing in core-validation.adoc #29456

    :hammer: Dependency Upgrades

    • Upgrade to Jackson 2.14.1 #29539
    • Upgrade to Kotlin 1.7.21 #29543

    :heart: Contributors

    ... (truncated)

    Commits
    • 3a04435 Release v6.0.2
    • b7e99fb Additional documentation notes on Java/Kotlin parameter name retention
    • a27f2e9 ResponseStatusException sets detail from reason again
    • 284cf3e Rely on standard parameter name resolution in Bean Validation 3.0
    • cbf25b7 Reduce deprecation warn logging to one entry per introspected class
    • 8391897 Document removal of CommonsMultipartResolver in MVC setup documentation
    • a3c8909 Log connection info in StompBrokerRelayMessageHandler
    • e77c426 Next development version (v6.0.2-SNAPSHOT)
    • fe5bd67 Retain default LocalVariableTableParameterNameDiscoverer with warn log entries
    • ed5ab77 Fix javadoc link in AOP extensibility documentation
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependency-update java 
    opened by dependabot[bot] 0
  • Does togglz-spring-boot-starter support spring boot 3.0?

    Does togglz-spring-boot-starter support spring boot 3.0?

    spring boot 3.0 using spring framework 6, but togglz-spring-boot-starter using spring framework 5.2.3 https://github.com/togglz/togglz/blob/master/spring-boot/pom.xml

    opened by yangxp 3
  • Reduce allocations from DefaultMapSerializer

    Reduce allocations from DefaultMapSerializer

    Hi,

    I've been profiling some test suites lately and noticed that Togglz does a small, but noticeable, amount of allocations when reloading feature states before & after tests:

    E.g. see the following excerpts. Overall, all of the different frames account for ~1% of allocations. image image

    The unfortunate bit here is that the work in DefaultMapSerializer could be largely skipped if the Map is empty (which it is in most default cases). So this PR checks for emptiness on (de-)serialization to save some work & allocations.

    Let me know what you think. Cheers, Christoph

    opened by dreis2211 0
Releases(3.3.2)
  • 3.3.2(Nov 21, 2022)

  • 3.3.1(Nov 15, 2022)

    What's Changed

    • Integrate togglz samples in the same repository by @bennetelli in https://github.com/togglz/togglz/pull/758
    • Use text columns on postgres by @napstr in https://github.com/togglz/togglz/pull/781
    • Replace nashorn engine by @bennetelli in https://github.com/togglz/togglz/pull/600
    • Drop apache deltaspike by @bennetelli in https://github.com/togglz/togglz/pull/842
    • Drop Guice integration by @bennetelli in https://github.com/togglz/togglz/pull/802
    • Drop hazelcast integration by @bennetelli in https://github.com/togglz/togglz/pull/845
    • Drop zookeeper integration by @bennetelli in https://github.com/togglz/togglz/pull/846
    • Update Spring Boot by @bennetelli in https://github.com/togglz/togglz/pull/850
    • Fix JavaScript API encoding issue by @BeLi4L in https://github.com/togglz/togglz/pull/856
    • Fix JavaScript encoding issue by @BeLi4L in https://github.com/togglz/togglz/pull/858
    • Use non vulnerable jackson databind by @bennetelli in https://github.com/togglz/togglz/pull/873

    New Contributors

    • @napstr made their first contribution in https://github.com/togglz/togglz/pull/781
    • @BeLi4L made their first contribution in https://github.com/togglz/togglz/pull/856

    Full Changelog: https://github.com/togglz/togglz/compare/3.2.0...3.3.1

    Source code(tar.gz)
    Source code(zip)
  • 3.2.0(May 13, 2022)

    • Feature enums user now no longer require to add an isActive() method :-) it's now implemented as default method in the Feature interface.
    Source code(tar.gz)
    Source code(zip)
  • 3.1.2(May 2, 2022)

    Spring Boot actuator now allows to add multiple values as parameter by using space as separator: https://github.com/togglz/togglz/pull/726 Logging has been migrated to SLF4J. Beforehands togglz was prefering JUL: https://github.com/togglz/togglz/issues/682

    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(Sep 23, 2021)

  • 2.9.9(Aug 11, 2021)

    • Spock: Add Togglz Spock extension
    • AWS S3: Three more configurations for s3 repository. Right now it's possible to set: sseCustomerAlgorithm, sseCustomerKey and sseCustomerKeyMD5
    • Update Dynamic Proxy Generation
    • Use ByteBuddy for Dynamic Proxy Generation
    • Update lettuce-core to 6.1.1.RELEASE
    • Update jedis to 3.6.0 and change Jedis Pool
    • Update groovy to 2.0
    • Update Spring to 5.3.7
    Source code(tar.gz)
    Source code(zip)
  • 2.9.8(May 4, 2021)

  • 2.9.7(Apr 23, 2021)

  • 2.9.6(Feb 24, 2021)

    • add setter for validateCSRFToken (#520)
    • add support for JUnit 4 again
    • add scripting engine strategy again (#451)
    • update from wildfly 8 to wildfly 22.0.1
    • add sdkman.rc file to avoid switching to jdk 8 manually
    Source code(tar.gz)
    Source code(zip)
  • 2.9.5(Feb 3, 2021)

    • Moved from Travisto GitHub Actions
    • Check codebase for OWASP security issues frequently
    • Add property togglz.validateCSRFToken to disable CSRF validation
    • Feature: create FeatureGroups without the need to create annotations on application side. With 2.9.5 it's possible to create FeatureGroups by adding @FeatureGroup("my group name").
    Source code(tar.gz)
    Source code(zip)
Owner
Togglz
Feature Flags for the Java platform
Togglz
Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding

Everyone can develop projects independently, quickly and efficiently! What is spring-boot-plus? A easy-to-use, high-speed, high-efficient, feature-ric

geekidea 2.3k Dec 31, 2022
A springboot starter for retrofit, and supports many functional feature enhancements, greatly simplifying development

retrofit-spring-boot-starter English Document Retrofit是适用于Android和Java且类型安全的HTTP客户端,其最大的特性的是支持通过接口的方式发起HTTP请求。而spring-boot是使用最广泛的Java开发框架,但是Retrofit官方

Ke Technologies 1.4k Jan 5, 2023
Business Application Platform - no-code/low-code platform to build business applications

Orienteer What is Orienteer Orienteer is Business Application Platform: Easy creation of business applications Extendable to fit your needs Dynamic da

Orienteer 189 Dec 6, 2022
ActiveJ is an alternative Java platform built from the ground up. ActiveJ redefines web, high load, and cloud programming in Java, featuring ultimate performance and scalability!

Introduction ActiveJ is a full-featured modern Java platform, created from the ground up as an alternative to Spring/Micronauts/Netty/Jetty. It is des

ActiveJ LLC 579 Jan 7, 2023
Blazed Café is a library for BlazeOS that enables and improves Java functionality for the IgniteBook platform.

By: Seanpm2001, Et; Al. Top README.md Read this article in a different language Sorted by: A-Z Sorting options unavailable ( af Afrikaans Afrikaans |

Sean P. Myrick V19.1.7.2 2 Sep 5, 2022
Cross-platform framework for building truly native mobile apps with Java or Kotlin

Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Codename One 1.4k Jan 5, 2023
A Java agent that disables platform features you don't use, before an attacker uses them against you.

aegis4j Avoid the NEXT Log4Shell vulnerability! The Java platform has accrued a number of features over the years. Some of these features are no longe

Daniel Gredler 14 Jan 11, 2022
A Fully Code Integrated Dynamic DataBase Management System for the Java Platform

dynamic-database A fully code integrated minimal database management system for Java, Scala, Kotlin or Groovy projects. It is written in Java and can

omega ui 2 Jun 8, 2022
A modular, high performance, headless e-commerce(ecommerce) platform built with Java,Springboot, Vue.

What is Shopfly? Shopfly is modular, high performance, headless e-commerce(ecommerce) platform built with Java,Springboot, Vue. Architecture Shopfly i

Shopfly 31 Jul 17, 2022
A modular, high performance, headless e-commerce(ecommerce) platform built with Java,Springboot, Vue.

What is Shopfly? Shopfly is modular, high performance, headless e-commerce(ecommerce) platform built with Java,Springboot, Vue. Architecture Shopfly i

Shopfly 29 Apr 25, 2022
Discourse-java is a platform where users can freely discuss on topics they want to, and like-minded people can join in and contribute

Discourse is the 100% open source discussion platform built for the next decade of the Internet. Use it as a: mailing list discussion forum long-form

Infosys Ltd 16 Oct 19, 2022
trace all binder-funcion calls on android-platform

BinderHackDemo trace all binder-funcion calls on android-platform 该demo展示了如何使用libbinderhack.so模块,trace-app自身进程binder调用情况 您可以通过该次提交,查看如何使用libbinderhack

null 4 Dec 25, 2021
open-source electronics platform

Arduino is an open-source physical computing platform based on a simple I/O board and a development environment that implements the Processing/Wiring

Arduino 13.3k Jan 4, 2023
Cloud Native and Low Code Platform to create FullStack web Admin applications in minutes

Cloud Native and Low Code Platform to create FullStack web Admin applications in minutes ✨ Features & Technologies REST API generator Low Code CRUD &

Gemini Framework 171 Dec 26, 2022
A compact and highly efficient workflow and Business Process Management (BPM) platform for developers, system admins and business users.

Flowable (V6) Maven Central: Docker Images: License: Homepage: https://www.flowable.org/ flowable / flowəb(ə)l / a compact and highly efficient workfl

Flowable 6k Jan 7, 2023
A cross-platform Mod for the popular Minecraft project, where the border always has a radius equal to the player's current experience level.

Level = Border A cross-platform Mod for the popular Minecraft project, where the border always has a radius equal to the player's current experience l

Jakob K 14 Nov 22, 2022
Desktop size version of my Open 6DOF Platform.

Mini-6DOF Desktop size version of my Open 6DOF Platform. This is an expansion on my initial learning that I did to get up to speed for the big version

Christopher Knauf 4 Aug 26, 2022
Cosmic Ink is a transcript application which was built with the help of Symbl AI and At Sign platform for back-end to store our data and authenticate

Cosmic-Ink Cosmic Ink is a transcript application which was built with the help of Symbl AI and At Sign platform for back-end to store our data and au

Venu Sai Madisetti 4 Dec 1, 2022
A supercharged gradle template for developing Minecraft plugins with multi platform support.

Minecraft Multi-Platform Template You can use this template to develop your own high quality Minecraft plugins for multiple platforms using Gradle wit

sVoxelDev 3 Nov 23, 2022