Commit graph

10 commits

Author SHA1 Message Date
3dc2f5b8d1 Automatically-added singletons
The registry can maintain a set of classes that contain annotated
singletons corresponding to the components.
2015-09-17 22:06:53 +02:00
5032e44182 Changes for component-provided names
* The component registration record may now include a "name provider" (a
function returning a string based on an instance of the component),
which will be used to determine the component's name.
* NameProvider annotation indicates a method that returns the
component's name
2015-09-17 13:33:39 +02:00
c4ff9e4339 Registry - Methods to get ALL component states 2015-09-17 11:00:26 +02:00
68a337ec6a Component state and registry - Drivers support
A component with "drivers" will initialise/start its drivers after it is
initialised/started itself. It will also stop/destroy non-driver reverse
dependencies before stopping/destroying its drivers.
2015-09-17 10:57:46 +02:00
81ea62047e Component state and registry - fixes and refactoring
* Errors during shutdown or destruction will be thrown as exceptions.
Returning the collection of errors was clumsy, at best - if something
goes wrong, the registry has failed anyway.
* Recursive initialisation and destruction methods in ComponentState
* Use ComponentState's methods while initialising, starting up, shutting
down or destroying the registry.
2015-09-17 10:18:09 +02:00
99687c68eb TODO list update
Items that had been forgotten and/or that were "obvious"
2015-09-17 09:10:24 +02:00
6d0753c7a8 Components registration - package scanning 2015-09-16 17:50:13 +02:00
0c23f613d6 Improved component naming
* Setting a component information record's name to null will lead to an
anonymous component, while setting it to an empty string will lead to an
component whose name is that of its class.
* New Anonymous annotation to indicate that a component is meant to be
anonymous (conflicts with ParametricComponent or valued Component
annotations).
2015-09-16 11:10:54 +02:00
36887ae759 Registry-aware components
The RegistryAware interface can be implemented in order to let the
component know of the registry it is being bound to.
2015-09-16 10:45:40 +02:00
f2cff8995b TODO list 2015-09-16 10:39:24 +02:00