harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From galaxy <tian.gal...@gmail.com>
Subject Re: The OSGi-Harmony Runtime
Date Tue, 18 Aug 2009 05:38:19 GMT
2009/8/18 Jimmy,Jing Lv <firepure@gmail.com>

> Hi,
>
>     I've create a new page on Wiki:
> http://wiki.apache.org/harmony/OSGi-Harmony_Runtime , everyone can refine
> it
> at any time.
>     And TianYu, I see your new JIRAs on the JIRA system, I will check and
> apply it.
>
>     BTW TianYu, just a suggestion, if you add "[GSoC]" before the mail/jira
> title, it may be more clear to find and read :)
>
OK ,thanks

>
> 2009/8/16 galaxy <tian.galaxy@gmail.com>
>
> > Hi Mingjian,
> > Maybe I am not clear enough in the introduction :)
> >
> > The main theme of the work is to let some of the modules to be governed
> by
> > the OSGi framework and then
> > make the whole " jre + felix + osgi bundles (modules) " a  working
> runtime
> > of java ,could run the java applications
> > in the normal way .The transparency from the user side I think.
> >
> >
> > 2009/8/16 Jin Mingjian <jin.phd@gmail.com>
> >
> > > galaxy, still good work:) I am not the man to evaluate your work:)
> > >
> > > your work = mini Harmony jre + Felix?
> > >
> > > such as one question:
> > > how your runtime works?
> >
> > I think the best outcome is that it can work the same as a normal JRE
> from
> > the user's point of view
> >
> > > Does it support mixed jar usage?(seem your "For B"?
> > > A bundle jar can be seen as a bundle or a pure application jar depended
> > on
> > > the context. there are some interesting things happened here)
> >
> > the classloading mechanism  I listed in the review determines that
> classes
> > in the osgi
> > bundle will come before app , so if the same jar files acts as a bundle
> and
> > at the same time a app jar , the app jar file is useless I think.
> >
> > >
> > >
> > >
> > >
> > >
> > > 2009/8/16 galaxy <tian.galaxy@gmail.com>
> > >
> > > > I'm sorry but I think you should have missed some thing in the review
> > > .the
> > > > OSGi framework I use is Felix, and all the security and dynamic comes
> > > from
> > > > it and built in with it,
> > > > if you want to find the osgi-ed security and dynamic
> > > > does this answer your question ?
> > > >
> > > > 2009/8/16 Jin Mingjian <jin.phd@gmail.com>
> > > >
> > > > > interesting. I'd like to mainly examine the dynamic and security
of
> > > > > your OSGi-Harmony runtime when the codes is ready.
> > > > >
> > > > > 2009/8/16 Xiao-Feng Li <xiaofeng.li@gmail.com>
> > > > >
> > > > > > Good work! How much is the size of the minimum OSGi-ed JRE?
> > > > > >
> > > > > > Thanks,
> > > > > > xiaofeng
> > > > > >
> > > > > > On Sun, Aug 16, 2009 at 3:22 PM, galaxy<tian.galaxy@gmail.com>
> > > wrote:
> > > > > > > Hi  all
> > > > > > >    Now the code for OSGi-ed Runtime of Harmony is almost
> complete
> > ,
> > > > I'd
> > > > > > > like to give a review of
> > > > > > > the work so far.The code and usage will be uploaded together
> soon
> > > > > > >
> > > > > > > Introduction To OSGi-ed JRE
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > 1 : The main purpose
> > > > > > >
> > > > > > > OSGi has become one of the best ways to govern the jar
files in
> a
> > > > > number
> > > > > > of
> > > > > > > applications Such as the power it exhibits in eclipse .And
as
> we
> > > all
> > > > > know
> > > > > > > ,the Harmony runtime is a modularized one and each module
,
> with
> > > its
> > > > > > > manifest file , is just like one bundle in the OSGi framework
> .So
> > > we
> > > > > are
> > > > > > > think of governing the modules in Harmony runtime in a
OSGi-ed
> > way.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > 2 : Ways to meet the main purpose
> > > > > > >
> > > > > > >       Naturally, there are two ways to meet this purpose:
> > > > > > >
> > > > > > > A  Implementing the OSGi framework in VM in C/C++ to govern
all
> > the
> > > > > java
> > > > > > > modules
> > > > > > >
> > > > > > > B  Using one of the OSGi-ed framework implemented in java
to
> > > > > implemented
> > > > > > a
> > > > > > > half OSGi-ed JRE.
> > > > > > >
> > > > > > >       Finally I picked the plan B with the well known OSGi
> > > framework
> > > > > > :Felix
> > > > > > > .And the reasons are as follows
> > > > > > >
> > > > > > > First : Implementing a OSGi-ed framework from scratch in
c/c++
> in
> > > the
> > > > > vm
> > > > > > is
> > > > > > > difficult and time-consuming .
> > > > > > >
> > > > > > > Second : Plan A suffers from the facts that implementations
> > differs
> > > > > huge
> > > > > > > from VM to VM .Plan B won’t have this kind of problem
as long
> as
> > > the
> > > > > > modules
> > > > > > > comply with the OSGi specifications and we have a adapted
> > java.exe
> > > ,
> > > > > the
> > > > > > > rest is nearly the same.
> > > > > > >
> > > > > > > Third : Beside the framework ,each OSGi implementation
has a
> lot
> > of
> > > > > > add-ons
> > > > > > > .This will facilitate future development of new features
and
> > > > utilities
> > > > > > .For
> > > > > > > example : the could use the bundle fileinstall to install
all
> the
> > > jar
> > > > > > files
> > > > > > > lies in a folder ,very helpful in certain circumstances.This
> > could
> > > be
> > > > > > done
> > > > > > > rapidly if we choose plan B .
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > 3 : Problems and fixes
> > > > > > >
> > > > > > > The difficulties ,or the main tasks ,of this project are
as
> > follows
> > > > > > >
> > > > > > > A     Find the minimum working environment of OSGi-framework
> and
> > > > modify
> > > > > > the
> > > > > > > rest modules in Harmony ,mainly the manifest file ,to resolve
> the
> > > > > > coupling
> > > > > > >
> > > > > > > B     Modify the classloading mechanism and booting of
the jre
> to
> > > be
> > > > > able
> > > > > > > run normal java applications
> > > > > > >
> > > > > > > And the fixes are
> > > > > > >
> > > > > > > For A:
> > > > > > >
> > > > > > > Harmony is a modularized runtime .So determine the minimum
> > working
> > > > > > > environment is no more than choose the right module to
stay
> with
> > > the
> > > > VM
> > > > > > > .However ,although the coupling is little , it does exist
. So
> a
> > > > > > > modification of the module is necessary ,mainly the manifest
> file
> > > > .And
> > > > > as
> > > > > > I
> > > > > > > want  to remain the original structure of Harmony as largely
as
> > > > > possible
> > > > > > > ,more contents (classes ) will be included in the minimum
> > > environment
> > > > > > other
> > > > > > > than splitting the modules apart .The final jre include
the
> > > following
> > > > > > > component :
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > luni.jar
> > > > > > >
> > > > > > > annotation.jar
> > > > > > >
> > > > > > > security.jar
> > > > > > >
> > > > > > > math.jar
> > > > > > >
> > > > > > > text.jar
> > > > > > >
> > > > > > > regex.jar
> > > > > > >
> > > > > > > noi_char.jar
> > > > > > >
> > > > > > > nio.jar
> > > > > > >
> > > > > > > logging.jar
> > > > > > >
> > > > > > > concurrent.jar
> > > > > > >
> > > > > > > archive.jar
> > > > > > >
> > > > > > > the ICU4J folder.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > The remaining jars are governed by the OSGi framework to
> handle.
> > > One
> > > > > more
> > > > > > > thing to mention is the two classes
> > > > > > >
> > > >
> ,”java.beans.PropertyChangelinstener”,”java.beans.PropertyChangeEvent”
> > > > > > has
> > > > > > > to be moved out of beans.jar .This is because of the coupling
> of
> > > > > > beans.jar
> > > > > > > with other modules in the minimum runtime .Well the good
thing
> is
> > > > these
> > > > > > two
> > > > > > > classes havn’t imports any other classes in the modules
> governed
> > by
> > > > the
> > > > > > OSGi
> > > > > > > framework .I think we could include them in any modules
lie in
> > the
> > > > > > minimum
> > > > > > > runtime as long as the VM could find them .
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > For B:
> > > > > > >
> > > > > > > I added one extra sphere between the VM and the main class
to
> run
> > > > > > > .org.apache.osgi.FelixStarter. , the following is done
in this
> > > class
> > > > > > >
> > > > > > > First: Loading the configurations and Start Felix ,the
OSGi
> > > framework
> > > > > we
> > > > > > use
> > > > > > >
> > > > > > > Second: Initializing the class org.apache.osgi.OsgiClassLoader
> > > ,this
> > > > > > class
> > > > > > > will load the main class and subsequently all the classes
used
> in
> > > the
> > > > > > main
> > > > > > > class
> > > > > > >
> > > > > > > Third: Transfer the arguments to the “real “ main class
,invoke
> > the
> > > > > main
> > > > > > > method .
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > The sequence of class loading is as follows :
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > First : Check the class name to determine whether it should
be
> > > loaded
> > > > > by
> > > > > > the
> > > > > > > parent class loader .This work is done by specifying the
> > > > > > > “org.osgi.framework.bootdelegation” property to include
all the
> > > > package
> > > > > > > names in the modules stays in the VM .
> > > > > > >
> > > > > > > Second : load the classes in the bundle governed by the
> framework
> > > .I
> > > > > will
> > > > > > > examine each bundle's export and import property to search
for
> > the
> > > > > class
> > > > > > > name ;
> > > > > > >
> > > > > > > Third : the classes in the application’s class path .
> > > > > > >
> > > > > > > Finally : we could not find the class and a
> > ClassNotFoundException
> > > > will
> > > > > > be
> > > > > > > thrown .
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Both the OSGi framework and the Harmony do not allow the
define
> ,
> > > > > imports
> > > > > > or
> > > > > > > exports of java.* classes and packages ,so a lot of examines
> has
> > > been
> > > > > > > removed to facilitate our purpose .
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > regards
> > > > > > > Tian
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > http://people.apache.org/~xli <http://people.apache.org/%7Exli>
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > regards
> > > > Tian
> > > >
> > >
> >
> >
> >
> > --
> > regards
> > Tian
> >
>
>
>
> --
>
> Best Regards!
>
> Jimmy, Jing Lv
> China Software Development Lab, IBM
>



-- 
regards
Tian

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message