Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 326770 - Modify deployer to never fault in an optional dependency
Summary: Modify deployer to never fault in an optional dependency
Status: NEW
Alias: None
Product: Virgo
Classification: RT
Component: unknown (show other bugs)
Version: unspecified   Edit
Hardware: PC Mac OS X - Carbon (unsup.)
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-01 07:51 EDT by Steve Powell CLA
Modified: 2011-11-29 11:36 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steve Powell CLA 2010-10-01 07:51:42 EDT
Currently the kernel deployer 'faults-in' dependencies from the repository chain that are not present when an artifact collection is being resolved.  This provisioning saves a lot of time and documentation effort in the packaging of applications, and means that pars or wars don't have to contain everything.

The drawback is that if there are a lot of optional component dependencies (and there nearly always are), the deployer will attempt to get them all from the repository chain. If the chain had a remote repository with a lot of components in it (the EBR, for example?) then a deployment could easily be bloated and >very< slow to resolve.

If the deployer >never< provisioned optional dependencies there would be two consequences:
  1  the EBR would only be used to provision mandatory dependencies -- this avoids the EBR in the chain problem and speeds up resolution (things are orders of magnitude simpler without optionals);
  2  applications that want to exploit optional dependencies WONT GET THEM provisioned UNLESS THEY EXPLICITLY deploy them.

Apps today might behave differently, but the workaround is simple -- put the optionals you really want into a plan with your app, and deploy the plan.  Since plans can refer to plans, the 'required optional' can be placed at the correct place in the packaging tree.

This is an enhancement, since a way of controlling this behaviour (for backwards compatibility) would appear to be necessary, and is yet to be designed.
Comment 1 Glyn Normington CLA 2011-11-29 11:36:16 EST
With reference to bug 315869, one way of controlling the behaviour proposed by this bug would be to use a plan attribute setting of dependencies=noinstalloptional. This would make the behaviour switchable on a plan basis, which seems not unreasonable.