小编Chr*_*jer的帖子

将PostgreSQL 9.2.1与Hibernate连接起来

我有一个空白的Spring MVC项目,我已经使用Maven安装了Hibernate和PostgreSQL驱动程序.

我正在简要介绍如何将PostgreSQL与Hibernate连接的完整教程.

这里有什么帮助?

java postgresql hibernate postgresql-9.2

74
推荐指数
3
解决办法
17万
查看次数

如何从IntelliJ IDEA中的覆盖率测量中排除源代码?

在一个项目中,我有一个Utility类,如下所示:

public final class Util {
    private Util() {}
    public static String method1(InputStream in) {...}
    public static String method2(BufferedReader in) {...}
    public static String method3(File file) {...}
}
Run Code Online (Sandbox Code Playgroud)

类是在它所包含的意义上的实用工具类唯一static方法.因此它被声明final并且它的构造函数是private.创建实例或派生子类根本没有任何意义.

我有一套测试项目的单元测试.我正在使用IntelliJ IDEA来运行测试,测量和可视化代码覆盖率.实用程序的构造函数class Util现在降低了覆盖率.我希望看到100%的100%逻辑覆盖率.像Utility类的私有构造函数这样的代码会降低覆盖率.

是否有可能(最好通过注释)将方法或构造函数标记为与代码覆盖无关,以便从覆盖率报告中排除此类代码,从而显示100%的覆盖率?

我知道,一般来说,覆盖率报告中的隐藏代码对您自己不利.我不介意报告是否会有一个"被忽略的项目"列表 - 实际上,这将是好的,检查是否有人忽略了不应忽略的东西.关键在于覆盖范围没有意义的代码,就像Utility类的私有构造函数一样.

我试图找到是否annotations.jar包含候选人.唯一一个看起来就像它可以做到的那样的注释是TestOnly,但它不能实现这个目的.我也偷看了,plugins/coverage/lib/*.jar找不到候选人,但也许我只是错过了?

java code-coverage intellij-idea test-coverage

9
推荐指数
1
解决办法
3790
查看次数

如何以非零退出状态退出 Forth?

我想以非零退出状态退出 Forth 程序(使用 Gforth 0.7.3)。

我试过了:

1 bye
Run Code Online (Sandbox Code Playgroud)

但 1 不会被解释为 的参数bye(而且我也没想到这会起作用;我在文档中找不到任何bye接受参数的提示)。

请注意,我不想触发异常,因为这也会打印错误消息(除非有办法从 Forth 程序本身中抑制异常的错误消息)。

那么,如何将 Forth 程序退出回托管环境/操作系统并提供非零退出状态?(基本上,我正在寻找return EXIT_FAILURE; // from main()(C) 或exit(EXIT_FAILURE);(C) 或System.exit(1);(Java) 的等效项。)

forth gforth

5
推荐指数
1
解决办法
180
查看次数

在Java 8中,如何从Stream <?获取Stream <T>?扩展Collection <T >>?

在Java 8中,使用包java.util.functionjava.util.stream新语言功能lambda方法引用,将a Stream<Collection<T>>转换为a 的最佳方法是Stream<T>什么?

这是我到目前为止找到的解决方案的例子,但我对此并不满意.为了创建一个Stream<T>来自a Stream<Collection<T>>,我使用collect().stream()一个中间HashSet(我Collection是一个Set).

import java.security.Provider;
import java.util.HashSet;
import static java.lang.System.out;
import static java.security.Security.getProviders;
import static java.security.Provider.Service;
import static java.util.Arrays.stream;

public class ListMessageDigests {
    public static void main(final String... args) {
        stream(getProviders())
            .map(Provider::getServices)
            .collect(HashSet<Service>::new, HashSet::addAll, HashSet::addAll)
            .stream()
            .filter(service -> "MessageDigest".equals(service.getType()))
            .map(Service::getAlgorithm)
            .sorted()
            .forEach(out::println);
    }   
}   
Run Code Online (Sandbox Code Playgroud)

是否有更优雅的方式将a转换Stream<Collection<T>>Stream<T>就像Stream<Set<Service>>在这个例子中成了一个Stream<Service>?我不开心与使用中间HashSet …

java collections java-8 java-stream

4
推荐指数
1
解决办法
795
查看次数

如何优雅地异步停止 X11 事件循环

我有一个小型 X11 应用程序,它有两个线程。XGrabKey()在一个线程中,我正在使用then 循环监听 X11 事件XNextEvent()。另一个线程正在做其他事情,与 X11 无关。

这是相关线程的代码:

#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/XF86keysym.h>
#include <stdbool.h>
#include <stdio.h>
#include <string.h>

volatile bool loop = true;

void keyGrab(void)
{
    Display *display = XOpenDisplay(0);
    Window root = DefaultRootWindow(display);
    int keycode = XKeysymToKeycode(display, XF86XK_AudioPlay);

    XGrabKey(display, keycode, AnyModifier, root, False, GrabModeAsync, GrabModeAsync);
    XSelectInput(display, root, KeyPressMask);

    while (loop) {
        XEvent event;
        XNextEvent(display, &event);
        switch (event.type) {
        case KeyPress: puts("Play key pressed"); break;
        }
    }

    XUngrabKey(display, keycode, AnyModifier, root);

    XCloseDisplay(display);
} …
Run Code Online (Sandbox Code Playgroud)

c x11 multithreading

4
推荐指数
1
解决办法
2704
查看次数

无法连接到在 VSTS 中运行的 Docker 容器

我有一个测试,启动 Docker 容器,执行验证(与 Docker 容器中的 Apache httpd 通信),然后停止 Docker 容器。

\n\n

当我在本地运行此测试时,此测试运行得很好。但是,当它在托管 VSTS(即托管构建代理)上运行时,它无法连接到 Docker 容器中的 Apache httpd。

\n\n

这是.vsts-ci.yml文件:

\n\n
queue: Hosted Linux Preview\n\nsteps:\n- script: |\n    ./test.sh\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是test.sh重现问题的 shell 脚本:

\n\n
#!/bin/bash\nset -e\nset -o pipefail\n\nfunction tearDown {\n    docker stop test-apache\n    docker rm test-apache\n}\ntrap tearDown EXIT\n\ndocker run -d --name test-apache -p 8083:80 httpd\nsleep 10\n\ncurl -D - http://localhost:8083/\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我在本地运行此测试时,得到的输出是:

\n\n
$ ./test.sh \n469d50447ebc01775d94e8bed65b8310f4d9c7689ad41b2da8111fd57f27cb38\nHTTP/1.1 200 OK\nDate: Tue, 04 Sep 2018 12:00:17 GMT\nServer: Apache/2.4.34 …
Run Code Online (Sandbox Code Playgroud)

docker azure-devops azure-pipelines

4
推荐指数
1
解决办法
1551
查看次数