问题标签 [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.
spring - Togglz 与 Spring @Configuration bean
我正在尝试使用 @Configuration bean 而不是 XML 来实现 Togglz & Spring。我不确定如何配置 Configuration bean 的返回类型。例如:
该systemClock
方法返回 aFeatureProxyFactoryBean
但此 bean 的客户端需要 a SystemClock
。当然,编译器对此感到非常震惊。
我想它只在使用 XML 配置时才有效。使用配置 bean 时我应该如何处理它?
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.
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 中注册实现,如文档的“配置”一章中所述。
togglz - 为什么必须将 TogglzRule 声明为 public?
如果我在单元测试中声明 TogglzRule 它必须是公共的,否则会抛出异常:java.lang.Exception: The @Rule 'togglzRule' must be public.
我曾经将成员声明为私有,为什么这不可能?
java - 功能标记与授权
我刚刚偶然发现了特性标记的概念,以及一个流行的开源 Java 库,称为Togglz,它引用了 Martin Fowler 的博客文章:
基本思想是有一个配置文件,它为你有待处理的各种功能定义了一堆切换。然后,正在运行的应用程序使用这些切换来决定是否显示新功能。
但对我来说,这听起来真的很像授权:用户是否有权查看此内容?
例如,用户是否应该能够看到 FizzBuzz 菜单?
在 Togglz 中,我可能会像这样实现此检查:
在 Apache Shiro 中,我可以做同样的事情:
再次,功能标记感觉就像它与角色或权限检查完全相同的问题。
我确定我错了,但我不知道怎么做。所以我问:功能标记与授权和角色/权限检查有何不同,哪些类型的具体用例体现了这种差异?换句话说:什么时候应该使用授权/角色/权限检查,什么时候应该使用功能标志?
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 等的各种组合产生了两个未遂事件:
尝试使用控制台 servlet 类作为目标的 UrlMappings.groovy 条目:
我没有看到任何这样的例子;我只是想猜测什么可能会完成 web.xml 中的其他内容。
考虑到问题可能是 Grails 没有设置 Togglz 过滤器,除了为每个请求设置上下文之外,它在启动时进行了一些初始化,我创建了 conf/TogglzFilters.groovy,再次猜测内容:
甚至在它指向零之前,这感觉完全错误,因为我想要让 Grails 使用提供的过滤器,而不是自己编写代码。但是我能找到的所有过滤器示例都使用了内联代码。
正如我所说,这对我来说很多都是新的,所以如果我错过了我应该研究的东西,我会很感激一个指针和一个直接的答案。
谢谢。
java - Togglz 正在引发 IllegalStateException 错误
我不断收到 IllegalStateException:在 maven 上的 Web 应用程序中安装 togglz 时找不到 FeatureManager。我已经完全按照说明进行了。在我的 Maven 应用程序中,我的 pom.xml 文件中有以下设置:
以及 web.xml 文件中的以下内容:
这个示例 maven 应用程序运行良好,但是当我尝试转到 togglz 虚拟目录时,它会抛出 IllegalStateException:找不到 FeatureManager 错误,它没有提供比这更多的细节。关于该错误的真正含义有什么建议吗?我只是想获得一个使用 togglz 的示例项目。我不能使用 spring 或 cdi,只能使用 servlet。(是的,我配置了 servlet 3.0)
提前致谢,
编辑:这是确切的堆栈跟踪:
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 版本和他们是相同的)。
有人对这件事有任何了解吗?
提前致谢。
togglz - 在 togglz 中启用新功能时如何禁用已启用的功能?
假设我有 features A
, B
, C
, 并且A
默认启用。B
和C
禁用。
当我启用时,B
我想禁用A
:一次只能启用一项功能。
java - 特征翻转 REST 端点的注释
我有几个(REST)端点的弹簧控制器。我想调出这个控制器的多个实例,其中每个实例都会有几个有选择地启用/禁用的端点。
根据我目前的阅读,togglz提供了功能翻转,但它不启用/禁用 REST 端点(togglz 提供 API,以便调用者代码可以检查是否启用了功能);ff4j 似乎是另一种选择,但从文档中看它是否可以启用/禁用 REST 端点并不是很明显
我阅读了线程Feature Toggling Java Annotations但它是一个更长的实现。是否有任何包可用于在配置文件中指定需要启用/禁用的端点并在 REST 端点上使用注释来禁用/启用它们(这样我的方法中的逻辑保持不变并最小化测试)