在Perl中,我想按值以数字方式对哈希的键进行排序:
{
five => 5
ten => 10
one => 1
four => 4
}
Run Code Online (Sandbox Code Playgroud)
生成两个数组:
(1,4,5,10) and (one, four, five, ten)
Run Code Online (Sandbox Code Playgroud)
然后我想规范化值数组,使数字是连续的:
(1,2,3,4)
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
假设我们有几十个代表我的域的java POJO,也就是我系统中的数据,它作为我系统不同层之间的对象流动.该系统可以是Web应用程序,也可以是简单的桌面应用程序.域包含的内容并不重要.
在设计我的系统时,我很困惑我应该放置任何验证逻辑.我的POJO(域对象)代表我的数据,这些对象中的一些字段必须符合某些条件,但如果我在我的setter方法中放入了很多验证逻辑,那么告诉调用客户端的唯一方法是抛出异常.如果我不希望系统崩溃,则异常必须是必须捕获和处理的已检查异常.这样做的结果是每次我使用setter-methods(甚至构造函数)创建一个新对象时,我都会重新抛出该异常或使用try-catch块.在许多setter方法上强制使用try-catch是不对的.
所以问题是我应该把我的验证逻辑放在哪里,这样我就不会在我的代码中混淆大量的样板try-catch块和重新抛出.欢迎最优秀的JAVA字节用户加入讨论.
我已经研究过Google,但没有找到关于这个主题的具体讨论,所以我非常热情地等待,以便更深入地了解事情应该如何完成.
我在Jenkins作业的预构建步骤中有两个脚本,第一个是perl脚本,第二个是使用groovy插件的系统groovy脚本.我需要第二个groovy脚本中第一个perl脚本的信息.我认为最好的方法是设置一些环境变量,并想知道如何实现.
或者任何其他更好的方式.
谢谢你的时间.
hudson environment-variables hudson-plugins jenkins jenkins-plugins
问题
鉴于所有工作都有字符串LEVEL_X在其工作名称中,其中X是一个数字> 1.我希望每个工作用X = n监视每个工作X = n-1,并开始构建,如果每个工作都成功完成.我希望这项工作以X = n1分钟的间隔监视其他工作.
首先,我有兴趣知道最好的方法是什么,其次我想要解决方案,如果一个可以通过一个小脚本实现,也许是一个可以system groovy script使用GROOVY PLUGIN 运行的groovy脚本.
我在Google上冲浪时未找到任何具体答案或示例,因此请在这里再次尝试运气(通常会很幸运)。
问题
我在apache反向代理后面运行着一个单一的spring boot RESTful服务。此RESTful服务仅运行HTTP。假设它在本地ip 172.s端口8080上运行。
我还配置了一个Apache反向代理。假设它在本地IP 172.a和公共IP 55.a上运行。该代理同时响应两个端口80,但是所有HTTP通信都会自动重定向到443。
我有另一台运行独立Keycloak服务器的服务器。另外,该服务器还配置为可通过反向代理进行公共访问。假设它在本地ip 172.k上运行。此Keycloak服务器仅在HTTP上运行。通过反向代理使用SSL处理HTTP请求。
最后,我在本地ip 172.f上运行了另一个frontend-webapp。该前端Webapp在Nodejs下运行,并且还通过反向代理进行配置。它也仅运行HTTP,但是客户端(浏览器)通过反向代理使用SSL,就像Keycloak和RESTful服务一样。该前端正在使用RESTful服务,并且还配置为使用keycloak javascript适配器进行身份验证。
使用Spring Boot Keycloak适配器将RESTful服务配置为仅承载,而将前端应用程序配置为公共访问类型。
RESTful服务服务器,Keycloak服务器和前端服务器不能公共访问;它们只能通过反向代理访问。但是它们可以彼此通信(因为它们在同一个专用网络中)。
在前端keycloak.json文件中,将auth-server-url设置为代理url https://example.com/auth,前端就能成功获取有效令牌。现在,当我尝试使用RESTful服务时,我在RESTful适配器中收到错误消息,令牌发行者无效。当然,在http标头中,我正在发送Authorization: Bearer <token>。我收到此错误的原因是,在RESTful keycloak配置中,我已配置,auth-server-url以使用本地url http://172.k:9080/auth,因此此url与令牌中的url不同(即https://example.com/auth)。
题
我不能auth-server-url在RESTful服务中包括与前端相同的内容,因为这将要求我也在RESTful服务上设置HTTP(因为url为https),这会使事情变得非常复杂,包括需要设置证书和像这样的东西。另外,我认为在仅本地服务器上设置SSL效率不高且不切实际。
所以我的问题是,如何使适配器与Keycloak对话而不通过反向代理。我希望RESTful适配器与Keyclok服务器进行对话,以通过进行令牌验证auth-server-url: http://172.k:9080/auth。
之前有一个用于后端的不同URL,已被删除:https : //issues.jboss.org/browse/KEYCLOAK-2623
我有很多perl代码在测试和生产中做了不同的事情,我想将我的代码锁定到CPAN模块的特定版本,以防将来某些版本的某些更改可能会破坏我的代码.
所以我想使用我使用的所有模块的特定版本.用我的意思是
use XML::Smart
Run Code Online (Sandbox Code Playgroud) 问题:鉴于詹金斯/哈德森的一些工作,每个工作都分配了一个我们可以调用的数字.此数字的范围从1到n,多个作业可以具有相同的级别.现在,我想定义那些(否则是独立的)作业运行,使得级别1必须在级别2之前构建,并且我希望Jenkins/Hudson并行启动多个作业,如果作业的从属执行者定义是免费的.
这个级别的数字并不重要,它只是用于解释问题.
重要提示:我希望能够自动生成这些作业,因为我知道哪些作业取决于哪些作业,哪些作业可以并行运行,所以如果解决方案是config.xml中的某些配置,那么听到这个就很好了,这样我就可以自动生成那些配置文件的脚本.

谢谢你的时间.
编辑:还有一个我想知道的,如果有一些优雅的解决方案:假设作业X由Build Flow Plugin触发,它就失败了.如果我希望Build Flow Plugin再次触发相同的作业(在我修复它之后),并且正常继续通过插件定义的作业,有什么办法吗?
parallel-processing continuous-integration hudson jenkins jenkins-plugins
我正在使用jenkins/hudson来制作maven版本,有时当构建失败时,我没有其他方法可以回滚手册然后再次启动jenkins构建.我想知道是否有任何良好且可配置的运行mvn版本的方式:在构建结束时回滚依赖于mvn release的结果:prepare?我的意思是,如果发布过程失败,我想运行maven release:rollback,否则不行.
谢谢你的时间.