green's profile我的共享空间PhotosBlogLists Tools Help

Blog


    10/14/2008

    无意中浏览到——杨帆公布“杨帆门”真相

    无意中浏览到——杨帆公布“杨帆门”真相
    连接到其博客,看了看,虽然不知道事件的详细起因,但就看其文笔,和陈述事情的方式和态度,引述的事情因尾,七扯八扯,问题出在哪里已经不言自明;
     
    包括谢亚龙等等,我知道什么人在控制着主要局面,我只感到两个字——恶心!
    世界因你们而恶心!

    groove的使用日志

    groove 2007其实挺好用的,但是也存在几个问题,这里总结一下

    1 突然添加了一个150M的文件夹,导致所有其他客户机无相应,估计算法有问题;

    2 在无响应情况下结束任务会导致系统崩溃,无法和其他人沟通了;

     

    对于2的解决办法为:备份自己的用户名账户,备份工作空间;执行grooveclean -all 然后再将备份的导入,重新来过即可;

    9/22/2008

    我好棒哦,哈哈

        今天看到敏捷思想中关于团队管理中对于大项目处理方式,和我上一段时间给公司的建议完全一致,哈哈,看来我水平还不错啊?!
        想起04年学ipmp的时候,其中的大多数思想都和我想的完全一致——好骄傲(主要原因是以前并没有看过项目管理的书籍),天才!!
        ————狠狠得夸奖自己一下,鼓励!嘻嘻!
    8/24/2007

    小乌龟死了

        我的小乌龟死了, 死得很安静。。。
        最初是眼睛睁不开,并且不吃东西,后来我给买了药,还是比较贵的好药,它似乎不是很喜欢那药,连用了几天,直到有一天,我发现它睁开眼睛了,但是却要死了,肢体很软弱无力,并眼睛已经看不到东西,我知道它要死了,心里有些难过。
        可怜的小乌龟,安静的小乌龟。唉!
        没得选择,这就是命运。对抗命运最有效的办法就是死亡,死亡--是啊,对于很多生命来说,死亡,何尝不是一种解脱!
        尘归尘土归土,祝它在另外一个世界能快乐!失望
    8/7/2007

    走过了,体会过了,其他的,都不重要了

    很久没整理自己将来的目标了,现在整理一下:
    想想,应该再做几件事情:
    1 继续学习外语
    2 构造通用项目框架
    3 自己现有的管理和技术经验怎样做才能发挥到最好呢!现在有点浪费了!
     
    还有,有机会好好读读历史和思想大家的著作,包括中外古今的经典,应该读读,减少人生困惑;
    也要读一下经典的经济学著作,毕竟生活在社会中,也想多赚点钱,多读读,会清醒些。
     
    再踏踏实实的做点事情吧,虽然知道大多数事情未必会有期望中的回报的,今天的我也不苛求那些了,有便有了,没有也没办法。
    低下头辛勤耕作吧,不把收获看得那么重要了。
    生活只是过程,走过了,体会过了,就很不错了,其他的,都不重要了。
    6/12/2007

    firefox和木马

    firefox浏览器不错,很多居心不良者也发现了,现在网上有很多被二次打包的firefox,还有其他各种伪装方式,里边大都给你带上木马,这很危险,千万注意千万注意
    6/11/2007

    处分

    江苏5名官员因无锡水污染事件被处分
      ■宜兴市周铁镇镇长吴旭
      ■周铁镇党委副书记、副镇长陈忠强
      ■周铁镇环境保护监督管理办公室主任莫小峰
      ■宜兴市环保局副局长张盘君
      ■宜兴市环保局环境监察大队周铁中队副中队长冯旭东
     
    发现一个现象,为什么都是副的呢,难道现在副职比正职责任大,那权利呢?!
    6/1/2007

    热门词汇

    娱乐界常用词汇:
         是个歌手就叫巨星;只要不是评委就叫女生或男生;只要是外来的就都叫老师;
    商界:
         和谎言最接近的词汇有专家、接轨、惯例、为了公众利益
    民间:
         和谎言最接近的词汇是:马上就给钱;钱对于我们来说不是问题;孩子,我能骗你吗?你看我都这么大岁数了;
    公司:
         不诚实的公司多半会有这种名字:诚信××、信诚××
    个人:
         做人啊,这个做人啊。。。(特别要注意年长者,十有八九这个人做人就是有问题)
    5/31/2007

    大哥,缘分啊

        出差到上海,早上去楼下吃自助早餐,看到一个和尚,心中想又是骗子吧,不过早餐虽然不特别贵,但也20元(一般谁花二十元吃早餐呢)呢,心想,和尚啊和尚,外面有太多的受苦受难的人,你不去普渡众生,跑这里奢侈!
        我选好食品坐了下来,很快,和尚也和饭店的人打好招呼,说等人,在我前面坐了下来。谈话内容如下:
         和尚:“小师主,这么晚才下来吃饭?赫赫!”
         我(男一号):“嗯,我睡得晚!”
         和尚:“小师主,我告诉你,人生四样东西最重要——健康,快乐,?,?(没记住)”
         我(男一号):“哦,谢谢!”
         和尚:“小师主,我们在这里见面,算是有缘!”
         我(男一号):“嗯!”
         我低头吃饭,没理他,过了好一会儿。
         和尚:“小师主,你是哪里人!”
         我(男一号):“黑龙江!”
         和尚:“哦,那很远哦!”
         我心里想:看来你可能去过。
         我(男一号):“你有事?”
         和尚:“我等人,11点在这里见!”
         我继续吃。许久。
         和尚:“你出差?”
         我(男一号):“嗯!”
         和尚:“公家的还是私人的?”
         我(男一号):“私人!”
         “大老板!”和尚竖起拇指说。
         我(男一号):“......”,不知怎么回答;
         和尚拿出一张名片,“这是我的名片,我们在这里见面,真是有缘”
         我接下名片,微微点了点头。看看上面写着:释广喜,中国大九华山佛教会,心想:九华山,难道还有个大九华山?!礼貌性的收了起来。我继续吃。。。
         和尚:“你外相不错,命非常好”
         我心想,要切入正题了,“哦,是吗?”——我有一搭没一搭的
         和尚:“你的眉毛。。。嘴。。。鼻子。。。耳朵。。。”(都是术语,不记得了)
         和尚:“但是有一样不好”
         “哦?!”我说,心想,流程标准化了,用专业术语那叫——SOP(标准化操作流程)
         我说:“是吗?”
         和尚:“你先吃先吃,吃完后我再跟你详细说”
         我继续吃,一边吃一边想,他这种营销方式,该会用什么样的方式向我要钱呢?终于吃完了!
         我抬起头:“您说吧!”
         和尚:“你。。。。”(解释我如何如何得好)
         和尚:“你有今天,都是前世修来的福气,是你父母留下的”——(妈的,父母都健在,怎么能算是这一辈留下的,可恶)
         和尚:“你看那些捡垃圾的,都是前世作孽,今天受苦受累的”——(看来是活该啊,可是人家至少这么艰难没去偷去抢去骗(像他现在做的)啊)
         和尚:“但是你性格太善良不够狠,要想成功,我送你三个字:稳、准、狠”--我一听,怎么这么熟啊,似乎从哪里听到过?!好像是什么体育术语?!
         和尚:“你很稳,也准但是不够狠”
         和尚:“你五年前有一次机会,但是由于你不够狠,所以失掉了”
         和尚:“你被小人算计过,都是由于你太善良”,坦白说,我正在内心逐一进行核实印证
         可能是和尚太得意了吧,居然去算我的生日,虽然给的是一个范围,但老子的生日把边儿,没蒙对。还有说某年某月某日天气不好,哈哈,错得很,那天出奇的好,看来他今年运气不太好。
         和尚:“你看你的眼角,都是不好的东西造成的”——MD,老子天生长这样,居然被用来算命!?“为了防止你被小人算计,我送你一样东西”——一个红布包,里面是ic卡模样的金黄的卡片,很像商场买鞋啦什么的包装盒里边带的那种金色ic卡片。套子上还印着24k金,我一看:到最后一步啦。
         街上的一幕幕立刻浮现出来,我立刻还回去说:“要钱吗,要钱就算了!”,他一看对我失败了,立刻收回然后站起来说:“这个可是金的,人家老板都花好几百上千块买呢!”
          我没理会:“您还有要说的吗?”
          “小师主,我最后告诉你一句话,钱财是身外之物”转身立刻就离开了——真快!我未作任何反应,心想:“钱财也许是我的身外之物,但肯定不是你的身外之物!人渣!”
         他站起来找到服务员,继续演戏,说是什么什么肯定有个和尚最近在这里吃过饭什么的,以证明他来这里确实是在等人,而不是来“推销”他所谓的金卡!是啊,终于明白为什么经常看到“和尚”模样的人出入高级或比较的场所,事实上他们很少消费,更多的是在寻找猎物!

    中国需要真正的精神领袖

        浮躁啊浮躁,可是我们又能怎样呢?!没人愿意浮躁,可是形势却走到了今天这一步。
        物质层面一通混战,精神思想层面又一通混战!物质层面的混战是什么都有,精神层面也什么都有。
        商战中的英雄不是没有,只是很少,相信很多人也喜欢真正的战斗,如果不是通过真正的战斗赢来的结果,那心中总不是那么有成就感的。
        正如股市,昨天的暴跌,凤凰卫视和其他电台不断评价,里边经常出现的词语就是“羊群效应”,其实何止是在暴跌的时候才提到“羊群效应”呢,暴涨的时候何尝不也一样。形势如此,如果自认为头脑足够清醒的话,完全可以混在羊群中,从中渔利,如果你能控制自己,那么你应该不会是羊,但是如果控制不了,那么你就是羊了,最终沦为牺牲品!
        “羊群效应”在我们经济生活中的其他方面也比比皆是,所以常常会发现,太多的时候赚钱不是用实力来说话的,而有实力的往往却生不逢时。是什么原因呢,我想也没什么可说的!
        但终究我还是要靠实力去战斗,心里不平衡是有的,不和谐也很多,但立足现实,还要踏踏实实一步一步走的。每每和监察部门的人在一起,听他们开会的内容,总让我感觉振奋,感觉又有希望了,说心里话,对于我来讲,没有比“构建和谐社会”更实际更有意义的话了。先勇于面对问题,他反映了一种态度,才能让大家愿意等待。用论坛上的一个惯用语就是,我顶!!
        震荡也没什么不好,相当于用筛子筛东西,有时候我们要留下剩在筛子中的,有时候我们要留下筛出去的,不管怎样,还是要分开了清楚些,留下我们要的,去掉我们不要的。
        很想远离政治,可是他又和我们息息相关,早在60年代的政治风波就影响我们的家族到现在,到我这一代一样没有完全扭转过来,他如此深刻的影响着我们的生活。
        所以更多的时候我们是在等待,在小心观察。对于不能掌控的东西,我们投过去的目光更多是期盼,准确来说应该是企盼吧,然后低下头踏踏实实的工作。
        说着说着跑题了,目前我们的危机不仅是诚信的问题。记得过去的几年一直提倡说加强青少年的思想道德教育,成年人都存在问题,真不知如何教育未成年人,从学校里出来的我,没少吃诚信的亏,到现在,虽然不是滑头滑脑的家伙,但是却是非常谨慎的家伙的。人们再提诚信,我都感觉可笑了--可悲啊。好在朋友们彼此还保持诚信的处世方式,那是最后的一片净土,如果这个都没有,人活着得多可怜啊!!可是对于陌生人,除了严谨的控制,我什么都不相信!就这样。
        说过诚信,再说道德,林林总总,网路上有各式各样的想法,有的人也许真是思考的结果,有很多人却不是。这里边有真正的英雄,也有浑水摸鱼和哗众取宠者,至少对于我们最好不要轻易评价,也许有一天,其中的某个人可以让我们看清这世界,理顺我们心中的迷惑。
        “和尚”也许该靠不住了吧,不知怎么回事,和尚也卷入我们的经济大潮中了,真的和尚也有,假的也有。真和尚进来的结果,只是让我有一种感觉,不知道对不对,就是佛的理论难道只是骗人的把戏不成?!
        历史上可以支撑人精神的东西一个个开始土崩瓦解,现在也许我们感觉很乱,也许那正是人们开始觉醒的开始!
    5/10/2007

    mysql Data truncation错误

    注意,这是一个关于字符集编码的错误:
    大体错误提示应该有这种字样:Data truncation: Data too long for column 'NEWSTRINGVALUE_' at row 1
     
    解释:一般情况下是由于你要加入到对应列的字符集和当时数据库中该列的字符集的字符集编码不一致,如utf-8对应gb2312等等,所以只要调成一致的就可以了。
     
    补充说明:大多数时候,在mysql中建立数据库的时候都会指定字符集,而如果没有特别指定,一般来说,新建的表对应的列也都是取得当前该数据库的默认字符集(mysql在这部分是非常灵活的),所以如果你用jdbc连接过来的话,请注意jdbc中url指定的字符集编码是否和当前数据库字符集一致,否则会有问题的!
    5/2/2007

    快速安装xwiki

    记得以往曾经安装过xwiki,现在到了1.0rc3,网络上有一些部署指南,但比较老了,新的方法有所变化
    现在比较简单,以tomcat5.5.23为例:
        1 解压xwiki-1.0-rc-3.war包中的文件到tomcat的webapp目录下新建的名为xwiki的一个文件夹内
        2 建立mysql对应数据库,因为该项目的hibernate默认配置文件中指定的数据库用户名密码都是xwiki,所以干脆也建立一个xwiki数据库,用户名密码也都是xwiki就可以了
        3 把web.xml、velocity.properties和xwiki.cfg文件中“ISO-8859-1”替换为“UTF-8”
        4 ok了,运行
     
    总结:我没有试验过不建立空的数据库是否可以,有兴趣的可以试验一下,现在xwiki自己可以建立相应的表和初始数据了,这些都不需要我们做了。
    不过还有点问题:运行起来控制台提示如下:
    com.xpn.xwiki.XWikiException: Error number 3201 in 3: Exception while saving doc
    ument XWiki.CalendarEvent
    Wrapped Exception: Error number 13012 in 3: Exception while saving links
    Wrapped Exception: null
            at com.xpn.xwiki.store.XWikiHibernateStore.saveXWikiDoc(XWikiHibernateSt
    ore.java:314)
     
    我看xwiki自己的jira系统说该bug又打开了,看来以前没解决彻底,没时间了解为什么,等待吧
    4/12/2007

    jbpm的几个问题(转)

    1.需要研究出怎样用Struts开发出一套获取用户任务列表的页面。
    -----------------------------------------------
    JSF是对structs友好的,迁移起来不是很困难的

    2.任务的管理需要身份管理。jBPM提供了一套身份管理的机制。但是,显然我们不能把应用程序的身份管理交给jBPM的身份管理模块来维护。我们需要把jBPM的身份管理模块去除,把jBPM的任务和自己应用程序的身份数据库整合起来。
    --------------------------------------------------
    这个很好做,task一般都和swimlane挂钩,而jbpm里身份认证只是靠一个actorId,String类型的,可以把用户名或者工号作为actorId,就把你们的身份系统和jbpm结合起来了
    swimlane可以用expression解析,也可以用assignmentHandler,用assignmentHandler最简单,可以直接挂接到jbpm外部去查你自己的数据库。而expression却非常方便,可以直接写表达式,但是不幸的是,jbpm号称他的identity 是可插拔的,他的代码却把org.jbpm.identity.ExpressionAssignmentHandler耦合到了他的代码里,竟然是一个 String字符串,他的expression解析最终也是靠那个String forClass出来一个Handler类来处理的。这个时候我们只需要自己重写一个ExpressionAssignmentHandler并且把 JpdlXmlReader里相应的字符串替换掉就可以了,以后你就能在自己的流程文件里写自己定义的表达式,然后使用你自己的身份系统

    4.JBoss Seam容器在jBPM中有广泛的应用,也必须加以了解。
    -----------------------------------------------
    可以不用了解,jBPM里没有任何seam的代码,jbpm 04年就出来了,而seam也就是最近的事情,JBoss Seam是一个lightweight的符合SOA的框架,jbpm可以作为其中的一部分,也可以单独使用

    jbpm也有不完善的地方,比如他对于并发子流程就没有支持,只能靠修改原代码实现
    最近才为公司用jbpm做了一套工作流系统,用的C/S架构,有空多交流
    jeffreyxu@gmail.com
    4/11/2007

    第11章 任务管理

     
    Jbpm的核心业务是持久化流程执行的能力,对于管理任务和个人任务清单来说这是一个非常重要的特性,Jbpm允许指定一段软件描述所有人的任务中处于等待状态的流程。
    11.1 任务
    任务是流程定义的一部分,它们定义了在流程执行期间任务实例怎样被创建和分配。
    任务可以在task-node和 process-definition中定义,通常使用的方式是在一个task-node里定义一个或多个任务,这种情况下,task-node代表一个将由用户完成的任务,并且流程执行将一直等待直到参与者完成这个任务,当参与者完成任务时,流程执行将继续。当在一个task-node中指定多个任务时,默认的行为是等待所有任务完成。
    任务也可以被指定在process- definition。指定在process-definition的任务可以通过名称查找到并且在task-node里引用或者在内部动作中使用。事实上,所有给定名称的任务(包括在task-node中定义的任务)都可以在流程定义(process-definition)中通过名字查找到。
    任务名称在整个流程定义中必须是唯一的。任务可以被指定一个优先级,这个优先级在任务的实例创建时将被作为每个任务实例的初始优先级,任务实例的初始优先级可以在以后被修改。
    11.2 任务实例
    任务实例可以被分配一个actorId(java.lang.String)。所有的任务实例被存储在数据库中的一张表里面(JBPM_TASKINSTANCE),通过查询这张表可以得到给定actorId的所有任务实例,进而获取特定用户的任务清单。
    Jbpm的任务清单机制可以组合Jbpm任务和其他任务,甚至那些任务与流程执行毫不相干,这样,Jbpm开发者可以很方便的组合Jbpm流程任务和其他应用的任务到一个集中的任务清单仓库中。
    11.2.1 任务实例生命周期
    任务实例的生命周期是很直观的:创建后,任务实例可以被随意地开始,然后任务实例可以被结束,这意味着任务实例被标记为完成。
    注意,为了灵活性,分配不是生命周期的一部分,所以任务实例可以被分配也可以不被分配,任务实例的分配不会影响任务实例的生命周期。
    任务实例典型的创建是通过流程执行进入一个 task-node(使用方法TaskMgmtInstance.createTaskInstance(…)),然后,用户接口组件会使用 TaskMgmtSession.findTaskInstancesByActorId(…)查询数据库获取任务列表,然后,在收集了用户输入后,UI 组件调用TaskInstance.assign(String)、TaskInstance.start()或者TaskInstance.end (…)。
    任务实例依靠日期属性维护它的状态:创建、开始和结束。这些属性可以通过任务实例上它们各自的getter方法访问。
    通常,完成的任务实例用一个结束日期做了标记,所以它们不能被以后的任务列表查询获取,但是它们仍然存在于JBPM_TASKINSTANCE表中。
    11.2.2 任务实例和图执行
    任务实例是参与者任务清单(tasklist)中的项目,任务实例可以作为信号,当一个信号任务实例完成时,可以发送一个信号到它的令牌继续流程执行。任务实例可以被阻塞,这意味着在任务实例完成之前相关令牌(=执行路径)不允许离开任务节点。默认情况下,任务实例是信号非阻塞的。
    如果多于一个任务实例与一个任务节点关联,流程开发者可以指定任务实例的完成怎样影响流程的继续。下面是可以给任务节点的signal属性设置的值:
    l        last:这是默认值。当最后一个任务实例完成时继续执行;当在节点入口处没有任务创建时,继续执行。
    l        last-wait:当最后一个任务实例完成时继续执行;当在节点入口处没有任务创建时,执行在任务节点等待,直到任务被创建。
    l        first:当第一个任务实例完成时继续执行;当在节点入口处没有任务创建时,继续执行。
    l        first-wait:当第一个任务实例完成时继续执行;当在节点入口处没有任务创建时,执行在任务节点等待,直到任务被创建。
    l        unsynchronized:总是继续执行,不管任务是否创建和完成。
    l        never:执行不再继续,不管任务是否创建和完成。
    任务实例可以基于运行时的计算创建,如果那样的话,需要添加一个ActionHandler到任务节点的node-enter事件,并且设置属性create-tasks=“false”。下面是这样一个动作的实现例子:
    public class CreateTasks implements ActionHandler {
     public void execute(ExecutionContext executionContext) throws Exception {
        Token token = executionContext.getToken();
        TaskMgmtInstance tmi = executionContext.getTaskMgmtInstance();
         
        TaskNode taskNode = (TaskNode) executionContext.getNode();
        Task changeNappy = taskNode.getTask("change nappy");
     
        // 现在, 相同任务的两个任务实例被创建
        tmi.createTaskInstance(changeNappy, token);
        tmi.createTaskInstance(changeNappy, token);
     }
    }
    如示例所展示,任务可以在指定的任务节点中创建,它们也可以被指定到process-definition,并且从TaskMgmtDefinition获取。TaskMgmtDefinition用任务管理信息扩展了ProcessDefinition。
    标识任务示例完成的API是TaskInstance.end(),你可以在end方法中指定一个转换,如果这个任务的完成会触发继续执行,则会通过指定的转换离开任务节点。
    11.3 分配
    流程定义包含任务节点,任务节点(task-node)包含一个或多个任务,任务作为流程定义的一部分是静态描述。在运行时,任务导致任务实例的创建,一个任务实例对应某人任务列表中的一个入口。
    11.3.1 分配接口
    通过接口AssignmentHandler进行任务实例分配:
    public interface AssignmentHandler extends Serializable {
     void assign( Assignable assignable, ExecutionContext executionContext );
    }
    当任务实例被创建时分配处理的实现被调用,在那时,任务实例可以被分配到一个或多个参与者。AssignmentHandler实现将调用分配方法(setActorId或 setPooledActors)分配任务,可以分配一个任务实例或者一个泳道实例swimlaneInstance(=流程角色)。
    public interface Assignable {
     public void setActorId(String actorId);
     public void setPooledActors(String[] pooledActors);
    }
    任务实例和泳道实例都可以被分配到一个用户或者共享参与者。分配任务实例到一个用户,调用Assignable.setActorId(String actorId);分配任务实例到候选的共享参与者,调用Assignable.setPooledActors(String[] actorIds)。
    流程定义中的每个任务都可以与一个分配处理实现相关联,用来完成运行时的任务分配。
    当流程中的多个任务将要分配给相同的人或者参与者组时,考虑使用泳道
    考虑到AssignmentHandler的重用,每个AssignmentHandler的使用可以在processdefinition.xml中配置。请参考“16.2 委托”了解怎样添加分配处理配置的更多信息。
    11.3.2 分配数据模型
    下面是管理分配任务实例和泳道实例到参与者的数据模型,每个任务实例拥有一个actorId或一组被共享的参与者。
    11.1 分配模型类图
    actorId对任务负责,而共享的参与者表示候选者集合,如果它们获取任务,则可以负责任务。actorId和共享参与者具体使用哪个是可选的,两者也可以结合使用。
    11.3.3 推模式
    任务实例的actorId表明对给定任务负责,而任务实例的共享参与者是任务的候选参与者。典型情况下,任务实例的actorId指向一个用户,共享参与者可以指向多个用户和/或用户组。
    用户的任务清单是所有以用户作为actorId的任务实例,这个清单可以使用TaskMgmtSession.findTaskInstances(String actorId)获得。
    11.3.4 拉模式
    另一方面,共享的任务(译者注:共享任务即不仅是由一个用户负责的)是提供给共享参与者中所引用的用户的。获取共享任务一般需要两步操作:1)从身份组件中获取给定用户的所有组2)为结合了用户的 actorId和指向用户组的actorId获取所有共享任务清单(译者注:这段话不太好理解,解释如下――任务指向一个actorId,在Jbpm中并没有强制限制该actorId必须为单个用户或者用户组,所以我们在实际应用中也可以把actorId作为一个用户组。假如有一个用户为user1,他属于用户组group1,在流程中有些任务分配到了user1,而其它又有些任务分配到了group1,如果我们要取user1的所有共享任务,则即需要获取分配到user1的共享任务,也需要获取分配到group1的共享任务)。可以使用方法 TaskMgmtSesion.findPooledTaskInstances(String actorId)或TaskMgmtSession.findPooledTaskInstances(List actorIds)获取提供给指定用户的共享任务清单,这些方法会返回actorId为空(null)以及共享参与者中某个与给定的actorIds中的某个相匹配的任务实例。
    为了防止多个用户在同一个共享任务上工作,使用用户的actorId修改任务实例的actorId就可以了。这样,任务实例将不会出现在共享任务清单中,而只会存在于用户个人的任务清单里。设置任务实例的actorId为空(null),则会把任务实例放回共享任务里。
    11.4 任务实例变量
    任务实例可以拥有它自己的变量,并且也可以“看到”流程变量。任务实例通常是在执行路径(=令牌)中创建,与令牌之间的父子关系相似,这会在令牌和任务实例之间创建一个父子关系。正常的范围规则适用于相关令牌的任务实例变量和流程变量之间,有关范围的更多信息可以在“10.4 变量”找到。
    这意味着任务实例可以“看到”它自己的变量,另外还有它所关联令牌的所有变量。
    控制器可以用来在任务实例范围和流程范围的变量间创建、组装和提交变量。
    11.5 任务控制器
    在任务实例创建时,任务控制器可以组装任务实例变量,并且当任务实例完成时,任务控制器可以提交任务实例的数据到流程变量。
    注意,任务控制器不是强制使用的,即使不使用任务控制器,任务实例也能够“看到”与它的令牌相关的流程变量,当你想要做如下事情时使用任务控制器:
    l        在任务实例中创建变量的拷贝,这样任务变量的中间更新不会影响到流程变量,而是直到处理完成后拷贝才被提交回流程变量。
    l        任务实例变量与流程变量不是一一对应的。例如,假设流程有变量“sales in januari”“sales in februari”和“sales in march”,而任务实例所使用表单可能需要显示的是三个月的平均销售量。
    任务用来收集用户输入,但是目前有很多可以向用户展示任务的用户接口,例如web应用、swing应用、及时消息、电子邮件表单…因此任务控制器在流程变量(=流程上下文)和用户接口应用之间起到了桥的作用,任务控制器为用户接口应用提供流程变量的视图。
    任务控制器在流程变量到任务变量之间进行转换(如果需要)。当任务实例被创建时,任务实例负责从流程变量提取信息,并且创建任务变量,任务变量作为用户接口表单是输入,并且用户输入可以存储在任务变量里;当用户结束任务时,任务控制器负责基于任务实例数据更新流程变量。
    11.2 任务控制器
    简单的情形是,在流程变量和表单参数之间是一对一的映射,任务控制器在task元素中指定,这种情况下,默认的Jbpm任务管理器可以被使用,它包含一个variable元素列表,variable元素表示流程变量怎样被拷贝到任务变量。
    下面的例子展示了怎样基于流程变量的拷贝创建任务实例变量:
    <task name="clean ceiling">
     <controller>
        <variable name="a" access="read" mapped-name="x" />
        <variable name="b" access="read,write,required" mapped-name="y" />
        <variable name="c" access="read,write" />
     </controller>
    </task>
    name属性指向流程变量的名称,mapped-name属性是任意的,用来指向任务实例变量的名称。如果忽略mapped-name属性,则mapped-name默认与name属性相同。注意,mapped-name也被用来在web应用中作为任务实例表单的域标签。
    access属性指定了如果在任务实例创建时变量被拷贝,是否需要在任务结束时把它写回流程变量。这个信息可以被用户接口所使用,进行适当的表单控制。access属性是可选的,默认值是“read,write”。
    任务节点(task-node)可以拥有多个任务,而开始状态(start-state)只能有一个任务。
    如果在流程变量和表单参数之间简单的一对一映射太过约束,你也可以编写你自己的TaskControllerHandler实现,下面是TaskControllerHandler接口:
    public interface TaskControllerHandler extends Serializable {
     void initializeTaskVariables(TaskInstance taskInstance, ContextInstance contextInstance, Token token);
     void submitTaskVariables(TaskInstance taskInstance, ContextInstance contextInstance, Token token);
    }
    下面展示了怎样在任务中配置你自己定制的任务控制器:
    <task name="clean ceiling">
     <controller class="com.yourcom.CleanCeilingTaskControllerHandler">
        -- here goes your task controller handler configuration --
     </controller>
    </task>
     
    11.6 泳道(swimlane)
    泳道是流程角色,它是定义流程中的多个任务由相同参与者完成的一种机制。在第一个任务实例为指定泳道创建后,参与者将被流程记住,以被在同一泳道中的后续任务所使用。泳道有一个分配,因此所有引用泳道的任务不需要再指定分配
    当给定泳道的第一个任务被创建时,泳道的 AssignmentHandler被调用,Assignable被传递到AssignmentHandler,将会成为泳道实例(SwimlaneInstance)。需要知道的是,给定泳道中的所有任务实例的分配都被传播到泳道实例,这个行为是被作为默认实现的,因为获取任务进行处理的人在履行某个流程角色(译者注:也就是说在某个泳道内),因此所有后续对泳道的任务实例的分配会自动转到用户。
    泳道是从UML活动图中借来的术语。
    11.7 开始任务中的泳道
    泳道可以与开始任务关联,用以捕获流程的发起者。
    任务可以在start-state中指定,该任务与泳道关联,当这个任务的一个新的任务实例被创建时,当前已经过鉴定的参与者可以使用 Authentication.getAuthenticatedActorId()(参考17.2 鉴定)获取(译者注:这时创建开始任务时,自动进行的),并且该参与者存储在开始任务的泳道里。
    例如:
    <process-definition>
     <swimlane name='initiator' />
     <start-state>
        <task swimlane='initiator' />
        <transition to='...' />
     </start-state>
     ...
    </process-definition>
    象其它任何任务一样,也可以向开始任务添加变量用来定义与任务关联的表单。请参考“11.5 任务控制器”。
    11.8 任务事件
    任务可以拥有所关联的动作。任务有四个标准的事件类型定义:task-create,task-assign,task-start,和task-end。
    当一个任务实例被创建时task-create事件被激活。
    当一个任务实例被分配时task-assign事件被激活。注意:在这个事件中执行的动作里,你可以用executionContext.getTaskInstance().getPreviousActorId()访问前一个参与者。
    当TaskInstance.start()被调用时task-start事件被激活。这可以被用来标识用户在这个任务实例上已经开始工作。是否开始一个任务是可选的。
    当TaskInstance.end()被调用时task-end事件被激活。这标志了任务的完成,如果任务与流程执行相关,这个调用会触发流程继续执行。
    因为任务可以拥有事件以及相关联的动作,所以异常处理也可以在任务上被指定。有关异常处理的更多信息,请参考“9.7 异常处理”。
    11.9 任务定时器
    在节点上,定时器可以在任务上被指定。请参考“12.1 定时器”。
    对于任务的定时器需要指明的是:任务定时器的 cancel-event可以被定制。默认情况下,当任务被结束时(=完成)任务上的定时器将被取消,在是通过在定时器上使用cancel-event属性,流程开发者可以定制诸如task-assign或task-start。cancel-event支持多个事件,通过在属性中指定一个用逗号分割的列表,可以组合cancel-event的类型。
    11.10 定制任务实例
    任务实例可以被定制。最简单的方式就是创建 TaskInstance的子类,然后创建一个org.jbpm.taskmgmt.TaskInstanceFactory的实现,并在 jbpm.cfg.xml中设置配置属性jbpm.task.instance.factory为该实现的完整类名。如果你使用一个 TaskInstance的子类,还需要为该子类创建一个hibernate映射文件(使用hibernate的extends=” org.jbpm.taskmgmt.exe.TaskInstance”),然后在hibernate.cfg.xml中添加该映射文件到映射文件列表。
    11.11 身份组件
    用户、组和权限管理一般都被称为身份管理。Jbpm包含了一个可选的身份组件,它可以很容易的被企业自己的身份数据存储所替换。
    Jbpm的身份管理组件包含了组织知识模型。任务分配典型的需要由组织知识来完成,因此,这意味着组织知识模型描述了用户、组、系统以及它们之间的关系。作为可选的,权限和角色也可以被包含进组织模型。数个学术研究尝试的失败表明,没有一个通用的组织模型可以适用于所有组织。
    Jbpm的作法是定义一个参与者作为流程的实际参与者,参与者通过它的ID进行标识,称为actorId,Jbpm只知道actorId并且为了灵活性用java.lang.String表示,因此任何组织模型知识及其数据结构都在Jbpm核心引擎之外。
    作为对Jbpm的扩展,我们将提供(以后)管理简单的“用户-角色”模型的组件,用户和角色之间的多对多关系与J2EE和servlet规范中定义的模型是一致的,这可以作为一个新的开发起点,感兴趣的话可以查看jboss jbpm jira中的问题跟踪来获取更多详细资料。
    注意,实际被用在servlet、ejb和portlet规范中的“用户-角色”模型不足以满足任务的分配处理,该模型在用户和角色之间是一个多对多的关系,不包括流程中用户有关的组和组织结构信息。
    11.11.1 身份模型
    11.3身份模型类图
    黄色的类是下面将要讨论的有关表达式分配处理的相关类。
    User表示用户或服务。Group是任何类型的用户组,Group可以被嵌套,用来建模一个团队、一个业务单元、以及整个公司的关系,组有类型,用来在不同等级的组之间进行区分,例如 haircolor组。Membership表示用户和组之间的多对多关系,membership可以被用来表示公司中的一个职位,membership 的名字可被用来表示用户在组中的角色。
    11.11.2 分配表达式
    随同身份组件提供了一种实现,即在进行任务分配期间通过表达式计算参与者。这里有一个在流程定义中使用分配表达式的例子:
    <process-definition>
     ...
     <task-node name='a'>
        <task name='laundry'>
          <assignment expression='previous --> group(hierarchy) --> member(boss)' />
        </task>
        <transition to='b' />
     </task-node>
     ...
    分配表达式的语法如下:
    first-term --> next-term --> next-term --> ... --> next-term
     
    where
     
    first-term ::= previous |
                   swimlane(swimlane-name) |
                   variable(variable-name) |
                   user(user-name) |
                   group(group-name)
     
    and
     
    next-term ::= group(group-type) |
                  member(role-name)
     
    11.11.2.1第一术语first-term
    表达式以从左到右的顺序被分解,first-term指定了身份模型中的一个用户或组,后续的术语的计算基于这个中间的用户或组。
    privious的意思是任务被分配到当前已被鉴定的参与者,这意味着参与者完成了流程中的前一个步骤。
    swimlane(swimlane-name)的意思是用户或组从指定的泳道实例中取得。
    variable(variable-name)的意思是用户或组从指定变量实例中取得。变量实例可以包含一个java.lang.String,这种情况下,用户或组从身份组件获取;或者变量实例包含一个用户或组对象。
    user(user-name)的意思是给定的用户从身份组件中取得。
    group(group-name)的意思是给定的组从身份组件中取得。
    11.11.2.2第二术语next-term
    group(group-type)获取用户的组,这意味着前一个术语必须结果为一个用户,这个术语会使用给定的group-type在所有的membership中为用户搜索组。
    member(role-name)从组里得到用户所履行的角色,前一个术语必须结果为一个组,这个术语在组中为用户搜索与给顶的role-name相匹配的membership。
    11.11.3 移除身份组件
    当你想要为组织信息使用自己的数据源时,例如你们公司的用户数据库或者ldap系统,你可以拔除身份组件,你唯一要做的就是在hibernate.cfg.xml中删除下面的行…
    <mapping resource="org/jbpm/identity/User.hbm.xml"/>
    <mapping resource="org/jbpm/identity/Group.hbm.xml"/>
    <mapping resource="org/jbpm/identity/Membership.hbm.xml"/>
    ExpressionAssignmentHandler 依赖于身份组件,因此你将不能使用它。万一你想重新使用ExpressionAssignmentHandler并且绑定它到你自己的用户数据存储,你可以从ExpressionAssignmentHandler继承并且重写getExpressiontSession方法。
    protected ExpressionSession getExpressionSession(AssignmentContext assignmentContext);
    4/5/2007

    JDBC Thin for All Platforms

    JDBC Thin for All Platforms


    classes12.jar (1,594,191 bytes) - for use with JDK 1.2 and JDK 1.3


    classes12_g.jar (2,038,127 bytes) - same as classes12.jar, except that classes were compiled with “javac -g” and contain some tracing information.


    classes12dms.jar (1,601,843 bytes) - same as classes12.jar, except that it contains additional code`to support Oracle Dynamic Monitoring Service.


    classes12dms_g.jar (2,046,467 bytes) - same as classes12dms.jar except that classes were compiled with “javac -g” and contain some tracing information.


    ojdbc14.jar (1,540,457 bytes) - classes for use with JDK 1.4 and 1.5


    ojdbc14_g.jar (1,932,834 bytes) - same as ojdbc14.jar, except that classes were compiled with “javac -g” and contain some tracing information.


    ojdbc14dms.jar (1,548,006 bytes) - same as ojdbc14.jar, except that it contains additional code`to support Oracle Dynamic Monitoring Service.


    ojdbc14dms_g.jar (1,940,478 bytes) - same as ojdbc14dms.jar, except that classes were compiled with “javac -g” and contain some tracing information.


    orai18n.jar (1,645,109 bytes) - NLS classes for use with JDK 1.2, 1.3, 1.4, and 1.5. This jar file replaces the old nls_charset jar/zip files.


    ons.jar (48,492 bytes) - for use by the pure Java client-side Oracle Notification Services (ONS) deamon.


    demo.tar (604,160 bytes) or demo.zip (529,267 bytes) - contains sample JDBC programs.

    16位德国JAVA专家在一起讨论“在下面12个月中,我们应该学习什么?

     

    • 网络服务将会膨胀,但是前提条件是必须保持整洁的情况下。
    • EJB 3 和 Netbeans 是非常值得我们在上面花费时间的, 它们都比以前的版本要完善得多,虽然之前它们的名声并不是那么好。
    • Middleware (例如 workflow and Rules Engines) 关注的是团队开发,但是想进入这样一个团体的障碍是很高的。
    • Struts会继续称霸JAVA WEB frameworks, 尽管它已经不是最优秀的技术了。
    • 非常多的公司将继续使用 Java 1.4, 同时关注着Java 1.6。
    • Service Orientated Architecuture (SOA)是一个非常不错的想法,但是目前为止并没有太多的project在使用它。
    • IDE’s (Netbeans / Eclipse / JDeveloper) 会给我们带来很多好处, 前提条件是它们必须被low level工具支持 (例如 Ant 和 Maven).

    原文:
    25th July 2006 - What Technologies should I be learning in the next months?
    Hello!
    hey Paul, I'm going to be a bit delayed, will be back in about 10 min
    evening
    Hi, here is Felipe Gaucho from Nancy / France
    Felipe, Comment Cava?
    is there a moderator or at least a manager of this meeting ?
    hey this is Philip from Charlotte, NC , USA
    I speak english only WIDTH=15 HEIGHT=15
    I suppose it is me :-&gt; - This is Paul Browne , one of the guys who came up with the meetup idea at the last (real) Dublin Java meetup!
    So, what are you guys going to be learning over the next couple of months?
    hi Paul.. please introduce the goals of the meeting
    a yes, the subjects for studies..
    Aim is to talk over what technologies people should be learning in the next 12 months ....
    I suggest the power trio: WebServices + EJB3 + JPA
    JPA?
    Java Persistence API (JPA)
    WebServices = JAX-WS?
    WebServices (JAX-WS) + EJB 3 + Java Persistence API
    the idea: first of all to create a XML Schema - a XSD
    after that, create the Java classes using JAXB
    then create a Web Service to consume such XML data...
    at the backoffice, use EJB3 (POJO) to persist it through JPA
    that is my idea... open for suggestions
    Jakub (organiser of the Real Dublin Java meetup) described EJB 3 as 'a pig with lipstick'. What do you think?
    I think EJB suffer a lot of prejudice due to the bad feeling about EJB 2
    hey Guys
    the EJB 3 is much more clean and easy for using...
    i would say EJB3 is much better than a pig with lipstick
    (sorry , last comment sounded very negative :-)
    its clean, POJO based, and much more useable
    but EJB 3 is POJO anyway
    I am a big fan of Spring, why should I move (back) to EJB?
    what has been introduced with EJB 3
    because EJB becomes a mature technology
    well, that is my notion about what we need to study for the next months...
    Don't get me wrong , I like the Direction that EJB 3 is going in !
    Sorry, got logged out ...
    What sort of new features in EJB3 should I be learning?
    the best feature seems to be the hability to map the POJO to the database using annotations...
    greetings
    I'm guessing that the annotations are quite interesting (as opposed to xml configuration). Anything else I should know for the job interviews?
    annotations is great because dispose all that maping files.. goodbye Hibernate WIDTH=15 HEIGHT=15
    ironically, I'm just beginning to use Hibernate (again :-) Problem is that the client uses an older application server. What do other people think of EJB3?
    sorry guys, I don't want to flame against Hibernate or Spring.. I am just positive about the new technologies..
    yeah, the obsolete servers installed everywhere is the great problem of EJB3.. I guess it will take a while until we have conditions to put it all in production...
    I am dealing with Glassfish and NetBeans 5.5 here... very good environment..
    What I'm learning for the next months is slightly different ....
    it's more in the middleware / front end section - so I agree on the web services part (or at least XML over HTTP consumed by Ajax clients)
    Middleware = workflow (looks like Visio Diagrams, but have Java code that you can execute e.g. jBPM from JBoss) and ...
    a question: I am having a lot of problems trying to map the XML schema to annotated POJOs.. do you know how to do that ?
    ... Rule Engines (e.g. Drools from JBoss - write in Excel deploy anywhere)
    BPM... very interesting.. on of my last jobs in Brazil was going to this direction...
    ;workflows like that seem like the way forward and a viso style diagram can be an easy way to explain to a non-technical client
    Front end , some sort of Ajax enabled framework will (finally) replace struts (end of what paul thinks!)
    Stephen, found the workflow very good because clients like pretty pictures :-)
    ajax-enabled JSF ...
    the problem os BPM is that it is usefull only on big comapnies, large systems...
    <FONT COLOR="#117fec">fancy pics always help WIDTH=15 HEIGHT=15
    ok, for me 'only big companies' is a help , as they have the money to pay a consultant like me :-)
    financial software or heavy comercial applications justify BPM.. small business are can be overworked with such technology
    it is dificult to understand and even learn BPM away from large projects
    <FONT COLOR="#117fec">I agree, smaller companies adopt the "JFDI" methadology
    JFDI ??
    There is some mileage in jBPM at the medium (not small) part - I'm using it on a small(ish) project to sequence tasks
    JFDI-&gt;Just F*$????ing do It
    You find JFDI in the bigger companies as well!
    WIDTH=15 HEIGHT=15 WIDTH=15 HEIGHT=15 ALT=":)"> WIDTH=15 HEIGHT=15
    Good point about workflow though - it's chicken and egg, you know it will be useful, but it's hard to find a (small) project to learn it with.
    I am not a english speaker ... and I don't know the slangs... funny
    Is anybody using JSF with Ajax (coming back to an earlier comment)
    just demos to impress my contractors WIDTH=15 HEIGHT=15
    Question&gt; So if we were able to pick our perfect System architecture, what would it be?
    Stephen , do you want to go first?
    I am planning to try the Architect Certification
    perfect: clients (web/swing) -&gt; services (jax-ws) -&gt; EJB3 -&gt; JPA -&gt; database
    I have been very impressed with what Jake has been saying about Ruby o rails and it's ability to get a prototype complete very quickly
    have you looked at Seam?
    no what is Seam?
    well, learn Tiger 5.0 is very important too...
    <a href="http://www.jboss.com/products/seam" target="_blank">http://www.jboss.com/products/seam</a>
    it bring toegther jBPM/JSF/EJB3
    I've been looking at seam, as it plays nicely with jBPM and Drools (JBoss rules)
    tiger is so yesterday - learning Mustang is the important one - JAX-WS 2 (rocks!) - JAXB2 (amazing)
    My problem was that if you don't want to use JSF (e.g. use Axis), the documentation is not very clear
    I would like to see a large scale ruby system though to see how it handles against the common, hibernate, Spring, struts model
    I'm sure RoR hand down beats struts/spring/hibernate
    the question will become whether it holds up against next generation archetypes
    tiger - yesterday? I wish, lots of companies need to have backward compatibility and can't use tiger because of that
    luano - true though I believe its the stuff in Mustang that will push upgrades - people will jump 5.0 to 6.0
    A lot of companies I've seen are happy with 1.4 - it's a sign that the Java market is more mature (big diff 1.1 to 1.2 , not so big 1.5 to 1.6)
    I hope so, cos all that legacy stuff is a pain in the butt, 5+ coding is alot nicer
    hi guys, sorry about the lateness - dramas getting connected
    hey Jake
    That's ok Jake , we just figured out the next big thing , but promised not to tell anybody :-)
    what's the chance that your net connection will be down
    You also just missed the Ruby on Rails bit
    so what is this next big thing yopu speak of?
    oh, ror is sooo last month
    I'm sure he can bring up the RoR topic again WIDTH=15 HEIGHT=15
    Felipe reckons WS + EJB 3 + JPI ...
    I reckon middleware (boring , but nice for job security)
    I forget who mentioned RoR
    lol - so am I supposed to be the local ror evangelist?
    i am just going through a book on ws - there's quite a lot there!
    paul - what middleware?
    I think the web services was not well explored.. and it promises good things now with EJB3
    middleware is the connection between the clients and the business layer
    who's actually using it?
    Middleware as in workflow (jPBM) and JBoss rules. You capture the business knowledge , gives you time to learn all the snazzy new technologies as they come up!
    ws, i mean?
    so as a thought do people believe SOAP will cut it? or will it be RESTful?
    paul so what about BPEL?
    a lot of companies. last year I produced a Swing application posting XML data to a web service produced with .Net...
    PDL is a bit non-standard after al
    it worked fine for two thousand users posting data in a period of 2 months.. very nice experiece
    I vote for REST as simple tends to beat complicated! BPEL I would like to see succeed , but it has a lot of hype. JBPM has plugin for JBEL
    that's just a web service though, I'm talking about the WS platform as a whole
    so jake are you thinking ESB? SCA? WSDL?
    I think Web 2.0 will drive usage of a lot of WS stuff (warning , buzzword used)
    beyond the two parties talking directly to each other - transactionality, guaranteed message delivery etc.
    My vote is for rest also, better value all round
    have people done much document driven JAX-WS?
    in that project we used JAXB to create the java classes from the schema and also to bind the data to java classes
    Jake you mean WS-Splat
    document driven? sounds like something from Waterfall 2006
    Current project is using Apache XML Beans for something similar
    the problem still beign the mapping the classes created with JAXB to EJB annotated POJOs
    the problem of using framework "external" to the sun technology is the lost of some parts... in case of Apache XML beans, you lost the JPA
    have you looked at HyperJaxb?
    sorry HyperJaXB2
    yes, that is a great project. but it is only on the begining.. no releases for the moment...
    I am dreaming with such release WIDTH=15 HEIGHT=15
    so Jake do you really think all the WS-* stuff is going to get anywhere - I mean there is a ton of stuff?
    surely ESB is going to drive transactionality, co-ordination in the place of WS-*
    that's what gets me about that whole platform - it is huge
    to do
    ay on that one
    the plataform is designed for large projects.. small application can ignore some parts..
    don't you think something like SCA is going to replace WS? maybe even JSR-181 JAX-WS annotations in the end?
    sorry, browser playing tricks on me
    fgaucho: i disagree
    With Apache Axis , you can take normal .java file , rename it to .jws and you have your webservice
    large sounds about right, there's so much there that it's mind-boggling
    small projects must co-exist with larger projects , therefore they must expose endpoint suitable for integration
    for example.. if I have a classical small business application, a comercial pet store... I can ue Ruby or just servlets/jsp.. and I also can include Ajax and JPA...
    I don't need to design the full J2EE plataform for small application...
    How do you combine ruby and jpa. via web service?
    fgaucho : so what happens when the price feed comes from another application
    well, I am supposing the small applications has heavy requirements on GUI ..
    jpa? what does it stand for (there's like 3 apis with those initials)
    a fancy web or desktop gui is more important for small business....
    the requirements of scalability and load balance is more for huge ammounts of data
    I guess WIDTH=15 HEIGHT=15
    i would think small business needs to leverage SOA so they can build on top of existing services provided by other companies
    yes, thats the scenario....
    applications are not silos - in the future they should be citizens of the enterprise - big or small
    depends on the business space that they're operating in
    SOA, now you got the point
    therefore exposing integration capabilities is critical
    intefaces are the key idea....
    To be Devils advocate: If I was a small business , why not forget about Java and use some sort of Service provided by a web site, let somebody else worry about the programming?
    just to touch upon the Axis *.jws point - that works if you don't have complex structures but once your data needs a value object then you need to define your transfer objects for XML serialization
    so, assuming that the soa thing is the immediate future, which horse do you put money on
    paul - good point - SaaS
    Jake - I think SCA/BPEL with JBI/JMS under the hood - JAX-WS and JAXB2 for building complex data structures and exposing POJO endpoints
    if the application is just a CRUD stuff, it could be a nice choice...
    don't forgett to give NetBeans a second chance.. the newer versions are very good...
    JAX-WS and EJB3 made easy with NetBeans 5.5
    i'm going to have to have a read about some of this stuff - you're losing me
    it is a bit of a TLA mess WIDTH=15 HEIGHT=15
    Sorry I'm late. Traffic &amp; baby stuff :-(
    So Netbeans - you reckon that is one worth learning?
    hey john
    we're all popping in and out...
    yes, because the new technologies will require a lot of support from the IDEs.. and NetBeans is a good starting point...
    i would recomend learning Maven2 over learning another IDE
    since as it get more complex so that need for CI (Continuous Integration) will become more important
    well guys, I need to go... last message: I still looking for a job in Dublin... if you get a suggestion, my mail is ...)
    Maven is show.. but to deal with EJB3 and Persistence API with ANT and Maven without a good IDE is painful
    Call me an old stick in the mud, but if a technology *needs* IDE support, it's wrong.
    No worries Felipe, drop us a line on the blog (firstpartners.net.blog)
    jlatham: you aren't still in VI are you?
    WIDTH=15 HEIGHT=15
    John - yes and no. I have no issue with IDE support to make life easier, as long as I can get to the underlying and it makes sense.
    LOL. No, I use Eclipse, but I know I can always drop back to ant at the command line when things get tough.
    Talking of IDE's , JBoss IDE based on Eclipse is worth looking at
    Eclipse based , but a good set of plugins already installed if you're lazy like me :-)
    paul : does that have EJB3 support now?
    Case in point: JSF. Smells bad to me. Tag soup only benefitting the tool and app server vendors
    JSF is a much cleaner way to develop with larger teams than struts
    I had a look at JBoss IDE and it's the tool of choice if you want what JBoss is giving (the whole SEAM thing)
    struts is one simple idea - hacked to death for production
    I see Craig broke Shale from under Struts so now there are two Top Level Projects
    Is it JSF or component based technologies in general?
    <a href="http://stuffthathappens.com/blog/2006/01/22/not-fud-just-experience/" target="_blank">http://stuffthathappens.com/blog/2006/01/22/not-fud-just-experience/</a>
    Because I don't see that Webwork/StrutsTI/whatever is going to be any better in that respect.
    so you had a bad time with JSF
    i used it in portlet development last year and found it quick and easy, before that I used Oracle UIX (the beginings of JSF) and found it much nicer than Struts/JSP
    I am hesitant to jump into any api with a 600 page spec
    Maybe it's FUD, but I want to make sure that I get return on my investment
    remember ? <a href="http://blogs.sun.com/roller/page/craigmcc/20040927" target="_blank">http://blogs.sun.com/roller/page/craigmcc/20040927</a>
    Philip, I've avoided JSF so far (Spring/Struts/JSPX does the job). Yours is the first good experience of JSF I've come across. Just repeating what I've read from others (spreading FUD myself?)
    but think about Struts - its a simple clean idea
    Having said that, the guys I know who have used it are saying that it's quite nice to work with
    but you have to create custom workarounds for all sorts of problems
    Custom workarounds for Struts or JSF?
    Anyone used JBoss Seam? Looks quite interesting (despite the JSF).
    struts
    Because in my experience, nothing gives you everything you'll need to develop a web app. It's still the biggest mess in town.
    all those dispatches , trying to keep track of things by hand between the forms and the actions
    hacking javascript in the JSP to try and construct URL's to get you where you want?
    messing around with the session .. the list goes on
    Well, if you want to get around that nonsense, you should have a look at Wicket <a href="http://wicket.sourceforge.net/" target="_blank">http://wicket.sourceforge.net/</a>
    Much simpler model than JSF, doing much the same and with none of the stuff that the foundation frameworks like Struts,Webwork et al. suffer from (like the javascript hacking etc)
    And no tag soup in the html either
    It feels a lot more like coding a GUI
    what about UI components?
    Still haven't got around to looking at Wicket.Taking a mercenary view on it, what framework will be in the job ads?
    What do you mean?
    with JEE 5 - jSF will win - it is part of EE5 spec
    so ever application server will come with JSF instaled
    Paul, I agree. If you want the mercenary point of view, there's no denying that JSF is the horse to back.
    The web framework space is full, and when you're starting a new project you don't get the time to look at the 30+ frameworks to see what suits you best.
    So you pick either Struts (or whatever is in it's place now) or you pick JSF
    Because you know as a team lead/manager that you'll be able to get someone off the street who knows how to use it
    thats me.. I am here in the street just waiting the call WIDTH=15 HEIGHT=15 (joking... I couldn't resist)
    The best technology is irrelevant when you have to consider things like a learning curve
    I love the profilferation of Java web frameworks. They solve different problems. More choice is better. No such thing as "full". It only takes a few minutes to google down the options to a couple of good candidates.
    i think people need to get ADF/JSF under their belt - have a play with JDeveloper and then forget HTML hacking and more to form layout stuff
    True, but the whole thing is that unfortunately the average programmer won't take the time out to even read up on the framework that they're going to be working on before they start and you get the same mistakes being made every time
    Felipe - I'm hiring <a href="http://www.recruitireland.com/job.asp?JobID=2370439" target="_blank">http://www.recruitireland.com/job.asp?JobID=2370439</a>
    I know that's a grim view but I've dealt with too many 9-5ers...
    At least if you pick a well known framework with momentum (documentation, forums etc) you can just advertise for a set of skills and if the guys get into trouble, help is close at hand
    I will visit Dublin on the next few weeks... I will try to pay some pints of lager for you... at least to extend this conversation in a more beverage way WIDTH=15 HEIGHT=15
    Well, next drinks night is 2/3 weeks away...
    frameworks? Spring and SF... the couple of winners for me...
    JSF...
    so who has been playing with ESB's or SCA?
    I haven't paid all that much attention to JSF (size scared me to be honest). What's it like from a unit testing point of view?
    JSF is a very big elephant. JBoss Seam and ADF (Oracle) are probably what would drive me to use it , for non technical reasons. It's a bit like Struts, you just need 1 project to start you, everything else is copy and paste.
    Jake: since your actions are all POJO's testing you businss layer is much easier
    unit test on the web is always a boring thing... but if you divide the layers correctly, the business layer and middleware layer are the most important part to apply tests...
    but testing the component stuff is a bit more tricky
    if you saw some of the front ends i have... :P i'm a big fan of the unit test (not always possible though)
    but yeah, if you get the lower tiers right you're most of the way there
    Junit and CI are the way to go - I recomend get Better Builds with Maven (Free) and try it out
    disclaimer : I work for a sister company of Mergere
    Philip, have you been biled yet? ;-)
    i downloaded that one, it's on my list of to reads (about 10 books + pdfs :P)
    he probably has
    jlatham: always <IMG SRC="images/smilies/smile5.gif" WIDTH=15 HEIGHT=15 ALT=";)">
    billed who?
    lol
    is there anything that guy is happy with? I read that blog once in a while just for a laugh at the angry man...
    the bile blog
    - i think i missed was that "bile" or "bill"?
    yep, I'm losign the plot as well!
    bile
    <a href="http://www.jroller.com/page/fate" target="_blank">http://www.jroller.com/page/fate</a>
    Being "biled" on the BileBlog is a badge of honour. I aspire to such fame.
    lol - oh right
    There was a mergere entry a while back
    That guy is angry at everything
    there was?
    John, how do you plan to be biled then? or is that a commercial secret :-)
    lol - i'll have a look - i'm lucky no-one biled me
    well, a sure fire way is to develop any open source framework/product
    I'm too insignificant to be biled. I need to get to be lead on some dubious Apache project.
    That guy hates everything, there was a crzy entry on AppFuse a while back.
    Red-Piranha might make is one day
    lol - well I work on one of those
    <a href="http://red-piranha.sourceforge.net" target="_blank">http://red-piranha.sourceforge.net</a> (shamless project plug)
    jlatham : what do you work on in the OSS world
    Nothing. Currently I'm just a freeloader.
    Not everyone can get paid to do OSS
    red piranha looks interesting WIDTH=15 HEIGHT=15
    WIDTH=15 HEIGHT=15
    while in shameless plugin mode - I work on <a href="http://www.servicemix.org" target="_blank">http://www.servicemix.org</a>
    New version is in the works - this time I will get world domination (evil laugh)
    and also with Jake from time to time WIDTH=15 HEIGHT=15
    lol
    Service Mix, now that does look interesting ...
    oh it is <IMG SRC="images/smilies/smile5.gif" WIDTH=15 HEIGHT=15 ALT=";)">
    So he actually knows what a crap coder I am <IMG SRC="images/smilies/smile5.gif" WIDTH=15 HEIGHT=15 ALT=";)">
    oh Jake you are wonderful coder WIDTH=15 HEIGHT=15 - i'm the crap one
    That's because you're trying to code an ESB in Ruby ...
    phil - is jbi transport mechanism independent?
    lol
    Paul, I recently did a Lucene/Compass integration in my webapp. It was too hard (clustering issues particularly). Anything that helps is good.
    JBI is about integrating protocols and business logic
    Lucene is just the starting point. Next version is all about getting people's brains and stuffing them into PC's
    just answered my own question - binding SPI
    basically you have Service Engines (which are components that handle business logic - ie. Transformation/Routing/BPEL) and Binding Components (which handle protocols - HTTP/JMS/File Systems etc)
    (bit like JBI). It's all about knowledge management
    so what's the relationship to an esb?
    Folks, I'm going to have to go soon. Any comments on how the Virtual Dublin Pub thing went? Any thoughts on next month's topic?
    paul : lol I thought that was Google game
    Very good, but would prefer a less "Web 1.0" chat client :-)
    pretty good, i think we have to get a better chat platform though - this one's a bit annoying
    JBI is the backbone of an ESB - a container of containers
    I am writing a blog about this meeting.. this comunity is really motivated and I expect to join you very soon...
    Maybe we need to try IRC
    Grand: any suggestions as to chat client to use?
    yeah the chat client is a bit clunky - what about a frappr group?
    IRC works well - how does the hosting work?
    I think I need to have a read through those servicemix docs (at least those intros)
    ok, i gotta go - the internet cafe is closing down (!)
    paul you could probably ride of the back of a server like irc.codehaus.org?
    John - IRC makes sense. What servers?
    OK, going to post this chat up online. Will have a look around and see what way we can improve the hosting. IRC is good as it has both Client and Web Client for the people who don't want to install anything.
    I have to say, this was pretty good - I like being able to google TLAs on the fly....
    I'm out of here, I'll catch you guys later
    OK, talk to you later
    I'm off too. l8r d00dz (joke)
    me too - catch you later WIDTH=15 HEIGHT=15

    4/4/2007

    项目管理完全需要的辅助工具

    技术架构+jira+confluence+CruiseControl+svn+xplanner+maven/ant+jmeter+selenium
    4/3/2007

    jira安装配置

    花了点时间安装配置了jira,暂时用的数据库是mysql5.0.37,web服务器是tomcat5.5.23;
    记录一下吧,省着将来忘记!
     
    并且复制到tools/ant/lib/下
    3 编辑'edit-webapp/WEB-INF/classes/entityengine.xml'文件
        <datasource name="defaultDS" field-type-name="mysql"
    这个地方还有一句话来着,叫做schema-name="PUBLIC",一定要去掉,因为是给hsql用的(我就忘记了
    ...
    ...
        </datasource>
    4 在解压后目录的根目录下执行‘build war’,没错就对了,有错应该是jdk什么的一些基本问题,自己找答案吧
    5 如果没有问题解压生成的war包到${catalina.home}/webapps/jira下(个人喜好!)
    5 看这个网址http://www.atlassian.com/software/jira/docs/v3.8/servers/index.html(如果你用的不是tomcat5.5.x的话)
    6 复制dist-tomcat/tomcat-5.5/jira.xml到conf/Catalina/localhost/下(我想弄到tomcat6下来着,但是没有这个目录,待我研究研究),修改jira.xml文件:
    如果用的不是hsql,需要去掉minEvictableIdleTimeMillis和timeBetweenEvictionRunsMillis属性
    <Context path="/jira" docBase="${catalina.home}/webapps/jira" debug="0">
        <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
                username="jirauser"
                password="1"
                driverClassName="com.mysql.jdbc.Driver"
                url="jdbc:mysql://localhost/jiradb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8"
    />
        <Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
        factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>
        <Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/>
    </Context>
    7 上面是在配置数据库,所以jdbc引擎需要的,复制对应的版本到tomcat的lib下
    jira-jars-tomcat5.zip文件需要下载下来,也解压jar到tomcat的lib下
    9 修改tomcat的conf/server.xml(>5.5.15以上适用)
    <Connector port="8080" maxHttpHeaderSize="8192"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" redirectPort="8443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true" useBodyEncodingForURI="true"/>
    10 发布看看,应该可以,也许还有问题,到时候我会继续补充的,呵呵!
     
    关于破解保密,呵呵,自己想办法吧
     补充:
    1 不知道怎么配置tomcat6的连接池,或者是配置对了但也不行,不去细细研究了,毕竟还有更重要的事情要做;
    2 导入bugzilla的数据时候,看到标题就是乱码,不知道为什么!查看了网络上的资料,说是要改源程序,作罢!无所谓
     
     
     
     
     
    3/30/2007

    今天必须解决的问题

    一 jira发布到我指定的任意服务器上
    二 xwiki也发布到服务器上(建立公司的知识管理平台)
    三 blojsom发布到对应的服务器上