小编Eti*_*veu的帖子

git按子文件夹拆分存储库并保留所有旧分支

我有一个带有2个目录和多个分支的git仓库,我想拆分它们并创建所有分支

`-- Big-repo
    |-- dir1
    `-- dir2

Branches : branch1, branch2, branch3 ...
Run Code Online (Sandbox Code Playgroud)

我想要的是

我想将dir1和dir2拆分为两个独立的repos并在两个存储库中保留branch branch1,branch2 ....

dir1
Branches : branch1, branch2, branch3 ...

dir2
Branches : branch1, branch2, branch3 ...
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

我能够将它们分成2个回购

git subtree split -P dir1 -b dir1-only 
git subtree split -P dir2 -b dir2-only 
Run Code Online (Sandbox Code Playgroud)

但是,分离后不会创建任何分支.

要获得所有分支:

git checkout branch1 (in Big-repo)
git subtree split -p dir1 -b dir1-branch1

git checkout branch2 (in Big-repo)
git subtree split -p dir1 -b dir1-branch2

And push these branches to newly created …
Run Code Online (Sandbox Code Playgroud)

git git-submodules git-filter-branch git-subtree

26
推荐指数
2
解决办法
6732
查看次数

是否有类似于Apache Commons CircularFifoBuffer的番石榴?

我需要一个能够以FIFO顺序有效缓冲特定数量元素的数据结构.

正如在这个问题中所提到的,Apache Commons有一个CircularFifoBuffer,但遗憾的是它并没有被广泛化.有些 叉子存在,但我不确定它们的维护状态.

由于Guava是我的收藏需求的首选图书馆,我想知道:番石榴有一个很好的选择吗?如果没有,我应该在我的项目中实现它,基于Apache Commons的CircularFifoBuffer?

java collections apache-commons guava

19
推荐指数
2
解决办法
9555
查看次数

嵌入式Jetty和优雅的关机

我已经挖掘了Jetty文档试图找出如何正确配置嵌入式Jetty以优雅地关闭,但我发现它缺乏.

随后使用文档中的示例setStopAtShutdown(true).但是,没有JavaDoc或解释为什么要这样做.据我所知,默认值设置为false.

此外,该setGracefulShutdown()方法似乎改为setStopTimeout(),但这也没有记录.

所以这些是我的问题:

  1. 你为什么要在关机时设置或不设置停止?
  2. 什么时候会覆盖停止超时(默认为30秒)?
  3. 配置Jetty进行正常关闭时应该考虑哪些其他事项?

编辑:经过一些试验和错误; 发现如果你想让Jetty向任何侦听器发出关闭事件,例如Spring的ContextLoaderListener,则需要setStopAtShutdown(true).

java jetty

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

Scala Try/Future,在发生故障时包装异常

假设我有一个方法def doSomething: String可以DoSomethingException在出现问题时提出.

如果我写Try(doSomething),是否有一种简单的方法来映射异常而不恢复它?

基本上,我希望失败成为一个BusinessExceptionDoSomethingException.

我知道执行此操作的代码非常简单,但是没有任何内置运算符可以执行此操作吗?这似乎是一个非常常见的操作,但我在API中找不到任何东西.

scala try-catch functor

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

如何确保构建器模式完成?

编辑:我不担心被错误的顺序调用,因为这是通过使用多个接口强制执行,我只是担心终端方法被调用.


我正在使用构建器模式在我们的系统中创建权限.我选择了一个生成器模式,因为安全是我们的产品很重要(涉及未成年人这么COPPA等),我觉得这是迫切需要的权限是可读的,并认为可读性是极为重要的(即使用一个流畅的风格构建器模式而不是具有6个值的单个函数).

代码如下所示:

 permissionManager.grantUser( userId ).permissionTo( Right.READ ).item( docId ).asOf( new Date() );
Run Code Online (Sandbox Code Playgroud)

这些方法填充私有辅助bean,在终端方法(即asOf)提交数据库权限时; 如果那个方法没有被调用就没有任何反应.有时,开发人员会忘记调用终端方法,该方法不会导致编译器错误,并且很容易错过快速阅读/略读代码.

我该怎么做才能防止这个问题?我不想返回需要保存的Permission对象,因为这会引入更多噪音并使权限代码更难以阅读,跟踪,跟踪和理解.

我已经考虑过在终端命令标记的后台上放置一个标志.然后,检查finalize方法中的标志,如果创建对象而没有持久化,则写入日志.(我知道finalize不能保证运行,但这是我能想到的最好的.)

java design-patterns builder-pattern

13
推荐指数
4
解决办法
3338
查看次数

使用QueryDsl的多态where子句

我正在尝试使用QueryDsl编写带有多态where子句的查询.

由于在摘要中解释我想做什么有点困难,我克隆了spring-boot-sample-data-jpa项目并修改它以显示我正在尝试做的一个例子.

我有这些模型类,你会注意到SpaHotelSportHotel扩展Hotel实体.

我正在尝试编写一个返回包含a SpaHotel或a SportHotel主要运动属于给定类型的所有城市的查询.

我写了一个该查询JPQL版本,这有点难看(我不喜欢这sport is null部分来表示它是一个Spa酒店),但似乎回归了我想要的.

该查询的QueryDsl版本似乎不起作用:

public List<City> findAllCitiesWithSpaOrSportHotelQueryDsl(SportType sportType) {
  QCity city = QCity.city;
  QHotel hotel = QHotel.hotel;

  return queryFactory.from(city)
      .join(city.hotels, hotel)
      .where(
          hotel.instanceOf(SpaHotel.class).or(
              hotel.as(QSportHotel.class).mainSport.type.eq(sportType)
          )
      ).list(city);
}
Run Code Online (Sandbox Code Playgroud)

我的测试失败了:

test_findAllCitiesWithSpaOrSportHotelQueryDsl(sample.data.jpa.service.CityRepositoryIntegrationTests)  Time elapsed: 0.082 sec  <<< FAILURE!
java.lang.AssertionError:
Expected: iterable over [<Montreal,Canada>, <Aspen,United States>, <'Neuchatel','Switzerland'>] in any order
     but: No item matches: <Montreal,Canada> in …
Run Code Online (Sandbox Code Playgroud)

java querydsl

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

访问TypeSafe配置中的数组元素

给定嵌套的JSON作为配置,如:

{
    app: {
        id: "app1"
        instances: 2,
        servers: [
            { host: "farm1.myco.com", port: 9876 }
            { host: "farm2.myco.com", port: 9876 }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

使用typeSafe配置时,是否可以直接在路径中处理数组的元素?

目前我们需要做类似以下的事情,这有点冗长:

val servers = config.getObjectList("app.servers")
val server = servers.get(0).toConfig
val host = server.getString("host")
val port = server.getInt("port")
Run Code Online (Sandbox Code Playgroud)

这样的事情是理想的:

val host = config.getString("app.servers.0.host")

TypeSafe API是否支持这样的内容?

configuration json typesafe-config

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

scala:如何以功能方式处理验证

我正在开发一种方法,如果它传递一个条件列表,它应该持久化一个对象.

如果任何(或许多)条件失败(或出现任何其他类型的错误),则应返回包含错误的列表,如果一切顺利,则应返回已保存的实体.

我在想这样的事情(当然是伪代码):

request.body.asJson.map { json =>
  json.asOpt[Wine].map { wine =>
    wine.save.map { wine => 
      Ok(toJson(wine.update).toString)
    }.getOrElse  { errors => BadRequest(toJson(errors))}
  }.getOrElse    { BadRequest(toJson(Error("Invalid Wine entity")))}
}.getOrElse      { BadRequest(toJson(Error("Expecting JSON data")))}
Run Code Online (Sandbox Code Playgroud)

也就是说,我想将它视为一个Option [T],如果任何验证失败,而不是返回None它给我一个错误列表......

想法是返回一个JSON错误数组......

所以问题是,这是处理这种情况的正确方法吗?在Scala中实现它的方法是什么?

-

哎呀,刚刚发布了问题并发现了

http://www.scala-lang.org/api/current/scala/Either.html

无论如何,我想知道你对所选方法的看法,以及是否还有其他更好的选择来处理它.

error-handling scala

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

我应该如何为事件采购序列化域模型快照

我们正在使用LMAX Disruptor构建应用程序.使用事件源时,您经常希望保留域模型的定期快照(有些人称之为内存映像模式).

我需要一个比我们目前用于在拍摄快照时序列化我们的域模型更好的解决方案.我希望能够以可读的格式"漂亮地"打印这个快照以进行调试,我希望简化快照模式迁移.

目前,我们正在使用Googles的Protocol Buffers将我们的域模型序列化为文件.我们选择了这个解决方案,因为协议缓冲区比XML/JSON更紧凑,使用紧凑的二进制格式似乎是一个很好的想法来序列化一个大的Java域模型.

问题是,Protocol Buffers是针对相对较小的消息而设计的,我们的域模型非常大.所以域模型不适合一个大的分层protobuf消息,我们最终将各种protobuf消息序列化到一个文件,如下所示:

for each account {
    write simple account fields (id, name, description) as one protobuf message
    write number of user groups
    for each user group {
        convert user group to protobuf message, and serialize it
    }
    for each user {
        convert user to protobuf message, and serialize it
    }
    for each sensor {
        convert sensor to protobuf message, and serialize it
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

这很烦人,因为操纵异构protobuf消息流很复杂.如果我们有一个包含所有域模型的大型protobuf消息会更容易,如下所示:

public …
Run Code Online (Sandbox Code Playgroud)

java serialization snapshot cqrs event-sourcing

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

在Guava中使用ForwardingMap有什么用?

我在理解ForwardingMap的使用时摸不着头脑?有人可以使用它的情况是什么?

java guava

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