小编axi*_*sty的帖子

如何修改电话号码的HAPI验证规则?

在此示例中,maven中央存储库正在使用以下依赖项:

<!-- provides HAPI library -->
<dependency>
  <groupId>ca.uhn.hapi</groupId>
  <artifactId>hapi-base</artifactId>
  <version>2.2</version>
</dependency>
<!-- provides HAPI library message version -->
<dependency>
  <groupId>ca.uhn.hapi</groupId>
  <artifactId>hapi-structures-v22</artifactId>
  <version>2.2</version>
</dependency>

<!-- provides ByteString -->
<dependency>
  <groupId>com.typesafe.akka</groupId>
  <artifactId>akka-actor_2.10</artifactId>
  <version>2.3.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这是我用scala编写的解析代码示例:

  import akka.util.ByteString
  import ca.uhn.hl7v2.model.Message
  import ca.uhn.hl7v2.model.v22.datatype.{CM_PAT_ID, ST, TN, TSComponentOne}
  import ca.uhn.hl7v2.model.v22.segment.{EVN, MRG, PID}
  import ca.uhn.hl7v2.parser.CanonicalModelClassFactory
  import ca.uhn.hl7v2.{DefaultHapiContext, ErrorCode, HL7Exception}

  lazy val parser = {
    val context = new DefaultHapiContext()
    context.setModelClassFactory(new CanonicalModelClassFactory("2.2"))
    context.getGenericParser
  }

  def parseHL7Message(message: ByteString) = Try[Message] { 
    val msg: String = message.utf8String.trim
    parser.parse(msg) 
  }
Run Code Online (Sandbox Code Playgroud)

此代码可以成功解析以下HL7消息. …

validation hl7 hapi

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

为什么"脚本"命令生成^ [和^ M个字符以及如何使用vim搜索和替换它们?

在linux上,使用bash shell,当我使用script命令时,生成的文件称为typescript.当我用vim打开该文件时,每行包含^ M字符,并且几行(由于我的彩色命令提示符)包含一个字符^ [.我想用什么都不替换这些字符,有效地从生成的脚本中删除它们.

首先,我想:%s/^[//gc,:%s/\^[//gc,:%s/\^\[//gc,和其他几个变种.它们都没有匹配^ [字符,因此搜索/替换不起作用.

我也尝试了具有相同结果的^ M字符的所有这些变体.经过一些谷歌搜索后,我发现^ M字符实际上是回车符"\ r".所以然后我尝试了:%s/\\r//gc,这适用于^ M角色!

我用谷歌搜索了一下,试图找出^ [字符是什么,但没有发现任何帮助.

2个问题:

1)什么是^ [字符,在vim中使用什么正确的正则表达式来搜索和替换它?

2)为什么在Linux上使用script命令时,生成的脚本会在行尾生成^ M?这让我觉得linux脚本命令正在生成CRLF eol字符,而不仅仅是LF eol字符.

regex linux vim

6
推荐指数
2
解决办法
2075
查看次数

服务模型与Extender模型?

我刚刚用形状彻底审查了Apache Felix Application Demonstration.文章说明:

在创建基于OSGi的应用程序时,需要考虑两个主要的正交问题:

  1. 服务模型与扩展器模型
  2. 捆绑应用程序与托管框架

在创建基于OSGi的应用程序时,第一个问题实际上是一个普遍问题.创建可扩展OSGi应用程序时可以使用两种通用方法.服务模型方法使用OSGi服务概念和服务注册表作为可扩展性机制.扩展器模型方法使用OSGi安装的bundle set作为可扩展性机制.两种方法都有其优点和缺点,可以单独使用或一起使用.

我认为这是一个普遍接受的最佳实践,关于第二点,更喜欢捆绑的应用程序,除非有一个非常好的理由你被迫使用托管框架.

关于第一点,在研究了服务模型和扩展模型后,我理解它们之间的差异,但我仍然试图弄清楚不同模型的优点和缺点.

每种型号(服务与扩展器)的优缺点是什么?确定使用哪种型号或何时使用两种型号的最佳做法是什么?

java osgi design-patterns

6
推荐指数
2
解决办法
1818
查看次数

org.osgi.framework.storage.clean = onFirstInit在Apache Felix OSGi实现的上下文中意味着什么?

我试图找出org.osgi.framework.storage.clean=onFirstInitFelix框架背景下的真正含义.

根据OSGi规范:

org.osgi.framework.storage:文件系统中一个有效的文件路径到目录......框架可以自由地使用这个目录,例如,完全删除其中的所有文件和目录...

org.osgi.framework.storage.clean:指定是否以及何时应清除框架的存储区域.如果未指定任何值,则不会清除框架存储区域.

由于根据规范,框架可以根据需要自由使用此目录,因此当OSGi规范声明应该清理存储区域时,不清楚是什么意思.清理可能意味着每个OSGi实现都有所不同.

Apache Felix 文档说明:

首次初始化框架实例时,onFirstInit会刷新捆绑缓存.

具体到Felix文档:

  1. "刷新捆绑缓存"是什么意思?刷新与删除存储目录相同,然后从头开始重建吗?所以它会rm -rf felix-cache与Felix容器关闭时相同,以便在启动时重建缓存,就好像这是第一次启动容器一样?
  2. 当它说"首次初始化框架实例时"是什么意思?这是否意味着第一次仅在容器第一次启动时初始化框架?或者它是否意味着每次重新启动容器时第一次初始化框架?

osgi apache-felix

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

带^ {}的Git分支/标签名称

运行该命令git ls-remote将列出以下条目:

e6c1ddea6ee8eefa9e96e349dd4fad4a48c16448    refs/tags/1.1
1a3b5ae3a50ca2f24e5cd917cbf51d371f1dd01e    refs/tags/1.1^{}
81901877c5add523cd4a4bb8f51ad3bbbacbd686    refs/tags/1.2
4681b1ae6ec71301019da13d1790c2f808c2c553    refs/tags/1.2^{}
Run Code Online (Sandbox Code Playgroud)

^{}输出的意思是什么?

git

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

OSGi Bundle Repositories(如何在服务器上托管它们)?

我想发布一个仅仅是一个配置的OSGi容器的产品.当容器启动时,它应该根据容器的配置下载并安装应用程序 - 包含应用程序所有功能的最新捆绑包.当更新版本的应用程序可用时,我希望应用程序自动下载并更新/安装更新版本的软件包,以便最终用户看起来无缝.

基于Apache Felix OSGi Bundle Repository文档的Motivation部分(目前已过时),我认为这是OBR的目的.那是对的吗?

如果没有,那么这种情况有哪些解决方案?

如果是这样:

  1. OBR存储库是什么样的?我设想它看起来有点像maven存储库,可以通过Internet访问,该XML文件描述了存储库中的可用包.

  2. 如何管理可以从Internet访问的存储库?

上述文件指出:

OBR"存储库服务器"不是必需的,因为所有功能都可以驻留在客户端.

但我认为对于那些应该可以从Internet访问的存储库确实存在一些"OBR存储库服务器".在这个示例情况下,我宁愿存储库不在客户端,而是在服务器上,因此客户端可以轻松更新.为了实现这一点,我是否只需设置一个HTTP服务器来托管1)一些描述存储库中可用包的xml文件,以及2)包?

最后,是否有一个简单的示例,演示了所有这些如何协同工作?

osgi

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

Jhipster 实体子生成器:如何创建 liquibase DELTA 更改日志?

jhipster --version

5.3.4

我正在评估 JHipster 并测试它如何处理数据库 DDL 修改。在我的测试中,我创建了一个 Jhipster 项目,然后运行jhipster import-jdl model.jh. JHipster 生成了所有的集成测试,一切看起来都很好。所以我部署到生产。但后来我意识到我定义了一组实体之间的错误关系。当我打算声明关系时,原始model.jh文件one-to-many声明了many-to-one关系。

为了修复这种关系,我尝试了三种方法。首先,我尝试纠正model.jh文件中的关系并重新运行jhipster import-jdl. 这进行了我需要的正确更改,除了它覆盖了 liquibase 更改日志文件而不是创建仅包含增量的新更改日志条目。

所以我恢复了那个变化,并尝试使用实体子生成器。它也修改了原始变更日志文件,而不是创建增量变更日志文件。所以我恢复了这些更改以尝试另一种方法。

我手动对实体进行了更改,然后使用了mvn liquibase:diff. 这种方法最接近我所需要的。它确实创建了一个新的变更日志,而不是更新原始文件。但是,新的变更日志试图改变的不仅仅是与关系相关的列。它试图更改表中几个不相关列的数据类型。它从现有列中删除了评论/评论。简而言之,它基本上是从头开始重新定义整个表格,其中的更改比我尝试进行的小更改所需的更改要多。我最终也恢复了这种方法。

所以,我的问题是,对于那些有经验的 JHipster 和 liquibase 用户,在生产中使用实体后,如何修改它们?您是手动创建更改日志,还是有自动生成它们的好方法?

java liquibase jhipster jdl

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

悬停的CSS技巧较少,带有圆边的按钮上的多个字体

目标:创建一个包含多个文本字体的圆形按钮.

示例:请参见RoundButtonWithMultipleFonts.java和RoundButtonWithMultipleFonts.css

RoundButtonWithMultipleFonts.java:

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Control;
import javafx.scene.control.Label;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class RoundButtonWithMultipleFonts extends Application {
  public static void main(String... args) {
    launch(args);
  }

  @Override
  public void start(Stage stage) throws Exception {
    stage.setTitle("Button with multiple fonts?");
    stage.setScene(new Scene(getRoot(), 400, 400));
    stage.getScene().getStylesheets().addAll(getClass().getResource("RoundButtonWithMultipleFonts.css").toExternalForm());
    stage.sizeToScene();
    stage.show();
  }

  private Parent getRoot() {
    Button button = new Button(""); // The labels should be the buttons text
    button.setOnMouseClicked(new EventHandler<MouseEvent>() {
      @Override …
Run Code Online (Sandbox Code Playgroud)

javafx-2

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

如何使用SQLDeveloper连接到嵌入式Derby数据库

我有一个使用derby和JPA的项目.我可以在我的应用程序中很好地连接到数据库.我想用SQL Developer连接到嵌入式数据库,这样我就可以轻松浏览/查询数据库中的数据.

这是我正在使用的德比依赖:

<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>10.7.1.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这是我用于JPA的连接信息:

<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:derby:fs-hash-database;create=true"/>
Run Code Online (Sandbox Code Playgroud)

使用SQL Developer 3.2.09我尝试使用以下条目在工具>首选项>数据库>第三方JDBC驱动程序中添加驱动程序:

C:\Users\axiopisty\.m2\repository\org\apache\derby\derby\10.7.1.1\derby-10.7.1.1.jar
Run Code Online (Sandbox Code Playgroud)

但是当我尝试创建一个新连接时,SQL Developer仍然只显示Oracle和Access的选项卡.我无法获得第三方驱动程序的JDBC选项卡.

我认为问题是我作为第三方驱动程序添加的jar是整个derby jar,而不仅仅是驱动程序.然而,驱动程序包含在jar中.

有谁知道如何配置SQL Developer以使用derby-10.7.1.1.jar中包含的org.apache.derby.jdbc.EmbeddedDriver?

derby oracle-sqldeveloper

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

如何使用货币符号格式化MonetaryAmount?

编辑:此问题旨在用于JSR-354上下文中的格式.另一种方法是使用java.util.CurrencyFormat.但我想知道如何使用它MonetaryAmountFormat.

如何MonetaryAmount在JSR-354的上下文中使用货币符号格式化MonetaryAmountFormat

我尝试使用MonetaryAmountFormat我在网上找到的两个不同的例子,如下所示.这两种方法都没有正常工作所以我将我的示例测试用例推送到github,以防你想要克隆并查看完整的细节,但这里是测试:

pom.xml:

<dependency>
  <groupId>org.javamoney</groupId>
  <artifactId>moneta</artifactId>
  <version>1.1</version>
</dependency>

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

TestMonetaryAmountFormat.java

package com.github.axiopisty.stackoverflow.jsr354;

import java.math.BigDecimal;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
import javax.money.CurrencyUnit;
import javax.money.Monetary;
import javax.money.MonetaryAmount;
import javax.money.format.AmountFormatQueryBuilder;
import javax.money.format.MonetaryAmountFormat;
import javax.money.format.MonetaryFormats;
import org.javamoney.moneta.Money;
import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class TestMonetaryAmountFormat {

  private final String EXPECTED = "$12.99";

  private final CurrencyUnit USD = Monetary.getCurrency("USD");
  private final MonetaryAmount AMOUNT = Money.of(new BigDecimal("12.99"), …
Run Code Online (Sandbox Code Playgroud)

java jsr354

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