小编Kim*_*ble的帖子

不同的osgi捆绑包具有相同接口的实现 - 在哪里放置那个界面?

我目前正在测试一个新应用程序的osgi(Spring DM).应用程序需要能够侦听文件系统事件.今天我用一个简单的基于时间的轮询器解决了这个问题,但是当Java 7发布时,我可能想用基于NIO2的实现替换它.

到目前为止,我正在查看三个捆绑包,两个用于文件服务实现,另一个用于使用其中一个服务的业务逻辑.这两个实现应该实现相同的接口,所以我的问题是,在哪里放置该接口?将接口放在包含实现的包中会导致服务依赖于其中一个使用者.

什么是最好的,最像osgi的方式来构建它?到目前为止,我最好的办法是创建一个新的"api"包,定义实现的通用接口.

osgi

8
推荐指数
1
解决办法
2994
查看次数

Raphael-JS:有一个圆角的Rect

paper.rect(0, 0, settings.width, settings.height, settings.radius);
Run Code Online (Sandbox Code Playgroud)

创建一个带圆角的漂亮矩形.是否可以创建一个只有一个圆角的矩形?

javascript raphael

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

如何获取Mercurial存储库中每个文件的最新版本号列表?

我为我的Web应用程序创建了一个构建系统,它正在重写所有资源URL以包含文件的修订号(以改进客户端缓存).截至今天,我正在为每个文件运行此命令以获取修订号:

hg log --template '{rev}\n' path-to-file
Run Code Online (Sandbox Code Playgroud)

为每个文件执行hg 非常耗时.是否有快速方法列出具有最新版本号的存储库中的所有文件?

mercurial

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

Spring 3.2 DeferredResult - 如何设置错误响应的状态代码?

Spring Web 3.2附带了一个DeferredResult异步请求处理类.setErrorResult如果出现问题,它可以提供备用响应,但没有提供http错误代码的选项.

当然必须能够控制失败请求的http响应代码.如何使用新的Spring api做到这一点?

java spring asynchronous spring-mvc

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

为Docker中运行的Graylog2服务器自动创建UDP输入?

我们在开发环境中的Docker容器中运行Graylog2服务器.除了我们每次启动容器时都必须重新创建UDP输入这一事实之外,它就像一个魅力.

有没有人想出一种自动创建Graylog2输入的便捷方法?

graylog2 docker

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

Jersey/JAXB:解散空的json数组导致列表中包含一个项目,其中所有字段都设置为null

我有一个非常简单的休息Web服务返回一个问题列表.当返回的问题数大于零时,此代码按预期工作.但是如果服务器返回一个像[]那样的空json数组,JAXB会创建一个包含一个问题实例的列表,其中所有字段都设置为null!

我是Jersey和JAXB的新手,所以我不知道我是否没有正确配置它或者这是否是一个已知问题.有小费吗?

客户端配置:

 DefaultApacheHttpClientConfig config = new DefaultApacheHttpClientConfig();
 config.getProperties().put(DefaultApacheHttpClientConfig.PROPERTY_HANDLE_COOKIES, true);
 config.getClasses().add(JAXBContextResolver.class);
 //config.getClasses().add(JacksonJsonProvider.class); // <- Jackson causes other problems

 client = ApacheHttpClient.create(config);
Run Code Online (Sandbox Code Playgroud)

JAXBContextResolver:

@Provider
 public final class JAXBContextResolver implements ContextResolver<JAXBContext> {

  private final JAXBContext context;
  private final Set<Class> types;
  private final Class[] cTypes = { Question.class };

  public JAXBContextResolver() throws Exception {
   this.types = new HashSet(Arrays.asList(cTypes));
   this.context = new JSONJAXBContext(JSONConfiguration.natural().build(), cTypes);
  }

  @Override
  public JAXBContext getContext(Class<?> objectType) {
   return (types.contains(objectType)) ? context : null;
  }

 }
Run Code Online (Sandbox Code Playgroud)

客户代码:

public List<Question> getQuestionsByGroupId(int id) …
Run Code Online (Sandbox Code Playgroud)

json jaxb jersey

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

Spring 3.1 Java配置和内部bean

@Bean
public TimedRepository timedRepository(RealRepository repo) {
    return new TimedRepository(repo, timer); // Adds some metrics
}

@Bean
public RealRepository realRepository(DataSource ds) {
    return new RealRepository(ds); // The real jdbc implementation
}
Run Code Online (Sandbox Code Playgroud)

在旧的XML时代,我将真实存储库配置为匿名内部bean.是否可以使用新的Java配置方法执行类似的操作?在timedRepository工厂方法中实例化实际存储库不是一个选项,因为我希望Spring能够获取注释RealRepository.

其动机是避免任何其他bean获取真正的存储库实现.我还应该提到两个bean都实现了一个Repository接口,任何bean都可以根据存储库使用它们(他们不应该知道TimedRepository或者RealRepository.

java spring

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

Gradle - 捕获基于每个任务写入out/err的输出

我正在尝试捕获每个任务执行时写入的输出.当使用--max-workers 1运行Gradle时,下面的代码按预期工作,但是当多个任务并行运行时,下面的代码将获取从同时运行的其他任务写入的输出.

API文档在Task上声明了关于"getLogging"方法的以下内容.从它的内容来看,我判断它应该支持捕获单个任务的输出,而不管同时运行的任何其他任务.

getLogging()返回LoggingManager,它可用于控制此任务的日志记录级别和标准输出/错误捕获.https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html

graph.allTasks.forEach { Task task ->
    task.ext.capturedOutput = [ ]

    def listener = { task.capturedOutput << it } as StandardOutputListener

    task.logging.addStandardErrorListener(listener)
    task.logging.addStandardOutputListener(listener)

    task.doLast {
        task.logging.removeStandardOutputListener(listener)
        task.logging.removeStandardErrorListener(listener)
    }
}
Run Code Online (Sandbox Code Playgroud)

我是否搞砸了上面代码中的某些内容,还是应该将其报告为错误?

gradle

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

是否可以捕获/处理从Grails控制器抛出的异常?AOP?

class MyController {
   def myAction = {
      throw new MyException("Test")
   }
}
Run Code Online (Sandbox Code Playgroud)

是否可以捕获/处理上面代码抛出的异常?以下url-mapping有点工作,但它会导致异常被记录,这很烦人,因为在我的情况下我能够处理它.

"500"(controller: "error", action: 'myExceptionHandler', exception: MyException)
Run Code Online (Sandbox Code Playgroud)

为什么我不包装可能在try/catch中引发异常的代码?好吧,我有几个行为可能会抛出相同的异常.在try/catch中包装它们中的每一个都违反了DRY原则.

grails aop exception-handling

5
推荐指数
2
解决办法
6259
查看次数

遗漏Maven插件版本会有什么后果?

[WARNING] 'reporting.plugins.plugin.version' for org.apache.maven.plugins:maven-clover-plugin is missing. @ com...
Run Code Online (Sandbox Code Playgroud)

我正在复活一个旧的Maven项目.一些/大多数Maven插件依赖项已经配置了没有版本.除了警告,这有什么后果?Maven是否会尝试查找最新版本,并通过增加构建时间?

maven

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