小编And*_*rey的帖子

Jenkins:SVN工作副本的无效版本

我们的构建服务器运行Jenkins 1.502,Subversion插件升级到版本1.45.这个插件使用svnkit-1.7.6-jenkins-1.jar.

我们还安装了SVN客户端1.7.8.

Jenkins成功检出SVN存储库中的源代码.但是当我进入workspace目录并尝试手动运行某个svn命令时,它会失败:

# cd /var/lib/jenkins/jobs/myproject/workspace/
# svnversion
svn: E155036: Working copy '/var/lib/jenkins/jobs/myproject/workspace' is too old (format 8, created by Subversion 1.4)

错误消息表明工作副本是由SVN 1.4创建的,但svnkit的版本是1.7.6.怎么会这样?

我搜索了整个文件系统,没有任何其他svnkit-*.jar文件.

svn jenkins

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

如何折叠STL容器?

我需要一个Haskell foldl函数的模拟来折叠任何STL容器.预期签名如下:

template Iterator, FoldingFunction, Result
Result foldl(
  Iterator begin, 
  Iterator end, 
  FoldingFunction f, 
  Result initValue);
Run Code Online (Sandbox Code Playgroud)

标准STL没有这样的功能.是否加速有什么?

我知道它实现起来非常简单,但我想知道是否有任何现成的标准化实现.

还有一个问题:你通常如何在C++/STL中折叠数据列表?

c++ boost stl fold

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

使用JPA从集合中删除子项

我在我的网络应用程序中使用JPA而不是Hibernate.这是两个实体(仅显示getter):

class Child {
  private Parent parent;

  @ManyToOne(optional=false)
  @JoinColumn(name="parent_id", referencedColumnName="parent_id", nullable=false, updatable=false)
  public Parent getParent() {
    return parent;
  }
}

class Parent {
  private Collection<Child> children;

  @OneToMany(fetch=FetchType.EAGER, mappedBy="parent", cascade={CascadeType.ALL})
  public Collection<Child> getChildren() {
    return children;
  }
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,Parent并将其Child视为"一对多".

现在我需要加载一个Parent实例,删除一些或所有孩子并保存更改.以下代码对我不起作用:

Parent p = entityManager.find(Parent.class, 12345L); // load entity
p.getChildren().clear(); // remove all children
entityManager.merge(p); // try to save
Run Code Online (Sandbox Code Playgroud)

在上面的示例中未删除子实体.现在我必须手动呼叫entityManager.remove()每个孩子.

有没有更简单的方法来管理儿童收藏?

请注意,我不想使用特定于Hibernate的功能,只需使用纯JPA.

java orm hibernate jpa one-to-many

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

JPA:缓存查询

我正在使用JPA在基于Java EE的Web应用程序中加载和持久化实体.Hibernate用作JPA的实现,但我没有使用特定于Hibernate的功能,只能使用纯JPA.

这是一些DAO类,通知getOrders方法:

class OrderDao {
  EntityManager em;

  List getOrders(Long customerId) {
    Query q = em.createQuery(
      "SELECT o FROM Order o WHERE o.customerId = :customerId");
    q.setParameter("customerId", customerId);
    return q.getResultList();
  }
}

方法很简单,但有一个很大的缺点.每次调用该方法时,都会在JPA实现中的某个位置执行以下操作:

  1. 解析JPQL表达式并将其编译为SQL.
  2. Statement或PreparedStatement实例都已创建并初始化.
  3. 语句实例用参数填充并执行.

我相信上述第1步和第2步应该在每个应用程序生命周期内执行一次.但是怎么做呢?换句话说,我需要缓存Query实例.

当然我可以在我身边实现这样的缓存.但是等等,我正在使用现代强大的ORM!他们不是已经为我做了这个吗?

请注意,我没有提到像Hibernate查询缓存那样缓存查询结果的东西.在这里,我想更快地执行我的查询.

java caching hibernate jpa

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

使用Java解析HTML"style"属性

我解析了HTML代码org.w3c.dom.Document.我需要检查所有标记style属性,解析它们,更改一些CSS属性并将修改后的样式定义返回到属性.

是否有任何标准方法来解析style属性?如何使用org.w3c.dom.css包中的类和接口?

我需要一个Java解决方案.

html java parsing coding-style

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

Java,懒惰地初始化字段而没有同步

有时当我需要懒惰的初始化字段时,我使用以下设计模式.

class DictionaryHolder {
  private volatile Dictionary dict; // some heavy object

  public Dictionary getDictionary() {
    Dictionary d = this.dict;
    if (d == null) {
      d = loadDictionary(); // costy operation
      this.dict = d;
    }
    return d;
  }
}
Run Code Online (Sandbox Code Playgroud)

它看起来像Double Checking idion,但不完全是.没有同步,可以loadDictionary多次调用方法.

当并发性很低时我使用这种模式.在使用此模式时,我还要记住以下假设:

  • loadDictionary 方法始终返回相同的数据.
  • loadDictionary 方法是线程安全的.

我的问题:

  1. 这种模式是否正确?换句话说,是否可以getDictionary()返回无效数据?
  2. 是否有可能使dict现场非挥发性更高效?
  3. 有没有更好的解决方案?

java synchronization lazy-evaluation

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

Linux实现VISA API

你知道虚拟仪器软件架构的任何Linux实现吗?即使是简单而有限的?免费和开源实现是首选.

只有我知道的实现是NI VISA,它是非自由和闭源的.而且,它运行在非常有限的Linux发行版上.例如,我不知道是否可以在Debian上运行它.

谢谢.

linux visa

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

在Tcl中搜索排序列表中的数字

我正在使用Tcl.我有一个实数的排序列表.给定数字n我需要找到list元素的索引,它是:

  • 要么少于等于n;
  • 或大于n.

有没有标准的方法来做到这一点?lsearch期望完全匹配,不能使用.

tcl

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

保存并传递先前结果的映射

当在Haskell中通过三对角矩阵算法求解线性方程组时,我遇到了以下问题.

我们有三个载体:a,bc,我们想使第三矢量c'是它们的组合:

c'[i] = c[i] / b[i], i = 0
c'[i] = c[i] / (b[i] - a[i] * c'[i-1]), 0 < i < n - 1
c'[i] = undefined, i = n - 1

在Haskell中实现上面的公式如下:

calcC' a b c = Data.Vector.generate n f
  where
    n = Data.Vector.length a
    f i = 
      | i == 0 = c!0 / b!0 
      | i == n - 1 = 0
      | otherwise = …

haskell map

3
推荐指数
1
解决办法
1210
查看次数

Tcl中的大型文本替换

在我的Tcl脚本中,我正在用另一种语言构建源代码.以gnuplot源为例.我有这样的Tcl代码:

# `script' variable contains gnuplot source code
set script {
  set terminal pdf
  set output "chart.pdf"
  set title "[makeTitle]"
  plot "$dataFile" using 1:2 title ""
}

# Then I write `script' to file for later execution

请注意,script变量包含命令call(makeTitle)和变量substitution(dataFile).源代码本身包含新行,双引号.

问题:如何简单地"评估"此变量以通过结果和变量的值替换命令调用?预期结果应如下所示:

  set terminal pdf
  set output "chart.pdf"
  set title "R(S) Dependence"
  plot "r_s.txt" using 1:2 title ""

tcl

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