小编Gog*_*ogi的帖子

如何对值进行perl哈希排序并相应地对键进行排序(可能在两个数组中)?

在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)

我该怎么做呢?

sorting perl hash perl-hash

23
推荐指数
2
解决办法
9万
查看次数

Java POJO是否应该进行字段验证并在setter方法中抛出异常?

假设我们有几十个代表我的域的java POJO,也就是我系统中的数据,它作为我系统不同层之间的对象流动.该系统可以是Web应用程序,也可以是简单的桌面应用程序.域包含的内容并不重要.

在设计我的系统时,我很困惑我应该放置任何验证逻辑.我的POJO(域对象)代表我的数据,这些对象中的一些字段必须符合某些条件,但如果我在我的setter方法中放入了很多验证逻辑,那么告诉调用客户端的唯一方法是抛出异常.如果我不希望系统崩溃,则异常必须是必须捕获和处理的已检查异常.这样做的结果是每次我使用setter-methods(甚至构造函数)创建一个新对象时,我都会重新抛出该异常或使用try-catch块.在许多setter方法上强制使用try-catch是不对的.

所以问题是我应该把我的验证逻辑放在哪里,这样我就不会在我的代码中混淆大量的样板try-catch块和重新抛出.欢迎最优秀的JAVA字节用户加入讨论.

我已经研究过Google,但没有找到关于这个主题的具体讨论,所以我非常热情地等待,以便更深入地了解事情应该如何完成.

java oop validation pojo

17
推荐指数
1
解决办法
5107
查看次数

如何在Jenkins/Hudson中以编程方式设置环境变量?

我在Jenkins作业的预构建步骤中有两个脚本,第一个是perl脚本,第二个是使用groovy插件的系统groovy脚本.我需要第二个groovy脚本中第一个perl脚本的信息.我认为最好的方法是设置一些环境变量,并想知道如何实现.

或者任何其他更好的方式.

谢谢你的时间.

hudson environment-variables hudson-plugins jenkins jenkins-plugins

15
推荐指数
1
解决办法
6万
查看次数

如何让詹金斯/哈德森的工作监视其他一些工作,并决定是否建立?

问题

鉴于所有工作都有字符串LEVEL_X在其工作名称中,其中X是一个数字> 1.我希望每个工作用X = n监视每个工作X = n-1,并开始构建,如果每个工作都成功完成.我希望这项工作以X = n1分钟的间隔监视其他工作.

首先,我有兴趣知道最好的方法是什么,其次我想要解决方案,如果一个可以通过一个小脚本实现,也许是一个可以system groovy script使用GROOVY PLUGIN 运行的groovy脚本.

groovy hudson hudson-plugins jenkins jenkins-plugins

10
推荐指数
1
解决办法
3万
查看次数

Apache反向代理背后的密钥斗篷

我在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

reverse-proxy keycloak

8
推荐指数
2
解决办法
7630
查看次数

我如何'使用'perl CPAN模块的特定版本?

我有很多perl代码在测试和生产中做了不同的事情,我想将我的代码锁定到CPAN模块的特定版本,以防将来某些版本的某些更改可能会破坏我的代码.

所以我想使用我使用的所有模块的特定版本.用我的意思是

use XML::Smart 
Run Code Online (Sandbox Code Playgroud)

perl cpan perl-module

7
推荐指数
1
解决办法
3282
查看次数

如何在Jenkins/Hudson中定义作业并行运行?

问题:鉴于詹金斯/哈德森的一些工作,每个工作都分配了一个我们可以调用的数字.此数字的范围从1到n,多个作业可以具有相同的级别.现在,我想定义那些(否则是独立的)作业运行,使得级别1必须在级别2之前构建,并且我希望Jenkins/Hudson并行启动多个作业,如果作业的从属执行者定义是免费的.

这个级别的数字并不重要,它只是用于解释问题.

重要提示:我希望能够自动生成这些作业,因为我知道哪些作业取决于哪些作业,哪些作业可以并行运行,所以如果解决方案是config.xml中的某些配置,那么听到这个就很好了,这样我就可以自动生成那些配置文件的脚本.

X级别的作业可以并且应该尽可能多地并行运行.

谢谢你的时间.

编辑:还有一个我想知道的,如果有一些优雅的解决方案:假设作业X由Build Flow Plugin触发,它就失败了.如果我希望Build Flow Plugin再次触发相同的作业(在我修复它之后),并且正常继续通过插件定义的作业,有什么办法吗?

parallel-processing continuous-integration hudson jenkins jenkins-plugins

6
推荐指数
1
解决办法
7981
查看次数

如何有条件地运行maven-release:在jenkins中回滚?

我正在使用jenkins/hudson来制作maven版本,有时当构建失败时,我没有其他方法可以回滚手册然后再次启动jenkins构建.我想知道是否有任何良好且可配置的运行mvn版本的方式:在构建结束时回滚依赖于mvn release的结果:prepare?我的意思是,如果发布过程失败,我想运行maven release:rollback,否则不行.

谢谢你的时间.

hudson maven maven-release-plugin jenkins

6
推荐指数
1
解决办法
2028
查看次数