有没有人找到任何替代Quartz的开源解决方案,他们很满意?
我知道Cronacle是一个备受尊重(且价格昂贵)的闭源解决方案,用于作业调度,但我想确保在走下这条路线之前耗尽开源替代品.
我有一个移动设备通过HTTPS与我服务器上的RESTful API进行通信.其中一个操作是数据同步,用于将脱机时进行的修改推送到服务器,并下拉服务器上并行进行的更新.
我遇到了一个边缘情况,在现有客户端中,同步操作可能会无声地失败.我已升级客户端上的"同步协议"以正确处理条件.理想情况下,我希望让所有旧客户端在尝试同步时告知他们升级时收到消息.
通信就在我的服务器和我的移动客户端之间,所以我意识到我可以返回任意数量的HTTP代码并通知客户端将来显示一条消息,建议用户升级并立即停止同步过程.
是否会被视为对HTTP 426升级所需返回代码的意图的混淆,以使用它来发出信号.我能找到的每个参考文献(IETF RFC 2817,维基百科)都说它用来表示客户端升级到TLS.它是否仅限于定义良好的安全协议(如SSL和TLS),还是HTTP层的通用升级标志,传统上仅用于SSL和TLS?
如果它不是针对这个用例,那么HTTP 303 See Other会被认为更合适,还是有其他代码我缺少?
我们在git存储库上创建了一个标签"2012/02/16".然后我们注意到在Source Tree中,2012和01被表示为文件夹,可以整齐地打开和关闭以显示和隐藏标签.嵌套的标签层次似乎是组织标签的好方法,而不是只有一个平面列表.
这样做有问题吗?
当我做一个git ls-remote时,我看到以下条目:
8430572c89362b875109628c33a18e782aa38488 refs/tags/2012/02/16
d247e38159c8c4998bf8b555edfd7ffe7b945255 refs/tags/2012/02/16^{}
Run Code Online (Sandbox Code Playgroud)
我不确定第二个标签末尾的^ {}字符是什么意思,我想确保我们偶然发现的这种行为不是我们在去利用它来清理我们之前不应该做的事情.标签.
我们在"未嵌套"标签上看不到^ {}个字符.
我有一些遗留代码实现了不推荐使用的接口.这个特定的组件很快就会被弃用并自行删除,因此重构以解决编译器警告的根本原因是没有意义的.相反,我想压制它.但是,我不希望抑制的范围适用于整个班级.
代码最初是:
public class Foo
extends
Bar
implements
DeprecatedBaz,
Qux { ... }
Run Code Online (Sandbox Code Playgroud)
DeprecatedBaz是一个标记为@Deprecated的接口,是第三方框架,意味着我无法删除@Deprecated.我想抑制整个班级的警告而不是弃用.基本上我想写:
public class Foo
extends
Bar
implements
@SuppressWarnings("deprecation")
DeprecatedBaz,
Qux { ... }
Run Code Online (Sandbox Code Playgroud)
但是这是无效的语法,不解析.接下来我希望我能够在导入时做到这一点,但这个SO帖子似乎意味着它必须在课堂上完成.
或者,我认为可能将其应用于所有必须实现接口指令的方法可能会解决问题,但这也不起作用.
所以我似乎不得不在类级别应用注释:
@SuppressWarnings("deprecation")
public class Foo
extends
Bar
implements
DeprecatedBaz,
Qux { ... }
Run Code Online (Sandbox Code Playgroud)
我不喜欢这样,因为如果某人编辑了这个类并引入了引用弃用代码的新代码,那么将会吞下警告.
在这种情况下,有没有办法限制范围?
我是Mockito的新手,在我开始进行大规模重构之前尝试编写一些遗留代码的测试,并且遇到了我期望在代码库中经常看到的以下模式:
...
Foo foo = new Foo(bar, baz);
foo = db.persist(foo); // Save an object to the DB and have the id set
FooTO fooTO = convert(FooTO.class, foo); // Turn foo entity into a foo Transfer Object
Response response = createdResponse(fooTO, foo.getId()); // Prepare a 201 response
return response;
Run Code Online (Sandbox Code Playgroud)
我面临的问题是对db.persist()的正常调用,id将在成功持久化foo实体对象后设置.但是在测试中该字段为空并且我最终在createdResponse调用中获得了NPE.
我已在测试中使用以下内容:
Db db = Mockito.mock(Db.class);
when(db.persist(any(Foo.class))).then(returnsFirstArg());
Run Code Online (Sandbox Code Playgroud)
但我希望能够在返回foo参数之前调用setId(100)或类似的东西.
有没有人有关于如何处理这个问题的见解?
我是否应该想要伪造对createdResponse的调用呢?