Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 365034 - [Subsystems] Lift tree restriction
Summary: [Subsystems] Lift tree restriction
Status: CLOSED FIXED
Alias: None
Product: Virgo
Classification: RT
Component: runtime (show other bugs)
Version: 3.0.0.RELEASE   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 3.5.0.M03   Edit
Assignee: Glyn Normington CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 358441
  Show dependency tree
 
Reported: 2011-11-29 05:18 EST by Glyn Normington CLA
Modified: 2012-02-13 16:35 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Glyn Normington CLA 2011-11-29 05:18:44 EST
The scope of this bug is to remove the TreeRestrictingInstallArtifactLifecycleListener service and to add some integration tests (see below) that prove that non-tree DAGs of install artefacts can be created.

This change will need to be kept on a topic branch for bug 358441 until some other basic features are implemented, particularly bug 358448 to undeploy shared artefacts when they are no longer referenced, but also possibly bug 358442, bug 358443, bug 358445, and bug 358447 depending how serious their omission proves to be (i.e. whether any existing tests fail and whether the end user function is seriously lacking). 

There are various cases to consider which give rise to non-tree DAGs:

1. A plan is deployed which refers to an artefact which is already installed:
  1a. The artefact was already installed as a top-level artefact.
  1b. The artefact was already installed as a child of a plan.
  1c. The artefact was already installed as a transitive dependency of some deployed artefact(s).

2. An artefact is deployed which is already installed (including cases 1a, 1b, and 1c). It would be possible to fail the deployment in this case like we do today. OTOH it would be a little odd that you can deploy a top-level artefact and then a plan which refers to it, but not vice versa. So if we can figure out a way to make this work, that would be more consistent.

3. A plan is deployed which contains one or more nested plans that share at least one node. The deployed plan is itself a non-tree DAG.