??xml version="1.0" encoding="utf-8" standalone="yes"?>p色视频免费在线观看,精品国产精品三级精品av网址,欧美精品一区二区视频http://www2.blogjava.net/brokendoor/category/5346.html破门ҎQJava技术版Q?/description>zh-cnThu, 01 Mar 2007 00:52:11 GMTThu, 01 Mar 2007 00:52:11 GMT60Eclipse 试框架分析Q未完)http://www.aygfsteel.com/brokendoor/articles/37560.html破门破门Mon, 27 Mar 2006 02:34:00 GMThttp://www.aygfsteel.com/brokendoor/articles/37560.htmlhttp://www.aygfsteel.com/brokendoor/comments/37560.htmlhttp://www.aygfsteel.com/brokendoor/articles/37560.html#Feedback0http://www.aygfsteel.com/brokendoor/comments/commentRss/37560.htmlhttp://www.aygfsteel.com/brokendoor/services/trackbacks/37560.html
发表?2005-2-21 11:24:52

Eclipse 试框架分析

Z PDE q行时的参数讑֮如下Q?/span>

Eclipse.buildId=unknown

java.version=1.4.2

java.vendor=Sun Microsystems Inc.

BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN

Framework arguments:  

-version 3

-application org.eclipse.pde.junit.runtime.coretestapplication

-testApplication org.softme.triones.runtime.framework

-pdelaunch

-port 3655

-testpluginname org.softme.triones.runtime

-classnames org.softme.triones.runtime.TrionesRuntimeAllTests

Command-line arguments:  

-version 3

-application org.eclipse.pde.junit.runtime.coretestapplication

-testApplication org.softme.triones.runtime.framework

-data D:\netshop\runtime-test-workspace

-dev file:D:/netshop/sources/.metadata/.plugins/org.eclipse.pde.core/Trionse Runtime Test/dev.properties

-pdelaunch -os win32 -ws win32 -arch x86 -nl zh_CN -clean

-debug -consolelog

-port 3655

-testpluginname org.softme.triones.runtime

-classnames org.softme.triones.runtime.TrionesRuntimeAllTests

 

由参数配|可以看出, Eclipse PDE 中插件测试实际上是启动了

org.eclipse.pde.junit.runtime.coretestapplication q个应用Q而被试的应用通过参数 –testApplication 指定Q运行的参数通过 –dev file:?/dev.properties 来指定。我们先分析一?/span> dev.properties 文gQ?/span>

org.softme.triones.runtime=bin

org.softme.triones.sdk=bin

org.eclipse.osgi=bin

org.softme.triones.hello=bin

com.opensymphony=bin

org.softme.triones.turbine=bin

q里配置需要加载的工作区插件和 class 路径?/span>

通过对Eclipse试框架的研IӞ发现目前无法支持Triones框架的测试环境要求:

“测试框架由 org.eclipse.test 插g?/span> org.eclipse.ant.optional.junit D늻成?/span>

上面q两个工E可以从 dev.eclipse.org 资源库获取ƈ且已l包含在 eclipse-Automated-Tests.<buildid>.zip 文g中,可以?/span> eclipse.org 下蝲面下蝲?/span>

试框架的当前版本ƈ不能?/span> PDE 集成环境兼容。如果你希望q行试Q那么你需要安装一套完整的目标 Eclipse 环境以便于测试框架能够检所有需要的内容。如果你准备Z个或多个 Eclipse 插g~写试Q那么你需要创Z个专门用于测试的独立的插件。这个测试插件将包含针对你正在开发的插g的所有测试,同时也定义了q些试的运行方式。?/span>

q样的情况下Q必重新考虑Triones框架的设计了?/span>



破门 2006-03-27 10:34 发表评论
]]>
Triones Runtime: 修改java.net.URL对象支持多个StreamHandlerFactory的注?/title><link>http://www.aygfsteel.com/brokendoor/articles/37559.html</link><dc:creator>破门</dc:creator><author>破门</author><pubDate>Mon, 27 Mar 2006 02:30:00 GMT</pubDate><guid>http://www.aygfsteel.com/brokendoor/articles/37559.html</guid><wfw:comment>http://www.aygfsteel.com/brokendoor/comments/37559.html</wfw:comment><comments>http://www.aygfsteel.com/brokendoor/articles/37559.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/brokendoor/comments/commentRss/37559.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/brokendoor/services/trackbacks/37559.html</trackback:ping><description><![CDATA[     摘要: 发表?2004-12-26 18:59:04  思\Q?、将URL对象中的factory对象扩展Z个factorys的Hashtable对象Q将setURLStreamHandlerFa...  <a href='http://www.aygfsteel.com/brokendoor/articles/37559.html'>阅读全文</a><img src ="http://www.aygfsteel.com/brokendoor/aggbug/37559.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/brokendoor/" target="_blank">破门</a> 2006-03-27 10:30 <a href="http://www.aygfsteel.com/brokendoor/articles/37559.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Triones Runtime: 利用Eclipse Plugin支持Web应用http://www.aygfsteel.com/brokendoor/articles/37558.html破门破门Mon, 27 Mar 2006 02:29:00 GMThttp://www.aygfsteel.com/brokendoor/articles/37558.htmlhttp://www.aygfsteel.com/brokendoor/comments/37558.htmlhttp://www.aygfsteel.com/brokendoor/articles/37558.html#Feedback0http://www.aygfsteel.com/brokendoor/comments/commentRss/37558.htmlhttp://www.aygfsteel.com/brokendoor/services/trackbacks/37558.html阅读全文

破门 2006-03-27 10:29 发表评论
]]>
Triones Framework Runtimehttp://www.aygfsteel.com/brokendoor/articles/37554.html破门破门Mon, 27 Mar 2006 02:20:00 GMThttp://www.aygfsteel.com/brokendoor/articles/37554.htmlhttp://www.aygfsteel.com/brokendoor/comments/37554.htmlhttp://www.aygfsteel.com/brokendoor/articles/37554.html#Feedback0http://www.aygfsteel.com/brokendoor/comments/commentRss/37554.htmlhttp://www.aygfsteel.com/brokendoor/services/trackbacks/37554.html 

完成通过试E序调用 Triones Framework Runtime 插g的工作:

1?span style="FONT: 7pt 'Times New Roman'">  只需要利?/span> Eclipse 的核心插件包?/span>

org.eclipse.core.runtime         // Eclipse Plugin Runtime

org.eclipse.osgi                            // Eclipse OSGi Implemention

org.eclipse.update                  // Eclipse Plugin Loader/Updater

2?span style="FONT: 7pt 'Times New Roman'">  q_启动p动调用了 Triones 核心产品 org.softme.triones.runtime.framework 。部分输出如下:

Time to load bundles: 10

Starting application: 921

------------------------------------

Triones Framework: Started!

Triones Framework: Hello!

Triones Framework: Stoped!

------------------------------------

 

3?span style="FONT: 7pt 'Times New Roman'">  EclipseStarter 设计为应用运行完毕就自动调用 shutdown 使得q_退出, Triones 框架需要等?/span> ServletContext ?/span> Destroyed 事gQ因此必d此进行处理:

Ҏ一Q?/span> 创徏 Triones pȝdQƈ其挂v直到获得 ContextDestroyed 事g?/span>

Ҏ二: 扩展 EclipseStarter 修改q行E序Q不自动调用 shutdown Q等?/span> ContextDestroyed 事g?/span> TrionesContextListener 昑ּ调用 shutdown Ҏ?/span>

 

研究了一下午Q方案一g不太合理Q挂Lpȝq程Q?郁闷?/span> ?. ?/span>

 

考虑Ҏ?/span> ?


以上Q实现方案二Q?/span>

通过反射直接调用 EclipseStarter ?/span> startup(String[], Runable) ?/span> run(Object) Ҏ以启动^台ƈ保留在内存;关闭q_时调?/span> EclipseStarter ?/span> shutdown() Ҏ?/span>

 

问题Q?/span> 如何保留q程Q如何与 Context 环境交互Q?/span>

M能全部用反吧Q?/span>

ҎQ?/span> 通过反射取到 TrionesFramework 对象?/span>

步骤一Q?/span> ?/span> Triones Runtime 采取 分离接口模式

步骤二: 修改 launcher.EclipseLanucher 对象Q通过反射获取 TrionesFramework ?/span>

1)      需要通过 URLClassLoader 加蝲 Triones Runtime 插gQ?/span>

2)      需要修?/span> DevPath Q增?/span> Triones Runtime 的插件\径?/span>

3)      增加接口Q取?/span> TrionesFramework 对象?/span>

 

实现了对 TrionesStarter 的反调用启动和关闭 Eclipse q_Q但?/span> ?/span> getFramework Ҏ调用p|Q!Q!Q?/span>

Get the Triones framework....

java.lang.reflect.InvocationTargetException

         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

         at java.lang.reflect.Method.invoke(Unknown Source)

         at org.softme.triones.launcher.TrionesEclipseLauncher.getFramework(TrionesEclipseLauncher.java:815)

   ?o:p>

Caused by: java.lang.NoClassDefFoundError: org/eclipse/core/runtime/Platform

         at org.softme.triones.runtime.TrionesFramework.<init>(TrionesFramework.java:55)

         at org.softme.triones.runtime.TrionesStarter.getFramework(TrionesStarter.java:52)

         ... 22 more

 

看来设计架构上还是出了问题,查一?/span> URLClassLoader 的文:

StartupClassLoader 仅仅包含启动包的c\径,?/span> Triones 必须所有类路径加蝲?/span> context 中,才能够实?/span> Context Q?/span> Servlet Q与框架的交互?/span>

以上Ҏp|Q!   Sign?. : ( ):

 

改进ҎQ设法?/span> OSGi c\径加载到 Context 路径中!

( 虽然隑ֺ大了点,但是必须解决 ) ?/span>


破门 2006-03-27 10:20 发表评论
]]>
关于Eslipse (3.0) ClassLoader 问题的分?/title><link>http://www.aygfsteel.com/brokendoor/articles/21688.html</link><dc:creator>破门</dc:creator><author>破门</author><pubDate>Mon, 28 Nov 2005 08:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/brokendoor/articles/21688.html</guid><wfw:comment>http://www.aygfsteel.com/brokendoor/comments/21688.html</wfw:comment><comments>http://www.aygfsteel.com/brokendoor/articles/21688.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/brokendoor/comments/commentRss/21688.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/brokendoor/services/trackbacks/21688.html</trackback:ping><description><![CDATA[<A> </A> <H3 style="MARGIN: 13pt 0cm"><FONT size=5><SPAN style="FONT-FAMILY: 宋体"></SPAN></FONT></H3> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><STRONG><SPAN style="FONT-FAMILY: 宋体">关于</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">ClassLoader </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">问题的分析:</SPAN></STRONG></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">EclipeClassLoader </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">创徏</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">:</FONT></SPAN></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN style="FONT-FAMILY: 宋体"><BR></P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #000000">org.eclipse.core.runtime.adaptor.EclipseElementFactory<BR><BR></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000"> org.eclipse.osgi.framework.adaptor.BundleClassLoader createClassLoader<BR><BR>(ClassLoaderDelegate delegate, ProtectionDomain domain, S<BR><BR>tring[] bundleclasspath, AbstractBundleData data) {<BR><BR>              </SPAN><SPAN style="COLOR: #0000ff">return</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> EclipseClassLoader(delegate, domain, <BR><BR>bundleclasspath, data.getAdaptor().getBundleClassLoaderParent(), data);<BR><BR>       }<BR><BR></SPAN></DIV> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><BR>获取</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">ClassLoaderParent </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">的方法,使用?/SPAN><SPAN lang=EN-US><FONT face="Times New Roman">EclipseAdaptor</FONT></SPAN></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN-US><FONT face="Times New Roman">Adaptor </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">?/SPAN></FONT><B><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; COLOR: red"><FONT face="Times New Roman">getBundleClassLoaderParent() </FONT></SPAN></B><SPAN style="FONT-FAMILY: 宋体"><FONT size=3>如何d</FONT></SPAN><FONT face="Times New Roman"><B><SPAN style="FONT-SIZE: 10.5pt; COLOR: red"> </SPAN></B><SPAN lang=EN-US><FONT size=3>bundleClassLoaderParent?<?xml:namespace prefix = o /><o:p></o:p></FONT></SPAN></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN style="FONT-FAMILY: 宋体"><BR></P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008080"> 1</SPAN><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">org.eclipse.osgi.framework.adaptor.core. AbstractFrameworkAdaptor<BR></SPAN><SPAN style="COLOR: #008080"> 2</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080"> 3</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_67_273_Open_Image onclick="this.style.display='none'; Codehighlighter1_67_273_Open_Text.style.display='none'; Codehighlighter1_67_273_Closed_Image.style.display='inline'; Codehighlighter1_67_273_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_67_273_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_67_273_Closed_Text.style.display='none'; Codehighlighter1_67_273_Open_Image.style.display='inline'; Codehighlighter1_67_273_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_67_273_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/** */</SPAN><SPAN id=Codehighlighter1_67_273_Open_Text><SPAN style="COLOR: #008000">/**</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080"> 4</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080"> 5</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        * The BundleClassLoader parent to use when creating BundleClassLoaders.<BR></SPAN><SPAN style="COLOR: #008080"> 6</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080"> 7</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        * The behavior of the ParentClassLoader will load classes<BR></SPAN><SPAN style="COLOR: #008080"> 8</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080"> 9</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>        * from the boot strap classloader.<BR></SPAN><SPAN style="COLOR: #008080">10</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">11</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>        </SPAN><SPAN style="COLOR: #008000">*/</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">12</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">13</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>       </SPAN><SPAN style="COLOR: #0000ff">protected</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000"> ClassLoader bundleClassLoaderParent;<BR></SPAN><SPAN style="COLOR: #008080">14</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">15</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top> <BR></SPAN><SPAN style="COLOR: #008080">16</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">17</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_355_1287_Open_Image onclick="this.style.display='none'; Codehighlighter1_355_1287_Open_Text.style.display='none'; Codehighlighter1_355_1287_Closed_Image.style.display='inline'; Codehighlighter1_355_1287_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_355_1287_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_355_1287_Closed_Text.style.display='none'; Codehighlighter1_355_1287_Open_Image.style.display='inline'; Codehighlighter1_355_1287_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align=top>       </SPAN><SPAN style="COLOR: #0000ff">static</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN id=Codehighlighter1_355_1287_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_355_1287_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">18</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">19</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>              </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> check property for specified parent</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">20</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">21</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>              String type </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> <BR></SPAN><SPAN style="COLOR: #008080">22</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">23</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>System.getProperty(PROP_PARENT_CLASSLOADER, PARENT_CLASSLOADER_BOOT);<BR></SPAN><SPAN style="COLOR: #008080">24</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">25</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>              </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (PARENT_CLASSLOADER_FWK.equalsIgnoreCase(type))<BR></SPAN><SPAN style="COLOR: #008080">26</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">27</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>                     bundleClassLoaderParent </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> FrameworkAdaptor.</SPAN><SPAN style="COLOR: #0000ff">class</SPAN><SPAN style="COLOR: #000000">.getClassLoader();<BR></SPAN><SPAN style="COLOR: #008080">28</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">29</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>              </SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (PARENT_CLASSLOADER_APP.equalsIgnoreCase(type))<BR></SPAN><SPAN style="COLOR: #008080">30</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">31</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>                     bundleClassLoaderParent </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> ClassLoader.getSystemClassLoader();<BR></SPAN><SPAN style="COLOR: #008080">32</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">33</SPAN><SPAN style="COLOR: #000000"><IMG id=Codehighlighter1_893_1103_Open_Image onclick="this.style.display='none'; Codehighlighter1_893_1103_Open_Text.style.display='none'; Codehighlighter1_893_1103_Closed_Image.style.display='inline'; Codehighlighter1_893_1103_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><IMG id=Codehighlighter1_893_1103_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_893_1103_Closed_Text.style.display='none'; Codehighlighter1_893_1103_Open_Image.style.display='inline'; Codehighlighter1_893_1103_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align=top>              </SPAN><SPAN style="COLOR: #0000ff">else</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (PARENT_CLASSLOADER_EXT.equalsIgnoreCase(type)) </SPAN><SPAN id=Codehighlighter1_893_1103_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.aygfsteel.com/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_893_1103_Open_Text><SPAN style="COLOR: #000000">{<BR></SPAN><SPAN style="COLOR: #008080">34</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">35</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>                     ClassLoader appCL </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> ClassLoader.getSystemClassLoader();<BR></SPAN><SPAN style="COLOR: #008080">36</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">37</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>                     </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (appCL </SPAN><SPAN style="COLOR: #000000">!=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)<BR></SPAN><SPAN style="COLOR: #008080">38</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">39</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>                            bundleClassLoaderParent </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> appCL.getParent();<BR></SPAN><SPAN style="COLOR: #008080">40</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">41</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>              }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">42</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">43</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top> <BR></SPAN><SPAN style="COLOR: #008080">44</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">45</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>              </SPAN><SPAN style="COLOR: #008000">//</SPAN><SPAN style="COLOR: #008000"> default to boot classloader</SPAN><SPAN style="COLOR: #008000"><BR></SPAN><SPAN style="COLOR: #008080">46</SPAN><SPAN style="COLOR: #008000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">47</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>              </SPAN><SPAN style="COLOR: #0000ff">if</SPAN><SPAN style="COLOR: #000000"> (bundleClassLoaderParent </SPAN><SPAN style="COLOR: #000000">==</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">null</SPAN><SPAN style="COLOR: #000000">)<BR></SPAN><SPAN style="COLOR: #008080">48</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">49</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top>                     bundleClassLoaderParent </SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000"> ParentClassLoader();<BR></SPAN><SPAN style="COLOR: #008080">50</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">51</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>       }</SPAN></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">52</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR></SPAN><SPAN style="COLOR: #008080">53</SPAN><SPAN style="COLOR: #000000"><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN></DIV> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><BR>如果使用了了</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">boot Classloader </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">?/SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> ParentClassLoader </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">是新建的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> boot</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">Q这里分析看来应该?/SPAN><SPAN lang=EN-US><FONT face="Times New Roman">framework </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">或者系l的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">ClassLoader</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">吧?/SPAN></FONT><SPAN lang=EN-US><BR style="PAGE-BREAK-BEFORE: always" clear=all></SPAN><FONT size=3><SPAN style="FONT-FAMILY: 宋体">Ҏ以上的分析,?/SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Triones</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">的启动环境进行了调整Q?/SPAN></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt"><FONT size=3><SPAN lang=EN-US><SPAN><FONT face="Times New Roman">1?/FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">直接引用</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> org.eclipse.osgi </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">中的启动包,避免使用反射。注Q可以直接调?/SPAN><SPAN lang=EN-US><FONT face="Times New Roman">EclipseStarter.run(null) </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">了?/SPAN></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt"><FONT size=3><SPAN lang=EN-US><SPAN><FONT face="Times New Roman">2?/FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">?/SPAN><SPAN lang=EN-US><FONT face="Times New Roman">Triones Runtime </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">拆分成ؓ</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> triones-core.jar </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">Q包括主要的服务接口</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> ItrionesFramework </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">{)?/SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> triones-runtime.jar (Triones Runtime Eclipse</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">插g</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">)</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">?/SPAN></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt"><FONT size=3><SPAN lang=EN-US><SPAN><FONT face="Times New Roman">3?/FONT></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">修改</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> Eclipse </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">?/SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> config.ini </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">配置?/SPAN></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 12pt"><SPAN lang=EN-US><FONT face="Times New Roman" size=3># osgi classloader : </FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 12pt"><SPAN lang=EN-US><FONT face="Times New Roman" size=3>osgi.parentClassloader = fwk</FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 12pt"><FONT size=3><SPAN style="FONT-FAMILY: 宋体">Ҏ上面的分析,</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> fwk </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">表示使用</SPAN><SPAN lang=EN-US><FONT face="Times New Roman"> FrameworkAdaptor </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">?/SPAN><SPAN lang=EN-US><FONT face="Times New Roman">ClassLoader </FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">作ؓ</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">OSGi</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">?/SPAN><SPAN lang=EN-US><FONT face="Times New Roman">parent classloader</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">?/SPAN></FONT></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt"><SPAN lang=EN-US><FONT face="Times New Roman" size=3>bundleClassLoaderParent = FrameworkAdaptor.class.getClassLoader();</FONT></SPAN></P><img src ="http://www.aygfsteel.com/brokendoor/aggbug/21688.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/brokendoor/" target="_blank">破门</a> 2005-11-28 16:25 <a href="http://www.aygfsteel.com/brokendoor/articles/21688.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¤</a>| <a href="http://" target="_blank">ϳ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ҵ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">崨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˱</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ȫ</a>| <a href="http://" target="_blank">Ұ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʲ</a>| <a href="http://" target="_blank">ƶ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͷ</a>| <a href="http://" target="_blank">կ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ʳ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">֣</a>| <a href="http://" target="_blank">ǭ</a>| <a href="http://" target="_blank">α</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>