bc2a0c69bb
Component registry - Fixed resolution of name-based dependencies
2015-09-22 09:29:07 +02:00
dc6668e6dc
Component registry - clean-up
2015-09-22 09:16:24 +02:00
7ccae60ba9
Component state - A few more missing tests
2015-09-17 23:51:31 +02:00
c62d3800e6
Component state - Tests for the "driver" code
2015-09-17 23:41:21 +02:00
97eb6477d7
Component state - Accessors for driver-related information
2015-09-17 22:41:52 +02:00
7cfb53c60e
Component state - tests for init and destroy
2015-09-17 22:37:11 +02:00
da28d57f10
Removed registry state checks in ComponentState
...
The init()/destroy() methods are only called from the registry, which
won't call them if it is in the failed state anyway.
2015-09-17 22:17:39 +02:00
5e433f940d
Fixed bad copypasta in registry
2015-09-17 22:15:47 +02:00
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
7558594ded
Lifecycle stage enum describes exception types
2015-09-17 09:18:41 +02:00
8314429023
Component lifecycle exceptions
...
Common base class + exceptions for shutdown and destruction
2015-09-17 09:15:59 +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
1969094daa
Component state - documentation
...
Also some minor refactoring.
2015-09-16 10:11:49 +02:00
e688bb366c
Component state - tests
2015-09-16 09:38:53 +02:00
618204b8b1
Component state - Fixed various bugs in stop()
...
* Stopping only if inactive...
* Calling the wrong lifecycle action...
2015-09-16 09:38:25 +02:00
2fa4227e5a
Component state - Code cleanup + method reordering
2015-09-15 17:05:21 +02:00
92ebf8dad2
Component state - Getters for dependencies and reverse dependencies
2015-09-15 17:00:18 +02:00
cced54a9fc
Component state - Bad toString() method
2015-09-15 16:45:03 +02:00
53128c5e77
Components registry - Start, stop, restart
2015-09-15 16:07:53 +02:00
d083be2676
Components registry - Initialisation and destruction
2015-09-15 15:12:44 +02:00
d554f02ede
Components registry - Component / component state query methods
2015-09-15 11:33:30 +02:00
59f28483dd
Components registry - Component registration
...
* Incomplete class for component state tracking
* Incomplete components registry class
* Various exceptions for problems that can occur during component
registration
2015-09-15 11:21:26 +02:00
5dc745670b
New component record - Unspecific dependency injector storage
...
Dependency injection functions are now stored as type-unspecific. This
makes them easier to use.
2015-09-15 09:40:46 +02:00
a932b90b7d
Tests for the component registration record
...
Tests are mostly about the fromClass() method, which processes
annotations.
2015-09-14 11:23:22 +02:00
9f5fbcbf3d
Component registration info - Rewrote dependency injector finder
...
Use the MemberFinder. Dependencies can be injected using methods.
2015-09-14 10:56:19 +02:00
a1ddf5f63a
Dependency info - separate class validation method
2015-09-14 09:56:43 +02:00
a95d71e770
Component registration info - Lifecycle method finder rewritten
...
The method that looks for lifecycle methods now uses MemberFinder to
locate lifecycle methods in both interfaces and superclasses.
2015-09-14 09:34:39 +02:00
aa3ee13f66
Component registration info - getLifecycleAction() return type
2015-09-14 09:07:15 +02:00
d502d6f6b9
Component registration info - Parametric names vs annotations
...
A component that implements ParametricComponent may not have a name
specified using the Component annotation.
2015-09-14 08:54:16 +02:00
b13db82be2
Component registration info - Dependencies from all parents
2015-09-14 08:44:27 +02:00
f115bb7168
NewComponentInfo - Add dependency in setDriverFor
2015-09-13 16:09:13 +02:00
095ecca3dc
NewComponentInfo - Fixed default constructor access
2015-09-13 16:00:44 +02:00
93e8c9a90e
Started writing tests
2015-09-13 15:03:43 +02:00
e2de94eb7b
Importing some code
...
* Various annotations
* New component information class
2015-09-13 14:46:11 +02:00