小编Gre*_*pff的帖子

在多模块maven项目中的模块之间共享src/test类

我有一个多模块Maven项目.为了这个例子,考虑两个模块:

  • data
  • consumer

模块consumer将模块data作为依赖项.

Module data声明了一堆核心类.有一些测试src/test使用它们.这些测试需要一些冗长的对象创建,因此我有一个类,其中包含一些实用方法来创建这些对象.此实用程序类(SampleDataHelper)位于src/test层次结构中.

我还在consumer模块中进行了一些测试,需要创建一些这些冗长的对象.我想在我的树中的测试中使用我的SampleDataHelper类(定义data src/test)consumer src/test.不幸的是,即使data是依赖关系consumer,consumer也看不到存在的类data src/test.

为了解决这个问题,我想我可能会创建另一个模块(data-test),然后移动SampleDataHelper到它下面src/main.然后我将包含data-test作为测试范围的依赖关系data.不幸的是,这引入了循环依赖:data使用data-test,但data-test也需要data.

我想出了唯一的解决办法是把SampleDataHelperdata src/main一个下test包装,并希望没有真正的应用程序代码以往任何时候都调用它.

如何SampleDataHelper在模块之间共享我的课程而不将它放在一起src/main

java maven-3 maven

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

使用Spring Data JPA查找实体时如何启用LockModeType.PESSIMISTIC_WRITE?

如何实现此代码的等价物:

tx.begin();
Widget w = em.find(Widget.class, 1L, LockModeType.PESSIMISTIC_WRITE);
w.decrementBy(4);
em.flush();
tx.commit();
Run Code Online (Sandbox Code Playgroud)

...但是使用Spring和Spring-Data-JPA注释?

我现有代码的基础是:

@Service
@Transactional(readOnly = true)
public class WidgetServiceImpl implements WidgetService
{
  /** The spring-data widget repository which extends CrudRepository<Widget, Long>. */
  @Autowired
  private WidgetRepository repo;

  @Transactional(readOnly = false)
  public void updateWidgetStock(Long id, int count)
  {
    Widget w = this.repo.findOne(id);
    w.decrementBy(4);
    this.repo.save(w);
  }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何指定updateWidgetStock方法中的所有内容都应该使用悲观的锁定集来完成.

有一个Spring Data JPA注释org.springframework.data.jpa.repository.Lock允许你设置一个LockModeType,但我不知道将它放在updateWidgetStock方法上是否有效.这听起来更像是一个注释WidgetRepository,因为Javadoc说:

org.springframework.data.jpa.repository
@Target(value = METHOD)
@Retention(value = RUNTIME)
@Documented
public @interface Lock …

java spring jpa spring-data spring-data-jpa

49
推荐指数
3
解决办法
5万
查看次数

是否有GSON Joda Time序列化程序的标准实现?

我正在使用GSON将一些对象图序列化为JSON.这些对象图使用约达时间的实体(DateTime,LocalTime等).

谷歌"gson joda"的热门歌曲是这个页面:

它为类型适配器提供源org.joda.time.DateTime.此链接也是GSON用户指南中引用的内容.

我希望找到一个包含joda-time序列化程序的预卷库,我可以将其作为Maven依赖项引用 - 但我找不到一个.

有吗?或者我被迫在我自己的项目中复制该片段?

java jodatime gson

36
推荐指数
4
解决办法
2万
查看次数

从SourceTree启动后,FileMerge立即退出

我经常使用Atlassian SourceTree(在Mac OS X上)启动FileMerge来解决git合并冲突.突然之间,它已停止工作:当我右键单击并选择时Resolve Conflicts > Launch External Merge Tool,FileMerge启动,创建其中间文件,然后立即退出.SourceTree解释为合并过程完成.

问题是什么?如何调试/修复它?

我注意到之前的问题' SourceTree filemerge立即退出并创建了4个文件.怎么解决?'没有解决这个特定情况(例如,它说FileMerge在标题中退出,但在正文中它表示FileMerge将/ dev/null显示为其中一个面板.此外,我的合并冲突不是由于删除了文件. )

xcode filemerge atlassian-sourcetree

33
推荐指数
5
解决办法
8157
查看次数

如何使用Gson序列化和反序列化Java 8的java.time类型?

我正在使用GSON将一些对象图序列化为JSON.这些对象图使用新的Java 8 java.time的实体(ZonedDateTime,OffsetDateTime,LocalTime等).

我发现了约达时间序列化器库在这里 -是那里的JDK等效图书馆java.time类?

(这个人没有运气使用GSON java.time- 他们的问题仍然没有答案).

java datetime-format gson java-8

21
推荐指数
1
解决办法
7169
查看次数

在 Java 17 上使用 Spark 3.3.0 运行单元测试失败,并出现 IllegalAccessError: class StorageUtils 无法访问 class sun.nio.ch.DirectBuffer

根据发行说明,特别是在 Java 17 上构建和运行 Spark ( SPARK-33772 ),Spark 现在支持在 Java 17 上运行。

但是,将 Java 17 (Temurin-17.0.3+7) 与 Maven (3.8.6) 和 maven-surefire-plugin (3.0.0-M7) 一起使用,在运行使用 Spark (3.3.0) 的单元测试时会失败和:

java.lang.IllegalAccessError: class org.apache.spark.storage.StorageUtils$ (in unnamed module @0x1e7ba8d9) cannot access class sun.nio.ch.DirectBuffer (in module java.base) because module java.base does not export sun.nio.ch to unnamed module @0x1e7ba8d9

堆栈是:

java.lang.IllegalAccessError: class org.apache.spark.storage.StorageUtils$ (in unnamed module @0x1e7ba8d9) cannot access class sun.nio.ch.DirectBuffer (in module java.base) because module java.base does not export sun.nio.ch to unnamed module …
Run Code Online (Sandbox Code Playgroud)

java apache-spark java-17

14
推荐指数
2
解决办法
1万
查看次数

消除或理解Jetty 9的"IllegalStateException:HttpChannelOverHttp关闭后数据过多"

设置

我使用jaxws-maven-pluginv2.1生成Web服务类.我还包括以下Jetty依赖项:

  • org.eclipse.jetty.jetty-server
  • org.eclipse.jetty.jetty-sevlet
  • org.eclipse.jetty.jetty-http-spi

(有问题的版本是9.2.10.v20150310,但除了知道它的Jetty 9之外,这个问题超越了Jetty的特定次要版本号).

使用以下代码,我可以成功发布服务:

System.setProperty("com.sun.net.httpserver.HttpServerProvider",
                   "org.eclipse.jetty.http.spi.JettyHttpServerProvider");

final String url = "http://localhost/SlipperySoap";
final SlipperySoap service = new SlipperySoapImpl();
final Endpoint endpoint = Endpoint.publish(url, service);
Run Code Online (Sandbox Code Playgroud)

问题

不时,但在相当规律的基础上,我收到Jetty的警告:

badMessage:java.lang.IllegalStateException:HttpChannelOverHttp @ 38f120bc关闭后数据太多{r = 1,a = IDLE,uri = - }

这些警告通常分批进行,如以下时间戳显示:

08:33:43.510 [pool-1-thread-4641] WARN : HttpParser: badMessage: ...
08:33:47.778 [pool-1-thread-4556] WARN : HttpParser: badMessage: ...
08:33:48.340 [pool-1-thread-4612] WARN : HttpParser: badMessage: ...
08:33:49.037 [pool-1-thread-4567] WARN : HttpParser: badMessage: ...
08:33:49.112 [pool-1-thread-4721] WARN : HttpParser: badMessage: ...
08:33:49.242 [pool-1-thread-4579] WARN …
Run Code Online (Sandbox Code Playgroud)

java jetty jax-ws embedded-jetty

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

如何关注GWT中的元素?

我的输入文本框有这个类:

    class InputTextBox extends FlowPanel { 
      public InputTextBox(String labelText) { 
        super(); 
        Label label = new Label(labelText); 
        TextBox input = new TextBox(); 
        this.add(label); 
        this.add(input); 
        this.addStyleName("myBox"); 
      }


    }
Run Code Online (Sandbox Code Playgroud)

如何将焦点设置在该文本框上,以便在调用onmoduleload时,光标出现在文本框中?添加成员函数似乎会抛出许多错误.

      public void setFocus(boolean b) {
        this.setFocus(b);

      } 
Run Code Online (Sandbox Code Playgroud)

java gwt

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

Spring Data(JPA)存储库是否是线程安全的?(又名SimpleJpaRepository线程安全)

我正在使用Spring Data(JPA)存储库来处理CRUD样板.

我这样定义我的存储库接口:

import org.springframework.data.repository.CrudRepository;

public interface FooRepository extends CrudRepository<Foo, Long>
{
  public Foo findByXAndYAndZ(X x, Y y, Z z);
}
Run Code Online (Sandbox Code Playgroud)

Spring然后自动神奇地生成我所述接口的实现.我们得到的是代理,但我相信最终我们会得到一个代理org.springframework.data.jpa.repository.support.SimpleJpaRepository.

如果底层目标类是线程JdkDynamicAopProxy安全的, A 是线程安全的.因此问题是:SimpleJpaRepository线程安全吗?

java jpa spring-data spring-data-jpa

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

在Mac OS X上使用IntelliJ IDEA中的键盘选择多行块

我最近从Eclipse切换到IntelliJ IDEA 13.我使用VI键绑定.

我习惯在Eclipse中做的一个非vi事情是使用Shift+ / Shift+ 来阻塞几行文本.Eclipse中此文本选择的行为与我曾经使用的几乎所有其他文本输入窗口小部件的行为相同.通常我在做出选择后做两件事之一 - 删除此块或将其注释掉(+ /).

我没有在IntelliJ IDEA 13中找到等效的仅键盘多行选择功能.

Shift+ 不会启动块选择 - 它似乎在屏幕上上下翻页.

如果我使用鼠标开始进行选择,则箭头键扩展选择范围.但是,我无法单独使用键盘开始选择.

我知道+ W 不断向外增长的智能元素选择 - 但如果你然后使用箭头键,选择将丢失,而不是扩展.

如何在Mac OS X上使用键盘启动然后将选择区域扩展到多行(可以使用VI键绑定)?

java macos intellij-idea intellij-13

7
推荐指数
2
解决办法
9610
查看次数