小编Roy*_*ove的帖子

ant - 在每个构建结束时运行目标

有没有办法在每次构建结束时始终运行目标?

我知道我可以做这样的事......

<target name="runJob" depends="actuallyRunJob, teardown"/>
Run Code Online (Sandbox Code Playgroud)

......但这很草率,因为我需要一个需要拆卸的每个目标的包装器.

有任何想法吗?

谢谢,罗伊

ant

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

ember.js pushObject没有推动

让我的大脑缠绕在emberjs身上.尝试创建一个控制器,从一个返回JSON数组的webservice调用中加载对象:

(注意,这是从coffeescript生成的javascript)

MTM.Trade.controller = Ember.ArrayController.create({
  loadAll: function() {
    var self;
    self = this;
    this.set('content', []); /* fails with or without this line*/
    return $.getJSON('http://localhost:8080/webservice/trades', function(data) {
      var jsonTrade, trade, _i, _len;
      console.log("Length = " + data.length);
      for (_i = 0, _len = data.length; _i < _len; _i++) {
        jsonTrade = data[_i];
        trade = MTM.Trade.create(jsonTrade);
        self.pushObject(trade);
      }
      console.log("Everything pushed");
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

在调用时MTM.Trade.controller.loadAll(),显然正在为每个对象调用循环.但是我的控制器永远不会改变..运行console.log MTM.Trade.controller.get('content')返回一个空白数组

我知道ember-rest和ember-data存在,但是现在我正在自己学习如何自己做这些事情,并且稍后会迁移到这些框架.

UPDATE

感谢这篇文章,我确实得到了我的问题的答案..我需要初始化我的数组:

MTM.Trade.controller = Ember.ArrayController.create({

  init: function() {
    this._super();
    return …
Run Code Online (Sandbox Code Playgroud)

ember.js

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

git rebase 流程与代码审查?可能的?

是的,另一个 git flow 问题.. :(

我非常了解“标准” git rebase 流程:

  • 开发人员从上游分支(比如“master”)创建一个跟踪分支(比如“featureA”)
  • 开发人员代码、提交、rebase 拉取、代码、提交、rebase 拉取等
  • 代码完成,开发人员压缩提交并推送到掌握

我遇到的问题是,在与 master 合并之前,这没有为代码审查留下空间。审阅者仅在 master 上看到更改,因此如果开发人员需要调整任何内容,则 master 上将针对给定功能进行多次提交。理想情况下只有一个。

我知道的一些选项可以解决这个问题,但并不理想:

  • 让开发人员将功能分支推送到远程。问题在于,在他们从 master 重新定位后,推送必须是强制推送,虽然在这种情况下可能安全,我不想照常营业。
  • 不要将上游更改重新设置为功能分支,而是合并它们。有了这个,我无法压缩功能分支并将提交推回主节点(对吗??)
  • 使用gerrit/github。我不得不猜测有没有办法在纯 git 中实现这一点?

有没有更好的办法?

git

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

angularjs - 插入$ compile-d html

(请注意,您不需要知道这个数据表的数据.)

我正在创建一个处理DataTables的指令.我想做的是有一个带有两个图标的动作栏 - 编辑和删除.这些图标应响应ng-click.

数据表允许您通过为给定的列定义(mRender)提供回调来实现此目的.此回调返回该单元格值的html字符串,该字符串将插入DOM而不是实际单元格值.

检查这个plunker.强调了两个重要功能:

  • renderActionIcon - 我上面提到的回调的实现.它会在单元格中生成我想要的HTML字符串.
  • registerNewHtmlWithAngular - 表面上让角度知道我需要为该列注册的ng-clicks的函数.

应该registerNewHtmlWithAngular怎么做?

如果$编译html,angular会添加相应的click事件侦听器并返回一个元素,但由于Datatables函数需要HTML,因此这些注册的元素不会添加到DOM中.

有任何想法吗?谢谢大家!

datatables angularjs

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

AngularJS - 双向绑定承诺 - 处理拒绝

我已经发现了一种困难的方式,当你双向绑定一个promise时,angular会为你解除承诺,并且会绑定实际的承诺.我的问题是,如何处理被拒绝的承诺?

我的具体情况是我有一个指令,我从控制器双向绑定一个promise.我的控制器期望该指令处理对该promise的拒绝,因为错误需要在DOM上显示.

在我的指令中,我希望我的绑定变量是一个promise,但我获得了该promise 的解析值.烦人,但是,并不可怕.

问题是当该承诺被拒绝时,指令无法知道.

以这个plunker为例:

http://plnkr.co/edit/m0cOqFhx6TNrDxTbr9Qx?p=preview

我如何处理指令中的承诺拒绝?

谢谢,罗伊

promise angularjs

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

Docker 不释放端口

(在 Mac 上,Boot2Docker,docker v 1.1.1)

在分配主机端口时,Docker 不会释放它使用的端口,这是一个问题。例如,我使用相同的映像启动 3 个容器。我的docker ps返回结果如下:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
9875e2d28c3b        49ffc1050348        /sbin/my_init       19 hours ago        Up 1 seconds        0.0.0.0:49169->22/tcp, 0.0.0.0:49170->3306/tcp   boring_goldstine
f0a40c3bb4a1        49ffc1050348        /sbin/my_init       19 hours ago        Up 6 seconds        0.0.0.0:49167->22/tcp, 0.0.0.0:49168->3306/tcp   sleepy_wright
0fb913db3528        49ffc1050348        /sbin/my_init       19 hours ago        Up About a minute   0.0.0.0:49165->22/tcp, 0.0.0.0:49166->3306/tcp   agitated_jones
Run Code Online (Sandbox Code Playgroud)

滚动到端口,您将看到 49170 是最后分配的端口。

如果我停止并 rm 这些容器并运行另一个容器,Docker 会使用最低的可用端口。然而现在这个数字还在不断增加:

docker run -P -d 49ffc1050348

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
82fdf0e54846        49ffc1050348        /sbin/my_init …
Run Code Online (Sandbox Code Playgroud)

docker boot2docker

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

Camel - 流缓存没有缓存/无法转换?

在阅读一次之后,我似乎正在失去我的"身体".请注意,我正在使用Camel的流缓存,并且输入是来自http组件的json文件.我有一个处理器,代码如下.

    log.debug("Body Type: " + exchange.getIn().getBody().getClass().getCanonicalName());
    log.debug("In msg1:"  + exchange.getIn().getBody(String.class));
    log.debug("In msg2:"  + exchange.getIn().getBody(String.class));
Run Code Online (Sandbox Code Playgroud)

我期望在这里看到的是msg1和msg2是相同的输出,但是msg2返回一个空字符串(非空).以下是TRACE级别的日志.

1- DEBUG com.mycompany.MyProcessor : Body Type: org.apache.camel.converter.stream.InputStreamCache
2- TRACE org.apache.camel.impl.converter.DefaultTypeConverter : Converting org.apache.camel.converter.stream.InputStreamCache -> java.lang.String with value: org.apache.camel.converter.stream.InputStreamCache@780a5cef
3- TRACE org.apache.camel.impl.converter.DefaultTypeConverter : Using converter: StaticMethodTypeConverter: public static java.lang.String org.apache.camel.converter.IOConverter.toString(java.io.InputStream,org.apache.camel.Exchange) throws java.io.IOException to convert [class org.apache.camel.converter.stream.InputStreamCache=>class java.lang.String]
4- DEBUG com.mycompany.MyProcessor : In msg1:{myJson}
5- TRACE org.apache.camel.impl.converter.DefaultTypeConverter : Converting org.apache.camel.converter.stream.InputStreamCache -> java.lang.String with value: org.apache.camel.converter.stream.InputStreamCache@780a5cef
6- TRACE org.apache.camel.impl.converter.DefaultTypeConverter : Using converter: StaticMethodTypeConverter: public static java.lang.String org.apache.camel.converter.IOConverter.toString(java.io.InputStream,org.apache.camel.Exchange) throws …
Run Code Online (Sandbox Code Playgroud)

java apache-camel

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

退避不适用于Apache Camel重新传递

(骆驼版2.14.1)

我正在尝试让Camel使用退避重新传递策略重试msg到JMS(实际上是MQ over JMS).这是我得到的:

errorHandler(defaultErrorHandler()
    .maximumRedeliveries(-1) 
    .useExponentialBackOff()
    .backOffMultiplier(2)
    .maximumRedeliveryDelay(30000)
    .retryAttemptedLogLevel(LoggingLevel.WARN));

from("direct:in")
    .log("Sending message to MQ")
    .to("mq:MY_QUEUE?requestTimeout=1000");
Run Code Online (Sandbox Code Playgroud)

我对这里应该发生的事情的理解是初始超时将是1000ms.之后,骆驼将等待2000毫秒,然后等待4000毫秒等,直到我们达到30000毫秒.

发生了什么事是消息重试,但在1000毫秒每次.

我可能需要在上面的代码中更改以获得我正在寻找的结果?

TIA

jms apache-camel

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

java - curry一个现有的静态函数

为了充分利用Java中的函数组合,我想讨论一些我常用的现有静态函数.一个完美的currying候选者是Apache Commons StringUtils.

对于一个具体的例子,让我们说,我想讨好的StringUtils.remove(String str, String remove)方法提供了调用的函数(比方说)removeCommas.

一种可能的实现是:

Function<String, String> removeCommas = s -> StringUtils.remove(s, ",");
Run Code Online (Sandbox Code Playgroud)

然而,这并不是一个问题.我希望能够使用方法引用操作符(例如StringUtils::remove)以更实用的方式实现这一点,但我无法弄清楚语法是什么样的.

思考?

java functional-programming currying java-8

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

Groovy - 覆盖单个实例的invokeMethod

我有一个java对象的实例,比方说一个名为myList的ArrayList实例.

对于这个特定的实例,我想重写invokeMethod方法,以便(比方说)调用该方法.

我可以这样做:

myList.metaclass.invokeMethod { name, args -> 

   println "Called ${name} with ${args}"
   whatGoesHere.invokeMethod(name, args)

}
Run Code Online (Sandbox Code Playgroud)

注意闭包的第二行 - 如何调用原始的invokeMethod方法?我正确地谈到这个吗?

groovy metaprogramming

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