小编thS*_*oft的帖子

使用Maven为OSGi"包装"罐子的好方法

我在OPS4J上看过PAX工具,例如:这个,我想我找到了一个很好的方法:

  • 指定工件
  • 从该jar及其传递依赖项创建一个已组装的jar(包含所有依赖项的jar)
  • 用BND包装它来创建一个OSGi包

事实证明,我错了 - 似乎PAX的东西没有这样做.(RTFM,对吧?:))

但是这让我感到疑惑:那里有什么能满足我的要求吗?

我想也许我可以通过创建一个简单的POM并使用maven-bundle-plugin来做到这一点,但这似乎对我所要求的东西来说可能有点麻烦.

注意:我得到嵌入和组装jar不是真正的"OSGi方式" - 所以我不会这样做,除非我真的认为它有用.例如 - 春天.

提前致谢.

java osgi maven

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

Unicode字母字符列表

我需要具有http://www.unicode.org/Public/5.1.0/ucd/UCD.html#Alphabetic中Alphabetic定义的属性的Unicode字符范围列表.但是,无论我如何搜索它们,我都无法在Unicode字符数据库中找到它们.有人可以提供它们的列表,还是只提供具有指定Unicode属性的字符的搜索工具?

unicode alphabetic character-properties

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

如何在功能上处理来自外部系统的状态?

我最近进入了函数式编程,并且学习了几种以引用透明的方式处理某些副作用的方法:

  • 用于可变状态的 State monad,例如更新变量
  • 用于 I/O的 IO monad,例如从/向控制台读/写
  • FRP用于图形和输入设备事件等交互性

但是现在大多数“真实世界”的应用程序都与外部系统(如 Web 服务、数据库等)交互,这些系统可以由多个用户同时修改,它们有状态、长时间运行的操作等。所以情况并不那么简单如上述类别:向系统询问实体的状态或试图控制它的结果取决于其状态。此外,交互性也是一个要求:有一些用户可以任意点击的 GUI,也许我们还必须自动对来自系统的变化做出反应。

通过最大化纯函数的好处来设计和实现此类应用程序的模式是什么?或者上面的一些方法可以以我没有想到的方式应用于这个问题吗?该语言(例如 Java 或 Scala)不会强制执行 100% 纯度,因此我对由实践经验支持的实用解决方案感兴趣。

functional-programming architectural-patterns referential-transparency

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

即使存在于我的远程存储库中,mvn包也会因必需的工件丢失而失败

我正在尝试在我的Maven项目上运行mvn clean包,但它失败并显示以下消息:

工件net.ezswitch的"必需工件缺失":ResourcesComponent:jar:0.0.14

我已经将settings.xml配置为包含我的远程存储库,如果我在浏览器中导航,我实际上可以在我的存储库中找到这个Jar,但Maven不能以某种方式.

我已经检查过我正在运行的Maven版本是我编辑过的settings.xml文件生效的版本,因为如果我禁用我在那里配置的配置文件,Maven就会失败并显示不同的消息.

我在MAC OS X Lion上使用Maven 2.2.1.

这是我的settings.xml:

<localRepository>/Users/hordine/.m2/repository</localRepository>
<servers>
  <server>
      <id>LiquixRepository</id>
      <username>henrique</username>
      <password>xxxxx</password>
      <configuration>
          <httpConfiguration>
              <put>
                  <params>
                      <param>
                          <name>http.authentication.preemptive</name>
                          <value>%b,true</value>
                      </param>
                  </params>
              </put>
          </httpConfiguration>      
      </configuration>
  </server>

  <server>
      <id>dev.liquix.eu</id>
      <username>henrique</username>
      <password>xxxxx</password>
  </server>
  <server>
      <id>ezpay-dev.liquix.eu</id>
      <username>henrique</username>
      <password>xxxxx</password>
  </server>
</servers>
<profiles>
  <profile>
      <id>ezswitch</id>

      <properties>
          <tomcat.home>/System/Library/tomcat</tomcat.home>
          <subversion.user>henrique</subversion.user>
          <subversion.password>xxxxx</subversion.password>
      </properties>

      <activation>
          <jdk>1.6</jdk>
      </activation>

      <repositories>
          <repository>
              <id>central</id>
              <name>EzSwitch Cache</name>
              <layout>default</layout>
              <url>http://ezpay-dev.liquix.eu:9998/repository</url>
          </repository>
          <repository>
            <id>central_maven1</id>
            <name>EzSwitch Cache2</name>
            <layout>legacy</layout>
            <url>http://ezpay-dev.liquix.eu:9998/repository</url>
          </repository>
      </repositories>


      <pluginRepositories>
          <pluginRepository>
              <id>central</id>
              <name>EZswitch</name>
              <url>http://ezpay-dev.liquix.eu:9998/repository</url>
              <snapshots>
              </snapshots>
              <releases> …
Run Code Online (Sandbox Code Playgroud)

maven-2 repository artifact maven

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

Cabal不会更新二进制符号链接

我正在使用OS X 10.8.2和Haskell Platform 2012.4.0.0.使用时更新包时cabal install,二进制符号链接不会更新以指向新的二进制版本.我必须手动删除符号链接并重新安装包.cabal install说:

警告:无法在/ Users/thsoft/Library/Haskell/bin中为elm创建符号链接,因为该文件已存在但不受cabal管理.如果您愿意,可以手动为此可执行文件创建符号链接.可执行文件已安装在/Users/thsoft/Library/Haskell/ghc-7.4.1/lib/Elm-0.7/bin/elm

我尝试使用sudo--symlink-bindir=/Users/thsoft/Library/Haskell/bin明确指定,但没有一个帮助.我怎么能解决这个问题?

haskell cabal cabal-install osx-lion

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

如何区分Xtext,Xtend和类似的Eclipse技术?

从X(Xtext,Xtend)开始,所有这些基于Eclipse的技术的特征,差异和相似之处是什么?还有什么需要了解的吗?

xtext xtend

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

如何加快Eclipse Proposals?他们很慢

我正在使用Eclipse进行Java开发.我喜欢IDE的一件事是当他们提出我正在键入的方法名称时,这会提高我的工作效率并使我免于拼写错误.

比如我的班级:

class User {
    private String name;
    private int id;
}
Run Code Online (Sandbox Code Playgroud)

我想在打字时my_user.提出建议(应该提出nameid快速提出)

但Eclipse在这个IDE功能上非常慢,这对我很重要.(谷歌通过互联网更快地进行搜索建议,而不是Eclipse在我的本地工作空间中提出建议).有什么方法可以加快Eclipse提案的速度吗?

我试图取消选中除"Java Proposals"之外的所有提案:

Windows > Preferences > Java > Editor > Content Assist > Advanced

我在Eclipse Galileo 3.5.2和Eclipse Helios 3.6.2上都尝试过这个.Galieleo比Helios快得多,但两者都太慢而且不太有用.

java eclipse content-assist autosuggest

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

从javascript表达式获取变量(Rhino)

我正在使用Rhino来评估js表达式,方法是将所有可能的变量值放在作用域中并评估匿名函数.然而,表达式相当简单,我想只将表达式中使用的值放在表达式中.

代码示例:

    Context cx = Context.enter();

    Scriptable scope = cx.initStandardObjects(null);

    // Build javascript anonymous function
    String script = "(function () {" ;

    for (String key : values.keySet()) {
        ScriptableObject.putProperty(scope, key, values.get(key));
    }
    script += "return " + expression + ";})();";

    Object result = cx.evaluateString(scope, script, "<cmd>", 1, null);
Run Code Online (Sandbox Code Playgroud)

我想从变量名称的表达式中获取所有标记.

例如,如果表达式是

(V1ND < 0 ? Math.abs(V1ND) : 0)
Run Code Online (Sandbox Code Playgroud)

它会回来V1ND.

javascript java rhino

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

FindBugs:“可能无法关闭流” - 这在 InputStream 的情况下有效吗?

在我的 Java 代码中,我启动了一个新进程,然后获取其输入流以读取它:

BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
Run Code Online (Sandbox Code Playgroud)

FindBugs 在这里报告错误:

may fail to close stream
Pattern id: OS_OPEN_STREAM, type: OS, category: BAD_PRACTICE
Run Code Online (Sandbox Code Playgroud)

我必须关闭另一个进程的 InputStream 吗?更重要的是,根据它的 Javadoc, InputStream#close() 什么都不做。那么这是误报,还是应该在完成后真正关闭流程的输入流?

java findbugs stream

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

在另一个 iframe 中复制 iframe 的 innerHTML

我偶然发现了一个这样的网站,我们称之为 home.html

<body>
<iframe id='id1' src="1.html">
</iframe>
</body>
Run Code Online (Sandbox Code Playgroud)

1.html,我们得到

<body>...
<iframe id='id2' src="2.html">
</iframe>
...
</body>
Run Code Online (Sandbox Code Playgroud)

如何2.html使用 JavaScript获取 HTML 内容?我不直接去2.html获取内容的原因是因为内容只是一个模板并且在home.html

通常,我会像下面那样获取 iframe id 的内容,但在这种情况下它不起作用。

var e = document.getElementById('myid').html;
Run Code Online (Sandbox Code Playgroud)

谢谢你。

javascript iframe

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

Java:编写抛出任何RuntimeException的泛型方法

我正在编写一个基本上做一件简单事情的方法,记录错误消息并使用相同的错误消息抛出运行​​时异常.我希望它能够抛出RuntimeException的任何子异常.我得到的方法是:

public static <T extends RuntimeException> void logErrorAndThrowException(Logger logger, String errorMessage, Class<T> exceptionClazz) throws T {
        logger.error(errorMessage);
        RuntimeException runtimeException = new RuntimeException(errorMessage);
        throw exceptionClazz.cast(runtimeException);   // Not work!!
    }
Run Code Online (Sandbox Code Playgroud)

我已定义此异常:

public final class MyException extends RuntimeException {
    public MyException() {
    }

    public MyException(String message) {
        super(message);
    }

    public MyException(Throwable cause) {
        super(cause);
    }

    public MyException(String message, Throwable cause) {
        super(message, cause);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我使用以下方法调用该方法:

   logErrorAndThrowException(logger, "This is an error message", MyException.class);
Run Code Online (Sandbox Code Playgroud)

上面的注释行将失败并显示强制转换异常.然后我尝试了另一个实现:

public static <T extends RuntimeException> void logWarningAndThrowException(Logger logger, String …
Run Code Online (Sandbox Code Playgroud)

java generics log4j

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