Carlos, AFAIU, the idea was to move harmony class library to use OSGi style (per-bundle) loading. That's why it is necessary to stuff it into DRLVM.
WBR, Pavel. 2009/6/2 Carlos Torrão <[email protected]>: > The eclipse equinox implements the OSGi Framework only in Java, since the > file comes in .jar file and can run in every JVM. > > I tried to start the OSGi implementation of equinox with Harmony and it > worked fine. > > java -jar org.eclipse.osgi_3.4.0.v20080605-1900 -console > > Don't understand why do you need to change this JVM to implement OSGi... > > Best regards, > Carlos Torrão > > > 2009/5/20 Pavel Pervov <[email protected]> > >> Sure. I've posted from mobile, and my multitap betrayed me. Thanks, Mark. >> >> 2009/5/20, Mark Hindess <[email protected]>: >> > >> > In message <[email protected] >> >, >> > Pavel Pervov writes: >> >> >> >> Please, read this nice presentation [1] on osgi vs classic class >> loading. >> >> [1] >> >> >> http://www.martinliqert.com/events/WJAX2008-ClassloadingTypeVisibilityOSGi.pdf >> > >> > I assume you mean: >> > >> > >> > >> http://www.martinlippert.org/events/WJAX2008-ClassloadingTypeVisibilityOSGi.pdf >> > >> > -Mark. >> > >> >> 2009/5/19, tian galaxy <[email protected]>: >> >> > XiaoFeng , Mark >> >> > Thanks for your help ,very valuable to me. >> >> > I think I need to research more on this .Much more complex than I >> >> > thought >> >> > previously. >> >> > >> >> > >> >> > Regard >> >> > Tian >> >> > >> >> > 2009/5/19 Xiao-Feng Li <[email protected]> >> >> > >> >> >> On Tue, May 19, 2009 at 6:41 PM, Mark Hindess >> >> >> <[email protected]> wrote: >> >> >> > >> >> >> > In message >> >> >> > <[email protected]>, >> >> >> tian >> >> >> > galaxy writes: >> >> >> >> >> >> >> >> Hindess .Thanks for the help ! I realized that this far more >> complex >> >> >> than I >> >> >> >> thought before . >> >> >> >> So I think I need a deeper look into both osgi and harmony . >> >> >> >> Here are several things I don't qiute understand and I noted them >> >> >> below.May >> >> >> >> be it's because I am not quite familiar with the low level , >> >> >> classloading >> >> >> >> details . >> >> >> >> thanks! >> >> >> >> >> >> >> >> 2009/5/19 Mark Hindess <[email protected]> >> >> >> >> > >> >> >> >> > In message < >> >> >> [email protected]>, >> >> >> >> > tian galaxy writes: >> >> >> >> > > >> >> >> >> > > OK ,thanks .Seems the minimal class set has been defined by >> the >> >> >> osgi. >> >> >> >> > >> >> >> >> > Not sure how this helps though. The OSGi Minimum Execution >> >> >> Environment >> >> >> >> > says what is theoretically the minimum required to run OSGi. >> What >> >> >> >> > we >> >> >> >> > need to concern ourselves with is the *practical* minimum and >> that >> >> >> >> > really depends on our implementation details. >> >> >> >> > >> >> >> >> > I don't think that we should implement OSGi in the VM. Instead >> >> >> >> > the >> >> >> >> > existing bootstrap classloader should load the OSGi framework >> >> >> >> > (with >> >> >> >> > a unique classloader) >> >> >> >> >> >> >> >> If we load the osgi with the bootstrap class loader , why comes a >> >> >> >> unique >> >> >> >> class loader? >> >> >> > >> >> >> > It isn't necessary but I think it is useful to use a separate >> >> >> > classloader for the OSGi framework so that we can isolate the >> classes >> >> >> > use by the VM's OSGi framework and avoid polluting the namespace. >> >> >> > >> >> >> >> Do you mean the bootstrap class loader should delegate the loading >> >> >> >> to >> >> >> >> the 'unique class loader '? >> >> >> > >> >> >> > Yes. >> >> >> > >> >> >> >> > and the system classes (with a "temporary" classloader). >> >> >> >> >> >> >> >> Again ,the relation between temporary and bootstrap classloder? >> And >> >> >> >> why temporary ? >> >> >> > >> >> >> > Temporary because until the OSGi framework is up you wont know >> which >> >> >> > bundle the classes belong to and thus wont know which bundle >> >> >> > classloader >> >> >> > the classes should belong to. Alternatively, I suppose you could >> >> >> > implement minimal support for reading OSGi headers from manifests >> >> >> > in the VM so that you could assign classes to what would become a >> >> >> > bundle >> >> >> > classloader when the framework is up. >> >> >> > >> >> >> > -Mark. >> >> >> >> >> >> >> >> >> This makes sense to me. The VM simply grabs in all the stuff "as >> >> >> usual" including the OSGi framework, then sort them out according to >> >> >> the bundles' definitions. >> >> >> >> >> >> It could be VM-neutral, because it is the VM's own business to take >> >> >> care of its loaded classes. A callback interface OSGI_ready() can >> >> >> inform the VM to tidy up the classes loaded for OSGi (or before it is >> >> >> ready). >> >> >> >> >> >> Thanks, >> >> >> xiaofeng >> >> >> >> >> >> >> >> >> >> > Once the OSGi framework is configured the system classes need >> to >> >> >> >> > be >> >> >> >> > moved to the correct classloader for the OSGi bundle to which >> they >> >> >> >> > belong. >> >> >> >> > >> >> >> >> > This means that during the initial starting-OSGi-framework phase >> >> >> >> > the OSGi bundle import/exports will not be enforced but, other >> >> >> >> > than >> >> >> >> > implementing OSGi in the VM, I don't see how to avoid this. >> >> >> >> > >> >> >> >> > The multiplicity of bootstrap classloaders still needs to be >> >> >> >> > hidden >> >> >> >> > since the API demands that getClassLoader should return null for >> >> >> >> > the >> >> >> >> > bootstrap classloader(s). >> >> >> >> > >> >> >> >> > The biggest problem is probably how to implement this as >> >> >> VM-independent >> >> >> >> > API such that a VM wanting to implement OSGi had to provide only >> a >> >> >> >> > minimal C/Java interface in order to gain OSGi support. >> >> >> >> > >> >> >> >> > Regards, >> >> >> >> > Mark. >> >> >> >> > >> >> >> >> > > I will look more closely on this problems and let you know if >> >> >> >> > > there >> >> >> some >> >> >> >> > > progresses made. >> >> >> >> > > Thanks a lot ! >> >> >> >> > >> >> >> >> > > 2009/5/18 Pavel Pervov <[email protected]> >> >> >> >> > > >> >> >> >> > > > I do not know osgi model in detail, but what minimal set of >> >> >> classes is >> >> >> >> > > > needed to start osgi model itself? Then we could delegate to >> >> >> "system" >> >> >> >> > > > bundle loader from bootstrap classloader. >> >> >> >> > > > >> >> >> >> > > > 2009/5/18, tian galaxy <[email protected]>: >> >> >> >> > > > > Yes , implement osgi loading model in there is too >> complex. >> >> >> >> > > > > >> >> >> >> > > > > We know some modules are more important than others , >> >> >> >> > > > > performing >> >> >> some >> >> >> >> > > > > fundamental , basic functions . >> >> >> >> > > > > Is it possible to only load these more" basic " modules >> with >> >> >> >> > bootstrap >> >> >> >> > > > class >> >> >> >> > > > > loader and make the other modules work the osgi bundle? >> >> >> >> > > > > Actually I don't quite understand why system classes could >> >> >> >> > > > > only >> >> >> be >> >> >> >> > loaded >> >> >> >> > > > by >> >> >> >> > > > > bootstrap class loader?I noticed that there are some >> safety >> >> >> concerns >> >> >> >> > > > > ,is there any reasons other than that? >> >> >> >> > > > > Thanks ! >> >> >> >> > > > > >> >> >> >> > > > > >> >> >> >> > > > > 2009/5/18 Pavel Pervov <[email protected]> >> >> >> >> > > > > >> >> >> >> > > > >> Short answer is "no". You'll have to implement osgi >> loading >> >> >> model >> >> >> >> > > > >> inside bootstrap classloader. Is it too complex? >> >> >> >> > > > >> >> >> >> >> > > > >> 2009/5/18, tian galaxy <[email protected]>: >> >> >> >> > > > >> > Hi Pavel. >> >> >> >> > > > >> > >> >> >> >> > > > >> > Thanks. >> >> >> >> > > > >> > Yes ,that's right .My question is whether there is a >> way >> >> >> >> > > > >> > to >> >> >> load >> >> >> >> > the >> >> >> >> > > > >> system >> >> >> >> > > > >> > class by class loader other than the bootstrap class >> >> >> >> > > > >> > loader >> >> >> ? >> >> >> >> > > > >> > If we could load the system class by different loaders >> >> >> >> > > > >> > other >> >> >> than >> >> >> >> > the >> >> >> >> > > > >> > bootstrap class loader then there is a chance to make >> the >> >> >> harmony >> >> >> >> > > > >> > runtime >> >> >> >> > > > >> to >> >> >> >> > > > >> > be osgi-ed. >> >> >> >> > > > >> > I trying to work on this problem . Do you have any >> >> >> suggestions ? >> >> >> >> > > > >> > >> >> >> >> > > > >> > >> >> >> >> > > > >> > 2009/5/18 Pavel Pervov <[email protected]> >> >> >> >> > > > >> > >> >> >> >> > > > >> >> Tian, >> >> >> >> > > > >> >> System classes are all loaded with bootstrap >> >> >> >> > > > >> >> classloader. >> >> >> >> > > > >> >> It >> >> >> is >> >> >> >> > > > >> >> written in C++ and is located in >> >> >> >> > > > >> >> working_vm/vm/vmcore/src/class_support/classloader.cpp >> >> >> >> > > > >> >> >> >> >> >> > > > >> >> 2009/5/17, tian galaxy <[email protected]>: >> >> >> >> > > > >> >> > Hi all >> >> >> >> > > > >> >> > I have a question about the classloading in the >> drlvm. >> >> >> >> > > > >> >> > >> >> >> >> > > > >> >> > I know that there are kernel library inside the >> drlvm >> >> >> >> > > > >> >> > such >> >> >> as >> >> >> >> > > > >> >> > java.lang.classloader, which enclose the the >> >> >> systemclassloader. >> >> >> >> > And >> >> >> >> > > > >> this >> >> >> >> > > > >> >> > class is loaded and used in the process of creating >> VM >> >> >> >> > > > >> >> > . >> >> >> >> > > > >> >> > While the systemclassloader is a subtype of >> >> >> >> > > > >> >> > urlclassloader >> >> >> >> > which is >> >> >> >> > > > >> >> > in >> >> >> >> > > > >> >> the >> >> >> >> > > > >> >> > "luni" module.So does the JNI_CreateJavaVM >> >> >> >> > > > >> >> > also load the urlclassloader in the boot procedure >> of >> >> >> >> > > > >> >> > vm >> >> >> ?(I >> >> >> >> > failed >> >> >> >> > > > >> >> > to >> >> >> >> > > > >> >> > search related code in the source code of drlvm). >> >> >> >> > > > >> >> > If so , when ?Before or after the jni available ? >> >> >> >> > > > >> >> > Since I am trying to implement the osgi on harmony >> and >> >> >> >> > > > >> >> > the >> >> >> osgi >> >> >> >> > > > works >> >> >> >> > > > >> >> with >> >> >> >> > > > >> >> > bundles (modules) , I think I need to know the >> >> >> >> > > > >> >> > procedure >> >> >> of >> >> >> >> > booting >> >> >> >> > > > >> and >> >> >> >> > > > >> >> > loading of class from different modules at the start >> >> >> >> > > > >> >> > up >> >> >> time. >> >> >> >> > > > >> >> > Any clue about this ?Thanks >> >> >> >> > > > >> >> > >> >> >> >> > > > >> >> > plus,do we have the source code of java.exe ?Where? >> >> >> > >> >> >> > >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> http://people.apache.org/~xli <http://people.apache.org/%7Exli> >> >> >> >> >> > >> >> > >> >> > >> >> > -- >> >> > Regards >> >> > Michael Tian >> >> > >> >> >> > >> > >> > >> >
