Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [wtp-dev] Re: Improve WTP startup performance, use manifest instead of plugin.xml


Hi,

Most of Eclipse has used the 'Hide this package' checkbox instead. This allows downstream plugins to make use of the internal classes but receive a compile warning by default. The warning can be removed or changed into an error by using the JDT's new 'Discouraged reference' setting under the Java > Compiler > Errors/Warnings preferences. (BTW, you might want to go into all of your JUnit plugins and enable project specific settings to disable this, since most JUnit plugins will make use of internal API) Until we are confident that we've got the right API exposed we should use this option instead of not exposing packages at all.

Where appropriate, the 'friends' option can also be used by adding plugins to the list right below the checkbox. This allows the named plugins to have unrestricted access to the packages, but restricts everyone else. This is appropriate for things like core/UI plugin pairs (or within a component) so that the UI plugin does not receive warnings when using internal classes in the core plugin.

Tim deBoer
WebSphere Tools - IBM Canada Ltd.
(905) 413-3503  (tieline 969)
deboer@xxxxxxxxxx



Jeffrey Liu/Toronto/IBM@IBMCA
Sent by: wtp-dev-bounces@xxxxxxxxxxx

05/31/2005 10:52 AM

Please respond to
"General discussion of project-wide or architectural issues."

To
"General discussion of project-wide or architectural issues." <wtp-dev@xxxxxxxxxxx>
cc
Subject
RE: [wtp-dev] Re: Improve WTP startup performance,        use manifest instead of plugin.xml






Hi Philippe,


I got to admit, I'm not very familiar with this feature myself. Is this feature becoming the convention on how to hide internal packages? If so, I totally agree that we should exploit this feature more, but probably not in the 1.0 timeframe. My concern with the 1.0 timeframe is that we have been freely using APIs within ourselves, I'm pretty sure hiding internal APIs now will cause tons of compilation errors. Doesn't sound like something that we want to do at this stage, but definitely in the next release. So for the moment, I made everything available, just like when we are using plugin.xml. If component leads strongly believe a certain package should not be available to clients, feel free. Just make sure your change does not break anyone higher up.


Thanks,


Jeffrey Liu
IBM Rational Software - Performance Analyst
IBM Toronto Lab.
8200 Warden Ave. Markham, Ontario, L6G 1C7
Internal mail: D3/R8V/8200/MKM (D3-268)
T/L: 969 3531
Tel: (905) 413 3531
Fax: (905) 413 4920
jeffliu@xxxxxxxxxx



"Philippe Ombredanne" <pombredanne@xxxxxxxxx>
Sent by: wtp-dev-bounces@xxxxxxxxxxx

05/30/2005 06:43 PM

Please respond to
"General discussion of project-wide or architectural issues."

To
"'General discussion of project-wide or architectural issues.'" <wtp-dev@xxxxxxxxxxx>
cc
Subject
RE: [wtp-dev] Re: Improve WTP startup performance,        use manifest instead of plugin.xml







Jeffrey,

Note that if you are systematically adding packages to the manifest you are a bit defeating the idea behind this feature.

Instead you would want to do it only for non internal package, and only add new packages when that is required by another plugin.

If that is an internal package, then you may want to consider creating some public API between them at that stage, and taking them out of internals.

A bit similar to the idea to start coding with a private method, and make it progressively protected to public, as needed.

But limiting the visibility by default to the least needed visibility.

It has the side benefit of respecting Eclipse's conventions, as well as progressively make API things which are needed by other plugins within WTP.

And they might happen to be exactly the things that other folks building integration with WTP may be willing to extend too.

Just my 2cents... :-)

--
Cheers
Philippe

philippe ombredanne | nexB - Open by Design (tm)
1 650 799 0949 | pombredanne at nexb.com

http://www.nexb.com

-----Original Message-----
From:
wtp-dev-bounces@xxxxxxxxxxx [mailto:wtp-dev-bounces@xxxxxxxxxxx] On Behalf Of Jeffrey Liu
Sent:
Monday, May 30, 2005 3:14 PM
To:
General discussion of project-wide or architectural issues.
Subject:
Re: [wtp-dev] Re: Improve WTP startup performance,use manifest instead of plugin.xml



I've comitted the plugin.xml to manifest conversion into CVS. A couple of things to watch out for:


1. In the future, if you are adding new Java packages to your plugin, be sure to add them to the manifest file. If you don't do this, the newly added packages will not be visible to plugins higher up the stack. You can use the plugin editor to add the packages. Double click on plugin.xml and switch to the runtime tab.


2. If you are using M7, read on. I know a couple of people (myself included) have run into compilation errors that read something like the following:


Access restriction: package org.eclipse.wst.<whatever> is not visible.


If you run into this, shutdown Eclipse, bring it back up, re-build/clean all projects and the errors will go away. M7 bug, seems to be fixed in RC1.


Thanks,


Jeffrey Liu
IBM Rational Software - Performance Analyst
IBM Toronto Lab.
8200 Warden Ave. Markham, Ontario, L6G 1C7
Internal mail: D3/R8V/8200/MKM (D3-268)
T/L: 969 3531
Tel: (905) 413 3531
Fax: (905) 413 4920
jeffliu@xxxxxxxxxx


Jeffrey Liu/Toronto/IBM@IBMCA
Sent by: wtp-dev-bounces@xxxxxxxxxxx

05/27/2005 01:29 PM

Please respond to
"General discussion of project-wide or architectural issues."


To
"General discussion of project-wide or architectural issues." <wtp-dev@xxxxxxxxxxx>
cc
"General discussion of project-wide or architectural issues." <wtp-dev@xxxxxxxxxxx>, wtp-dev-bounces@xxxxxxxxxxx
Subject
Re: [wtp-dev] Re: Improve WTP startup performance,        use manifest instead of plugin.xml










Thanks Larry. I won't change any of the RDB plugins.


Jeffrey Liu
IBM Rational Software - Performance Analyst
IBM Toronto Lab.
8200 Warden Ave. Markham, Ontario, L6G 1C7
Internal mail: D3/R8V/8200/MKM (D3-268)
T/L: 969 3531
Tel: (905) 413 3531
Fax: (905) 413 4920
jeffliu@xxxxxxxxxx

Lawrence E Dunnell <ledunnel@xxxxxxxxxx>
Sent by: wtp-dev-bounces@xxxxxxxxxxx

05/27/2005 01:20 PM

Please respond to
"General discussion of project-wide or architectural issues."


To
"General discussion of project-wide or architectural issues." <wtp-dev@xxxxxxxxxxx>
cc
wtp-dev@xxxxxxxxxxx, wtp-dev-bounces@xxxxxxxxxxx
Subject
Re: [wtp-dev] Re: Improve WTP startup performance,        use manifest instead of plugin.xml












Jeffrey,


Please do not make this change for the RDB component.


RDB component must run on Eclipse 3.0.  I believe if you deliver this change, you will break us for Eclipse 3.0.

Larry Dunnell
RAD Data Tools and DB2 Tooling
IBM DB2 Information Management Software

Notes address: Lawrence E Dunnell/Redmond/IBM@IBMUS
Internet address: ledunnel@xxxxxxxxxx
tel: 425 949 1058
tie line: 349 4422
Jeffrey Liu <jeffliu@xxxxxxxxxx>
Sent by: wtp-dev-bounces@xxxxxxxxxxx

05/27/2005 10:18 AM

Please respond to
"General discussion of project-wide or architectural issues."


To
wtp-dev@xxxxxxxxxxx
cc
Subject
[wtp-dev] Re: Improve WTP startup performance,        use manifest instead of plugin.xml














Component leads,


We have yet to convert our plugin.xml to manifest. Since I've already made the change in my local workspace, I'll go ahead and commit all of them unless you object.


Thanks,


Jeffrey Liu
IBM Rational Software - Performance Analyst
IBM Toronto Lab.
8200 Warden Ave. Markham, Ontario, L6G 1C7
Internal mail: D3/R8V/8200/MKM (D3-268)
T/L: 969 3531
Tel: (905) 413 3531
Fax: (905) 413 4920
jeffliu@xxxxxxxxxx
Jeffrey Liu/Toronto/IBM

05/15/2005 02:26 PM


To
wtp-dev@xxxxxxxxxxx
cc
Subject
Improve WTP startup performance, use manifest instead of plugin.xml














I've done some measurements of using manifest.mf verses plugin.xml. Results suggest that using manifest.mf can improve startup performance. Details below:
manifest.mf (sec) plugin.xml (sec)
Cold startup (reboot, new install) - elapsed time 49.9 54.2
Cold startup (reboot, existing install) - elapsed time 22.8 24.4
Warm startup - elapsed time 4.5 4.7







The numbers are based on 5 sample runs each. In case of cold startup, it shows ~8% improvement. Althought warm startup is not as impressive and that users will probably not notice it, still, this is a cheap investment with nice gain. I suggest we do this in M5. Here's what needs to be done:


1. Open up your plugin.xml in the Plug-in Manifest Editor. In the Overview tab, there's a link that creates the manifest.mf file. Click that link.




2. Switch to the Runtime tab and make sure your packages are exported. If they are not, add them to the list.




3. Save and close the editor. Commit and release your changes.


This change does not need to be coordinated since you can have plug-ins that use plugin.xml and other plug-ins that use manifest.mf. It's a very simple change, should only take 15 minutes. Can plug-in owners put in this change when they have a chance? Let me know if you have any concerns.


Thanks,


Jeffrey Liu
IBM Rational Software - Performance Analyst
IBM Toronto Lab.
8200 Warden Ave. Markham, Ontario, L6G 1C7
Internal mail: D3/R8V/8200/MKM (D3-268)
T/L: 969 3531
Tel: (905) 413 3531
Fax: (905) 413 4920
jeffliu@xxxxxxxxxx

_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev
_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev
_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev
_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev

_______________________________________________
wtp-dev mailing list
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev


Back to the top