一直以来,eclipse 对于 fragment 的概念都是一种补充,而不是覆盖的机制。
也就是说,fragment 里的 class 会在 host plugin 的 class 装载之后而装载。
只有 host plugin 里面没有找到,才会去找 fragment 里面的类。我们的framework,目前是由一个专门的小组在维护。其他小组是不能随意改它的代码的。
但是,当有些情况下,使用这个framework的开发小组需要修改这部分代码,而这个修改
又只是局部的,只有这个小组需要用的,那么现在就很头痛。后来用一种jar替换的方式
来满足这个需要,但是搞得开发起来很繁琐,需要经常的export。
一直以来也没有去动 eclipse 的代码,这次把应用启动的模式从deploy改成launch 之后,
别的地方都好说,唯有需要处理 fragment 的这个地方很头痛。
如果把eclipse fragment的装载顺序调整一下,先装载 fragment 里的class,再装载
host plugin 里面的 class,这个问题就迎刃而解了。framework开发小组只需要处理
公用的代码,使用 framework 的小组就可以用自己的 fragment 去处理特殊的代码,
这个世界就清净了。大家都可以用 launch 这种模式来启动应用,加快应用开发的效率。
刚才改了一下,其实很简单,只是改 DefaultClassLoader 就行了,看一下代码就知道该
怎么改。后悔怎么没有早点改,呵呵。
主站: http://blogsite.3322.org/jspwiki/