小编Dea*_*ler的帖子

如何在上游项目中从fileTree中排除jar?

我们在项目中有以下配置......

configurations {
    //compile.exclude module: 'commons'
    //all*.exclude group: 'org.gradle.test.excludes', module: 'reports'
    all*.exclude module: 'log4j'
}

dependencies {
    compile group: 'org.slf4j',          name: 'slf4j-api',               version: '1.6.6'
    compile group: 'org.slf4j',          name: 'log4j-over-slf4j',        version: '1.6.6'
    compile group: 'com.google.inject',  name: 'guice',                   version: '3.0'
    compile group: 'com.google.protobuf',name: 'protobuf-java',           version: '2.4.1'
    //compile group: 'org.asteriskjava',name: 'asterisk-java',         version: '1.0.0.M3'   

    //to be erased soon
    compile group: 'commons-configuration',name:'commons-configuration',version: '1.8'
    //compile group: 'org.bouncycastle',   name: 'bcpg-jdk16',              version: '1.46'

    compile project(':sdi-master')
    compile project(':sdi-webserver')
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,项目sdi-webserver有自己的log4j从这样的filetree引入

project(':sdi-webserver') {
    project.ext.genLibDir = file('lib')

    dependencies {    
        compile project(':sdi-master') …
Run Code Online (Sandbox Code Playgroud)

gradle

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

HttpClient不会重复使用我的连接,不断创建新的连接

来自netstat -anp | grep我在两个不同的时间,我可以看到HttpClient没有重新使用我的连接.我每次使用不同的URL连接到同一主机

为什么HttpClient不仅每次都重复使用与myhost.com相同的连接?

我有以下代码用于初始化我传递给HttpClient的Pool ...

PoolingClientConnectionManager mgr = new PoolingClientConnectionManager();
mgr.setDefaultMaxPerRoute(30);
mgr.setMaxTotal(30);
Run Code Online (Sandbox Code Playgroud)

我看到他们正在使用HttpRoute并且在equals中有localAddress,这似乎很奇怪,因为HttpRoute应该只对主机名和模式(https/http)相等,就是这样,对吧?这与它有关吗?这是一个错误吗?每次都要重新建立https套接字,性能非常糟糕!!!!!

httpclient apache-httpclient-4.x

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

宁异步http客户端如何接受任何证书

我在此页面上看到如何做https

http://sonatype.github.com/async-http-client/ssl.html

但是,如果我只是想忽略并接受任何证书,因为在这种环境中,我现在不在乎中间的人,因为它处于隔离的环境中,而我正在做一些工作以对QA数据进行自动化测试,该怎么办?

也许我的问题是如何伪造Java的SSL堆栈中的SSL,以便它在另一端接受任何证书(这不是双向的,因为它是https)。

上面链接中客户端的通用代码是

    char[] keyStorePassword = "changeit".toCharArray();
    KeyStore ks = KeyStore.getInstance("JKS");
    //ks.load(keyStoreStream, keyStorePassword);

    char[] certificatePassword = "changeit".toCharArray();
    KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
    kmf.init(ks, certificatePassword);

    KeyManager[] keyManagers = kmf.getKeyManagers();
    javax.net.ssl.TrustManager tm = new MyTrustMgr();
    javax.net.ssl.TrustManager[] trustManagers = new javax.net.ssl.TrustManager[]{tm };
    SecureRandom secureRandom = new SecureRandom();

    SSLContext ctx = SSLContext.getInstance("TLS");
    ctx.init(keyManagers, trustManagers, secureRandom);
    return ctx;
Run Code Online (Sandbox Code Playgroud)

好吧,解决这个问题,我发现由于某些原因仍然无法解决问题

    X509TrustManager tm = new X509TrustManager() {
        public void checkClientTrusted(X509Certificate[] xcs,
                String string) throws CertificateException {
        }
        public void checkServerTrusted(X509Certificate[] xcs,
                String string) throws CertificateException { …
Run Code Online (Sandbox Code Playgroud)

ssl ning netty asynchttpclient

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

jodatime DateTime.getMillis是UTC格式吗?时代

因此,System.currentTimeMillis以UTC时区返回millis.DateTime.getmill与几乎所有我知道millis的库是一样的,因为epoch总是在UTC吗?joda-time也一样吗?

谢谢,迪恩

jodatime

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

gradle没有任务排序,所以如何实现这一目标

因此,如果我们有一个drop db任务和一个create db任务,一个启动服务器任务和一个runqatest任务,我们想要

  1. 有独立的任务,所以我可以自己调用gradle dropdb(或其他人)
  2. 让runqatest依赖于dropdb,createdb,populatedb,startserver

上面的数字2显然需要订购或者会破坏,并且gradle不遵守像蚂蚁那样的任何订单.怎么做到这一点?(我在这篇文章中已经阅读了很多相关内容

http://markmail.org/thread/wn6ifkng6k7os4qn#query:+page:1+mid:hxibzgim5yjdxl7q+state:results

虽然一个用户错误,但是当你有1时它不具有确定性.e依赖于c和d 2. c取决于b,a 3. d取决于a,b

因为e决定c将是第一个,所以构建将运行b,a,c,d因此它是完全确定的.我同意如果你有顺序,并且像蚂蚁一样,并行构建更加困难,因为你不能只是顺序运行c和d,因为顺序很重要(而且从用户的角度来看,它更糟糕,大多数情况下并不重要时间).

如果他们只添加一个dependsOnOrdered,那么我们可以在绝对必要的时候进行订购.

或者有谁知道我们应该这样做的方式是什么?这个问题是在2009年针对gradle提出的!我仍然没有看到gradle中有关如何在需要时执行有序操作的文档.

院长

gradle

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

分裂文本为一些粗体和一些不在功能的javascript片段

我目前有以下代码

var temp = node.append("text")
.attr("dx", function(d) { return -8; })
.attr("dy", -4)
.style("text-anchor", function(d) { return d.root ? "start" : "end"; })
.style("font-size", function(d) { return d.selected ? "16px" : "10px"; })
.style("font-weight", function(d) { return d.selected ? "bold" : ""; })
.text(function(d) { return d.name; });
Run Code Online (Sandbox Code Playgroud)

这工作正常.此代码接收形式的字符串

streamname(module<-module<-module)
Run Code Online (Sandbox Code Playgroud)

如果json节点包含lastModuleSelected = true,我希望最后一个模块只是粗体,而不是整个事情,如果lastModuleSelected = false,我只想要使用粗体而不是整个事物.

我该怎么做呢?这当然在许多节点上运行,所以我不确定如何正确地附加两个文本元素,因为字符串长度的大小不同....我仍然想要一个字符串,但它的一部分是粗体,部分正常.有没有办法做到这一点?

注意:d.root,d.selected和d.name是收到的json中的属性,我也将添加一个d.lastModuleSelected属性.

如果需要的话,我也可以选择分离出streamname和模块列表,这样也可以更容易地编写javascript.即.而不是d.name,我可能将d.streamname和d.moduleNameList作为两个单独的属性.

谢谢,迪恩

javascript d3.js

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

如何获得更永久的访问令牌

该文件位于http://www.salesforce.com/us/developer/docs/api_rest/index_Left.htm#CSHID=quickstart_code.htm|StartTopic=Content%2Fquickstart_code.htm|SkinName=webhelp说

Salesforce使用身份验证允许用户安全地访问数据,而无需显示用户名和密码凭据.

但据我所知,我可以运行以获取access_token的唯一命令是使用我的同事的用户名和密码,如此

curl -d "username=yyyyyyy" -d "password=xxxxxxx" -d "client_id=zzzzzz" -d "client_secret=dddddddddd" -v -d "grant_type=password" https://login.salesforce.com/services/oauth2/token
Run Code Online (Sandbox Code Playgroud)

当access_token保持过期时,我必须重新生成它.如果没有,我的同事可以只生成一次令牌并将其交给我并完成它.

我怎么能这样做,所以他永远不必给我他的用户名/密码和我的应用程序将继续工作和工作,直到他从salesforce删除该应用程序(这将有望使client_id和client_secret无效).

(这就是大多数API至少工作的方式,因此用户不必向开发人员提供用户名和密码,也不需要在生产计算机上存储用户名和密码.)那么我们如何才能使用它?或者文档是完全错误的,我确实需要用户的登录名/密码来访问数据,即使这一行说不然.

salesforce

3
推荐指数
2
解决办法
2952
查看次数

在scala中如何包装PartialFunction?

在scala中,Futures有一种带有PartialFunction的救援功能.如果Future使用响应解析但在发生故障时调用此代码,则会跳过此代码.

我想简单地将partial函数包装在代理中,该代理总是执行写入stat计数器的代码.起初我以为我会创建另一个PartialFunction,但很快意识到与isDefined不能很好地工作,然后应用,因为我真的希望每次调用它.

如何代理PartialFunction以便在Future有异常时始终调用我的代码?

scala

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

通用工厂的Java通用不编译

我有一个CacheListener<T>和一个CacheListenerLoader实现CacheListener<Activity>.

然后我有一个Provider<CacheListenerLoader>Guice,所以类型必须是CacheListenerLoader所以谷歌产生正确的.

第4行无法编译:

CacheListenerLoader listTemp;
OurCacheListener<Activity> t2 = listTemp;
Provider<CacheListenerLoader> prov;
Provider<OurCacheListener<Activity>> temp = prov;
Run Code Online (Sandbox Code Playgroud)

这很重要,因为我试图调用这个方法:

private <T> void put(Class<T> klass, Provider<OurCacheListener<T>> provider)
Run Code Online (Sandbox Code Playgroud)

然后传递Provider和类类型的正确组合,以便在编译时保证类类型查找能够处理给定类的内容.

我将Activity.class和temp传递给我的put方法,并且工作正常并检查类型.关键是上面的第4行不起作用,看起来仿制药在这里让我失望,但我不确定为什么因为它是编译时间的事情.

java generics guice

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

为什么要离开连接(为什么不在where子句中使用条件进行外连接)

如果可以简单地写一个完整的外连接,那么左连接(或者甚至是内连接)的用途是什么

playorm=# select * from trade as a full outer join Account as b on b.id=a.accoun
tid where a.id = a.id;
Run Code Online (Sandbox Code Playgroud)

这最终会返回LEFT内部联接返回的所有相同结果.

或者如果你想要一个内部联接,你可以这样做

playorm=# select * from trade as a full outer join Account as b on b.id=a.accoun
tid where a.id = a.id AND b.id = b.id;
Run Code Online (Sandbox Code Playgroud)

这最终会返回INNER JOIN返回的所有相同结果.

我只是觉得这有点儿很有意思.我本来误以为左外连接将返回条件相匹配+什么空却发现开出的条件都符合这是因为在这种内在的一种奇怪的加入消除了匹配(可能是因为联接是表达之前进行记录匹配这样的一个.accountid为null是where子句中无用的部分......

select * from trade as a inner join Account as b on b.id=a.accountid
here (b.isActive=false OR a.accountid is null) and a.number < 15;
Run Code Online (Sandbox Code Playgroud)

后来,迪恩

sql

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