问题标签 [togglz]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2576 浏览

spring - Togglz 与 Spring @Configuration bean

我正在尝试使用 @Configuration bean 而不是 XML 来实现 Togglz & Spring。我不确定如何配置 Configuration bean 的返回类型。例如:

systemClock方法返回 aFeatureProxyFactoryBean但此 bean 的客户端需要 a SystemClock。当然,编译器对此感到非常震惊。

我想它只在使用 XML 配置时才有效。使用配置 bean 时我应该如何处理它?

0 投票
2 回答
2471 浏览

togglz - Default activation strategy for a Togglz feature

Since version 2.0.0 Togglz offers Activation Strategies to go with a feature. For instance, you can connect a list of server IP addresses that shall have the feature enabled. However, how are these strategies actually attached to a feature? All I saw was that I can change the strategy in the Togglz console or even edit the data by hand in the database.

What I was looking for is some default mechanism rather similar to @EnabledByDefault. I could implement a custom state repository, it could even look for annotations, but I suspected that this solution existed out of the box.

0 投票
2 回答
1139 浏览

java - Togglz jetty9 嵌入

如何在嵌入 jetty 9 的情况下运行 togglz。我尝试了以下代码

我有跟随错误

oejucomponent.AbstractLifeCycle - FAILED oejsServletContextHandler@6195bb34{/,null,STARTING}: java.lang.IllegalStateException: 找不到 TogglzConfig 或 TogglzBootstrap 的任何实现。请确保您已将所需的集成模块添加到您的项目或在您的 web.xml 中注册实现,如文档的“配置”一章中所述。java.lang.IllegalStateException:找不到 TogglzConfig 或 TogglzBootstrap 的任何实现。请确保您已将所需的集成模块添加到您的项目或在您的 web.xml 中注册实现,如文档的“配置”一章中所述。

0 投票
1 回答
322 浏览

togglz - 为什么必须将 TogglzRule 声明为 public?

如果我在单元测试中声明 TogglzRule 它必须是公共的,否则会抛出异常:java.lang.Exception: The @Rule 'togglzRule' must be public.

我曾经将成员声明为私有,为什么这不可能?

0 投票
2 回答
2730 浏览

java - 功能标记与授权

我刚刚偶然发现了特性标记的概念,以及一个流行的开源 Java 库,称为Togglz,它引用了 Martin Fowler 的博客文章:

基本思想是有一个配置文件,它为你有待处理的各种功能定义了一堆切换。然后,正在运行的应用程序使用这些切换来决定是否显示新功能。

但对我来说,这听起来真的很像授权用户是否有权查看此内容?

例如,用户是否应该能够看到 FizzBu​​zz 菜单?

在 Togglz 中,我可能会像这样实现此检查:

在 Apache Shiro 中,我可以做同样的事情:

再次,功能标记感觉就像它与角色或权限检查完全相同的问题。

我确定我错了,但我不知道怎么做。所以我问:功能标记与授权和角色/权限检查有何不同,哪些类型的具体用例体现了这种差异?换句话说:什么时候应该使用授权/角色/权限检查,什么时候应该使用功能标志?

0 投票
2 回答
778 浏览

grails - 如何在 Grails 应用程序中使用具有自己的过滤器和非控制器 servlet 的库?

我认为我的问题的简短通用形式可能是最好的:如何让 Grails/Spring “看到”依赖库组件,包括不是 Grails 控制器的过滤器和 servlet?

具体如下: 我想在我的 Grails (v2.4.4) 应用程序中使用 Togglz 功能切换库 (v2.0.1)。Togglz 带有自己的 Web 控制台 servlet 和 TogglzFilter 类,该类在启动时进行一些初始化并设置每个请求的状态。在 vanilla spring web 应用程序中,这两者通常都由注释连接,因此 url 路径[context-root]/togglz/index调用控制台。(服务器是 Pivotal tc/tomcat 7,我相信它满足 Servlet 3.0 对注释驱动配置工作的要求。)我的问题是,如何将这样的东西连接到我的 Grails 应用程序中?

我对 Grails 和 Togglz 都是新手,所以我可能遗漏了一些愚蠢的东西。我尝试过的所有事情都会在控制台 URL 上产生 404。到目前为止,我有:

  • 在 BuildConfig.groovy 中添加了 togglz 核心、servlet、控制台和 spring 依赖项。
  • 添加了 org.togglz 和我将 Togglz 配置(接下来的两项)放入 Config.groovy 中 grails.spring.bean.packages 的值的包。
  • 创建了 FeatureTogglz 和 FeatureTogglzConfig 类,都用 @Component 注释。

看起来它应该这样做,但是当它没有时,我尝试了更多的东西:

  • 搜索 Grails、Togglz、Library、Servlet、Filter 等的各种组合产生了两个未遂事件:
    • 此线程中,其他人无法让 Grails 加载 Togglz。他们在启动时看到了我没有看到的未发现错误,他们关心的是 togglz 的实际应用,而不是控制台 servlet。此外,在这种情况下,答案是metadata-complete从 web.xml 中删除该属性。我的项目根本没有 web.xml。
    • 这个线程中,有人想在基于非控制器的响应之后放置一个过滤器。在我的情况下,激活过滤器本身是问题,而不是它保护什么样的请求/响应。
  • 尝试使用控制台 servlet 类作为目标的 UrlMappings.groovy 条目:

    我没有看到任何这样的例子;我只是想猜测什么可能会完成 web.xml 中的其他内容。

  • 考虑到问题可能是 Grails 没有设置 Togglz 过滤器,除了为每个请求设置上下文之外,它在启动时进行了一些初始化,我创建了 conf/TogglzFilters.groovy,再次猜测内容:

    甚至在它指向零之前,这感觉完全错误,因为我想要让 Grails 使用提供的过滤器,而不是自己编写代码。但是我能找到的所有过滤器示例都使用了内联代码。

正如我所说,这对我来说很多都是新的,所以如果我错过了我应该研究的东西,我会很感激一个指针和一个直接的答案。

谢谢。

0 投票
1 回答
3308 浏览

java - Togglz 正在引发 IllegalStateException 错误

我不断收到 IllegalStateException:在 maven 上的 Web 应用程序中安装 togglz 时找不到 FeatureManager。我已经完全按照说明进行了。在我的 Maven 应用程序中,我的 pom.xml 文件中有以下设置:

以及 web.xml 文件中的以下内容:

这个示例 maven 应用程序运行良好,但是当我尝试转到 togglz 虚拟目录时,它会抛出 IllegalStateException:找不到 FeatureManager 错误,它没有提供比这更多的细节。关于该错误的真正含义有什么建议吗?我只是想获得一个使用 togglz 的示例项目。我不能使用 spring 或 cdi,只能使用 servlet。(是的,我配置了 servlet 3.0)

提前致谢,

编辑:这是确切的堆栈跟踪:

0 投票
1 回答
616 浏览

java - 通过 Togglz 管理控制台编辑功能时出现错误 404

我在带有 Spring 4.0.5.RELEASE 和 Jetty 9.2.1.v20140609 的 Web 应用程序中使用 Togglz 2.0.1.Final。

当我尝试使用 Togglz 管理控制台编辑功能时,POST 请求会收到 404 状态代码。

请求标头

请求表格数据

响应标头

在服务器端抛出以下异常:

请注意,异常会抱怨与被调用地址( http://my-host/my-app/togglz/edit )不同的地址 ( http://my-host/my-app/ ),就像重定向或前锋就位。

分析 Togglz 源代码,特别是 EditPageHandler 类,当 POST 成功时,确实有一个 sendRedirect() 调用,但它应该以返回 302 状态代码并重定向到 /togglz/index URI 结束。

我无法找到可能发生 404 的位置,并且我无法调试它,因为该问题仅发生在生产环境中(在开发环境中它很好,我已经检查了 Jetty 版本和他们是相同的)。

有人对这件事有任何了解吗?

提前致谢。

0 投票
1 回答
504 浏览

togglz - 在 togglz 中启用新功能时如何禁用已启用的功能?

假设我有 features A, B, C, 并且A默认启用。BC禁用。

当我启用时,B我想禁用A:一次只能启用一项功能。

0 投票
1 回答
4763 浏览

java - 特征翻转 REST 端点的注释

我有几个(REST)端点的弹簧控制器。我想调出这个控制器的多个实例,其中每个实例都会有几个有选择地启用/禁用的端点。

根据我目前的阅读,togglz提供了功能翻转,但它不启用/禁用 REST 端点(togglz 提供 API,以便调用者代码可以检查是否启用了功能);ff4j 似乎是另一种选择,但从文档中看它是否可以启用/禁用 REST 端点并不是很明显

我阅读了线程Feature Toggling Java Annotations但它是一个更长的实现。是否有任何包可用于在配置文件中指定需要启用/禁用的端点并在 REST 端点上使用注释来禁用/启用它们(这样我的方法中的逻辑保持不变并最小化测试)