- 浏览: 129165 次
- 性别:
最新评论
-
cultivator129:
匿名用户没办法下载,也没找到登陆的地方,大家是怎么登陆的?
signavio-core-components编译初体验 -
511039003:
...
如何使用Guava的缓存管理 -
string2020:
activiti如何整合OSGI
Activiti User Guide -- Activit 用户指南 Part06 -
刺客8882010:
楼主可否给我份Demo,谢谢,控制部分代码在哪里写我不是很清楚 ...
利用Spring动态对Quartz定时任务管理 -
yu120:
有源码吗?
利用Spring动态对Quartz定时任务管理
文章列表
重要说明: 这是一个系列教程,非本人原创,而是翻译国外的一个教程。本人也在学习Swift,看到这个教程对开发一个实际的APP非常有帮助,所以翻译共享给大家。原教程非常长,我会陆续翻译并发布,欢迎交流与分享。
再另,原文发布在我的博客中:iOS Apps with REST APIs(二)
我已准备好到直接跳到了一些对你有用的代码。但是,苹果在iOS9中引入App Transport Security,虽然ATS是保护从你iPhone中发送和接受的数据,但对于开发人员来说的确有点头痛。
ATS要求使用SSL进行数据传输,这对实施来说是非常挑剔的。可悲的是,现在很多服务器是不满 ...
重要说明: 这是一个系列教程,非本人原创,而是翻译国外的一个教程。本人也在学习Swift,看到这个教程对开发一个实际的APP非常有帮助,所以翻译共享给大家。原教程非常长,我会陆续翻译并发布,欢迎交流与分享。另,原教程有第一章,讲述该教程及相关基础概念,感觉没有什么必要翻译,所以这里略过。有兴趣的可以自行上网去找原版教程。
再另,原文发布在我的博客中:iOS Apps with REST APIs(一)
App需求
直接去编码对我们这些码农来说总是很有诱惑力的,但是如果我们事先先搞清楚要做什么,并做好计划,是不是可以让编码更顺利。或者至少我们得对需要编写的应用(App)有一些 ...
如果我们要对一个列表进行排序时,在java中我们通常这么做:
// 我们将User按照排序号进行排序
List<User> userList = this.userService.loadAll();
Collections.sort(userList, new Comparator<User>() {
@Override
public int compare(User lh, User rh) {
if (null == lh && null == rh)
return 0; ...
如何使用Guava的缓存管理
- 博客分类:
- Guava
最近正在重构公司平台中的一些组件,有一些涉及到缓存的处理。发现Guava的缓存还是非常不错的,所以把CachesExplained翻译了一下,供大家一起参考。
首先,看一下使用范例:
LoadingCache<Key,Graph> graphs =CacheBuilde ...
最近打算将工作流引擎设计器使用html5技术进行重构,所以研究了一下html5中绘图技术,今天在这里主要是探讨一下图形之间连线处理算法,之前在网上找到了这篇博文:连线自动路由算法,感兴趣的大家可以参考一下(不过这个是基于GEF的),基于Javascript的尚未找到比较好的解决方案,因此决定自己动手(毕竟后面要实现整个设计器也必须得自己动手)。
图形之间的连线路由算法大致有下面几种:1)拐点路由(Bendpoint Connection Router);2)最短路路由(Shortest Path Connection Router);3)曼哈顿路由(Manhatt ...
编写卓越代码之命名那些事儿 -- 2
- 博客分类:
- 编写卓越代码
为名字附加相关信息
函数参数、变量、配置文件中的属性Key中我们经常会涉及到带有度量信息的名字,如常见的定时任务执行的period,如:
bpm.job.period = 300000
一般我们知道period的单位为毫秒(ms),但是有时候我们会很难清晰的指导该变量值的单位是什么,毫秒、秒、分钟还是小时,幸运一点可以通过注释得到答案,不幸的时候你需要自己测试一下或者读相应的代码才可以知道,如下面这个函数:
Date addWorkTime(Date startDate, int addTime) throws Exception;
那么这里 ...
编写卓越代码之命名那些事儿
- 博客分类:
- 编写卓越代码
循环迭代器的命名
我们在编写循环的时候经常使用i,j,k,itor等等名称,通常我们也知道这是一个循环迭代器的名称,但是你是否写过类似下面的代码:
for(int i = 0; i < clubs.size(); i++){
for(int j = 0; j < clubs[i].members.size();j++){
for(int k = 0; k < users.size(); k++){
if(clubs[i].members[j].id == users[j].id){
...
Eclipse Orion 试用手记
- 博客分类:
- IDE
今天在网站看到Eclipse即将发布了一个基于浏览器的IDE--Orion(猎户座),于是到Eclipse网站上下载了一个试用一下。
Orion在发布的版本是0.4版,可以通过Eclipse Orion链接来下载(文件也不大,在win32版本的大概40多M)。试用步骤如下。
第一步:首先将下载的文件eclipse-orion-0.4-win32.win32.x86.zip进行解压,解压后里面有一个orion.exe的文件,直接点击运行,运行的界面如下:
第二步: 在浏览器中输入:http://localhost:8080/,那么可以看到下面这个页面:
第三步: 登录/ ...
最近又开始研究Activiti这个BPM框架,昨天开始尝试了它的建模工具signavio,在编译的时候遇到了一些问题,经过几番努力终于解决,心里还是有点小成就感。
首先从googlecode网站上可以下载该建模工具的源码,地址为:htt ...
今天同事问我本来集成好的单点登录为什么突然自动登录不了,还真浪费了一个下午,终于找到原因了
我们的一个项目采用了Spengo(可以看这里)集成了Windows的AD进行自动登录,前一段时间还挺正常的,登录到域的用户可以自动登录到系统。这几天新增了服务,重新部署后发现用户不能够自动登录了,同事也费了好大劲检查了各种配置参数,都是没有思路。然后找到了我,我也是弄了好久终于发现是spn注册的问题造成的。
在注册spn时不能够同时授权给两个Windows用户,如果同时授权给了多个用户,那么Windows客户端将不再发送Spengo Token,而是替代成NT LAN manager (N ...
User task
用户任务
Description
描述
A 'user task' is used to model work that needs to be done
by a human actor. When process executes arrives at such a user task, a new task
is created in the task list of the user(s) or group(s) assigned to that task.
用户任务是为需要由人工处理的事务进行建模的。当流程执行到一个用户任务时,一个新的任务 ...
Gateways
网关
A gateway is used to control the flow of execution (or as
the BPMN 2.0 describes, the tokens of execution). A gateway is capable ofconsuming or generating tokens.
网关用来控制流程的执行(或者像BPMN2.0所描述:执行的令牌)。一个网关是可以销毁或产生令牌的。
A gateway is graphically visualized as a diamond shape,
with an ...
Sequence flow
顺序流
Description
描述
A sequence flow is the connector between two elements of
a process. After an element is visited during process execution, all outgoing
sequence flow will be followed. This means that the default nature of BPMN 2.0
is to be parallel: two outgoing sequence flo ...
BPMN 2.0 constructs
BPMN 2.0 构件
Custom
extensions
自定义扩展
The BPMN 2.0 standard is a good thing for all parties
involved. End-users don't suffer from a vendor lock-in that comes by depending
on a proprietary solution. Frameworks, and particularly open-source frameworks
such as Activiti, can ...
Now we can start a new process instance using the id we defined in the process definition (see first line of the XML). Note
that this id in Activiti terminology is called the key.
现在我们就可以使用id来创建一个新的流程实例了(id值在XML定义的第一行中)。注意此处的id在Activiti属于中称之为key。
ProcessInstance processInstance = runtimeServ ...