我有一个maven checkstyle插件的xml配置文件.我已经安装了Intellij Idea插件并查看所有checkstyle违规.有没有办法自动修复大部分?例如自动格式设置?有没有办法从checktyle配置文件设置Intellij Idea到autoformat?
我正在使用Arquillian和使用TestNG的嵌入式glassfish 3.1.2.2编写集成测试.我希望能够并行运行这些测试,对于这种情况,我需要动态配置glassfish端口和数据库名称(我们已经有了这个设置,我想重用它的arquillian测试).我缺少的是一个'before container start'钩子,在那里我可以准备数据库,查找空闲端口并更新我的glassfish配置(domain.xml,也可以是glassfish-resources.xml).是否有一个"干净"的解决方案,或Arquillian开发人员没有预见到我的用例?
我目前解决它的hacky方法是覆盖arquillian的beforeSuite方法,但是这个方法被调用两次 - 在测试启动时然后在容器中(因此我可怜的静态标志).其次,这个解决方案不适用于基于JUnit的测试,因为在套件之前无法拦截arquillian:
public class FullContainerIT extends Arquillian {
private static boolean dbInitialized;
//@RunAsClient <-supported by @Test only
@Override
@BeforeSuite(groups = "arquillian", inheritGroups = true)
public void arquillianBeforeSuite() throws Exception {
if (dbInitialized == false) {
initializeDb();
dbInitialized = true;
}
super.arquillianBeforeSuite();
}
}
Run Code Online (Sandbox Code Playgroud)
我有一些想法:
+ @BeforeSuite @RunAsClient
似乎是我需要的,但@RunAsClient
仅支持@Test
;
+我org.jboss.arquillian.container.spi.event.container.BeforeStart
在Arquillian JavaDocs中看过事件 ,但我不知道如何听Arquillian事件;
+我已经看到有可能@Deployment
创建一个ShrinkWrap描述符,但这些不支持Glassfish资源.
我有一个基于 Jersey (1.x) 的 REST 服务。它使用 Jackson 2.4.4 来生成 JSON 响应。我需要在响应末尾添加一个换行符(cURL 用户抱怨响应中没有换行符)。我正在使用 Jersey 漂亮打印功能 ( SerializationFeature.INDENT_OUTPUT
)。
当前的: {\n "prop" : "value"\n}
通缉: {\n "prop" : "value"\n}\n
我尝试使用自定义序列化程序。我\n
只需要在根对象的末尾添加。序列化程序是按数据类型定义的,这意味着,如果此类类的实例嵌套在响应中,我将\n
处于 JSON 的中间。
我想到了子类化com.fasterxml.jackson.core.JsonGenerator.java
,覆盖close()
我要添加的地方writeRaw('\n')
,但这感觉很hacky。
另一个想法是添加 Servlet 过滤器,该过滤器将重写来自 Jersey 过滤器的响应,添加\n
并将 contentLenght 增加 1。似乎不仅 hacky,而且效率低下。
我也可以放弃 Jersey 来处理内容的序列化并 do ObjectMapper.writeValue() + "\n"
,但这对我的代码来说非常具有侵入性(需要更改很多地方)。
该问题的干净解决方案是什么?
我发现这些线程解决了同样的问题,但没有一个提供解决方案:
更新
最后,我选择了@arachnid 的解决方案NewlineAddingPrettyPrinter
(也将 Jackson 版本提高到 2.6.2)。遗憾的是,Jaskson 作为JAX-RS Json 提供程序并不能开箱即用。改变PrettyPrinter …
我正在尝试将声明一列具有某种struct
类型(例如struct<x: string, y: string>
)的一个数据集转换为一种map<string, string>
类型。我想用 SQL 来完成,可能不使用 UDF。
更新:
我的要求还在于,转换通常是在没有任何结构键先验知识的情况下完成的(在我的问题中,我以复杂的 JSON 格式获取数据,并且我不想在模式中保留这种复杂性)。
输入数据示例:
WITH input (struct_col) as (
select named_struct('x', 'valX', 'y', 'valY') union all
select named_struct('x', 'valX1', 'y', 'valY2')
)
select *
from input
Run Code Online (Sandbox Code Playgroud)
预期输出是一列类型map<string, string>
struct_col:map<字符串, 字符串> |
---|
{"x":"valX","y":"valY"} |
{"x":"valX1","y":"valY2"} |
更新:
到目前为止,我设法找到了这个非常复杂的解决方案,它仅适用于 Spark >= 3.1.0
(因为json_object_keys
功能)。如果能够将结构转换为地图就太好了
WITH input (struct_col) as (
select named_struct('x', 'valX', 'y', 'valY') union all
select named_struct('x', 'valX1', 'y', 'valY2')
)
select transform_values(
map_from_arrays(
json_object_keys(to_json(struct_col)),
json_object_keys(to_json(struct_col)) …
Run Code Online (Sandbox Code Playgroud) apache-spark ×1
checkstyle ×1
glassfish ×1
jackson ×1
jersey ×1
json ×1
maven ×1
plugins ×1
testng ×1