2 opzoeken waar de provided interfaces van de scope gebruikt worden, als het
3 goed is nog nergens. Scope moet een Component worden en publiceren van een
4 interface leidt tot een nieuw provided interface.
6 checks implementeren in de connect methodes van de container op de juiste ids.
8 Wrapper maken voor read-only access to required interfaces en provided interfaces.
10 Component infrastructure
11 * support simple component
12 - requires through constructor
13 - provides through getters
14 * optional start and stop methods
15 * giving names to a component must be optional
16 * support for cached components and non-cached components.
19 - Annotaties definieren
25 public MyComponent(Def aArg, Ghi aArg2) {
28 @Provided(name = "name")
32 public void myStart(); // Unlike the component
35 - Algemene classes maken die de constructor, start method, en
36 methodes identificeren om de component als Component te benaderen.
37 in een object, samen met een wrapper die deze info gebruikt om het
38 object als Component te exportern.
39 Er moet ook een wrapper zijn voor reeds geinstantieerde objecten.
41 - wrapper maken die geannoteerde classes interpreteert en via de eerdere
42 wrapper het object ontsluiten als component.
43 Zowel geinstantieerde objecten als classes ondersteunen.
45 - add support for private setters.
46 - add support or exposing provided services
47 - superclass or interface of the concrete type instead of the concrete type
48 or not based on the concrete type at all.
50 - add support for field injection.
52 - add support for annotation based configuration instead of API-based
54 - add support for type conversions.
56 - add support for multiplicity.
58 - add support for aggregating multiple servicss.
60 - add support for explicitly configuring which provided interface of
61 a container is provided by which internal service.
63 - do not use equality but use logic for matching external required and
64 provided interfaces of a container.
66 e.g. a service T provided by a container can be provided by a service
67 U that provides subclasses of the provided interfaces of T
69 a service T required by a component inside a container is covered
70 by stronger requirements for subclasses of T.
72 - separate logic for connecting required and provided interfaces
73 through a general graph model of the application.
74 Then use generic filters, validations, and graph traversal APIs
75 to implement the current functionality in the container.