Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jdt-ui-dev] Pre-reqs are not exported


I said "tag", singular.  So if I do require *one* of the same pre-reqs, I need to require the same version, so I need to copy that one tag exactly (otherwise I might pick up a different version).

I agree class loading is very important.  But, If everyone follows this convention, the people at the bottom might end up with 100+ requires statements.  I guess the PDE should help out at managing this list. Are there any benchmarks that show startup time comparisons each way?

In my graph, I'm going to continue "promoting" plugins even though they aren't exported.  This makes for much easier reading, without any real loss of meaning.  Hopefully I can post a "Map of Eclipse" pretty soon.

-randy



"Erich Gamma" <Erich_Gamma@xxxxxxx>
Sent by: jdt-ui-dev-admin@xxxxxxxxxxx

12/16/2002 06:07 PM
Please respond to jdt-ui-dev

       
        To:        jdt-ui-dev@xxxxxxxxxxx
        cc:        jdt-ui-dev@xxxxxxxxxxx
        Subject:        Re: [jdt-ui-dev] Pre-reqs are not exported




nice words & nice try <g>

>Do you agree that by not re-exporting plugins, you are requiring
downstream
>plugins to copy *exactly* your <requires> tag?
Not really, a downstream plugin can more precisely state its dependencies.
For example a plugin that requires org.eclipse.jdt.ui
doesn't have to require org.eclipse.jdt.debug.ui plugin.
See org.eclipse.jdt.junit as example, it doesn't
require access to the org.eclipse.compare classes and
hence org.eclipse.compare isn't listed as a pre-req plugin.
By precisely stating your dependencies the class look-up
for your plugin will be more efficient since
less plugin class loaders will have to be consulted when looking-up a
class.

--erich



                                                                                                                                       
                     Randy Hudson                                                                                                      
                     <hudsonr@xxxxxx.c         To:      jdt-ui-dev@xxxxxxxxxxx                                                        
                     om>                       cc:                                                                                    
                     Sent by:                  Subject: Re: [jdt-ui-dev] Pre-reqs are not exported                                    
                     jdt-ui-dev-admin@                                                                                                
                     eclipse.org                                                                                                      
                                                                                                                                       
                                                                                                                                       
                     12/16/2002 03:42                                                                                                  
                     PM                                                                                                                
                     Please respond to                                                                                                
                     jdt-ui-dev                                                                                                        
                                                                                                                                       




I still don't see the harm in exporting.  I know all of Eclipse is
consistent, I just decided to ask JDT for the reason because you guys are
so smart :-)

Do you agree that by not re-exporting plugins, you are requiring downstream
plugins to copy *exactly* your <requires> tag?  If they don't copy it
exactly, there is a risk of the downstream plugin picking up a different
version of the pre-req than the one JDT-UI picks up, which would cause a
link error (2 different versions of the same class) at runtime.  So, if I
have to copy your tag exactly .... ?

Randy


                                                                         
  "Erich Gamma"                                                          
  <Erich_Gamma@xxxxxxx>                  To:                              
  Sent by:                       jdt-ui-dev@xxxxxxxxxxx                  
  jdt-ui-dev-admin@xxxxxxxxxxx           cc:                              
                                 jdt-ui-dev@xxxxxxxxxxx                  
                                         Subject:        Re: [jdt-ui-dev]
  12/16/2002 04:03 AM            Pre-reqs are not exported                
  Please respond to jdt-ui-dev                                            
                                                                         






The convention is that dependent plug-in classes are not reexported to
clients. This makes the plugin dependencies explicit. Jdt-ui should not be
different from other plugins in the platform.

Notice that most uses of exports are the consequence of a plugin split (see
org.eclipse.ui as an example). In these cases exporting was used to not
break existing clients of the splitted plug-in.

--erich




                    Randy Hudson

                    <hudsonr@xxxxxx.c         To:
jdt-ui-dev@xxxxxxxxxxx

                    om>                       cc:

                    Sent by:                  Subject: [jdt-ui-dev]
Pre-reqs are not exported
                    jdt-ui-dev-admin@

                    eclipse.org



                    12/16/2002 01:56

                    AM

                    Please respond to

                    jdt-ui-dev






jdt.ui requires several plugins, but the plugins are not exported. What is
the reasoning behind not exporting these plugins to other plugins that
pre-req jdt.ui?

Much of the public API in jdt-ui requires that these other plugins be
present *AND* that they be exactly the same version.  For example,
IClassPathEntry returns an IPath, which is from org.eclipse.core.runtime.
Why make other plugins prereq both jdt.ui and core.runtime? The only reason
I can think of is to optimize for the plugin class loader.

The reason I am asking is that I am writing a graphical view of the plugin
registry.  Each plugin is represented as a box, and lines are used to show
the plugins required by each plugin.  Plugins are positioned vertically (in
ranks) such that all required plugins appear above a given plugin.  Long
lines make the diagram hard to read, so I added code to reduce redundant
imports. Then I found out that there weren't any redundant imports, so I
cheated.  Without changes, a diagram of all Eclipse plugins requires about
300 lines.  If I cheat and "export" all requires statements, the same
diagram only needs about 85 lines.

Randy Hudson


_______________________________________________
jdt-ui-dev mailing list
jdt-ui-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/jdt-ui-dev



_______________________________________________
jdt-ui-dev mailing list
jdt-ui-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/jdt-ui-dev


Back to the top