Commit graph

221 commits

Author SHA1 Message Date
Mike Bierlee e7a29f17f7 Allow register by concrete type to also get registration options
Although the currently only available option will do nothing
2016-02-03 22:24:22 +01:00
Mike Bierlee 065e7111cd Deprecate calling register() with RegistationOptions in a variadic way
Variadic options will conflict when added to resolve(). To keep the interface consistent, register should follow suit. Supply options using a list of options instead.
2016-02-03 22:17:10 +01:00
Mike Bierlee 46dddbfd46 Deprecate RegistrationOption.DO_NOT_ADD_CONCRETE_TYPE_REGISTRATION in favor of RegistrationOption.doNotAddConcreteTypeRegistration 2016-02-03 22:15:07 +01:00
Mike Bierlee def5ec2e88 Add setting persistent registration options 2016-02-03 21:28:33 +01:00
Mike Bierlee 7bd0795b3f Fix line delimiters 2016-01-06 20:28:25 +01:00
Mike Bierlee c35e494dfe Update copyrights 2016-01-06 20:18:35 +01:00
Mike Bierlee e2d86bae0d Remove deprecated RegistrationOptions alias 2015-12-28 22:43:53 +01:00
Mike Bierlee 4b1bc5077a Remove deprecated registration option 2015-12-28 22:42:23 +01:00
Mike Bierlee 4d62f3fdb0 Add registering component factories as prototype
Which makes them the opposite of singletons
2015-12-24 21:50:12 +01:00
Mike Bierlee d310640717 Register application contexts as a resolvable dependency
For those who like to play with fire
2015-12-24 20:41:05 +01:00
Mike Bierlee f206b594c8 Add autowiring of application contexts on registration 2015-12-24 20:31:26 +01:00
Mike Bierlee 2e4c688ab2 Add registeration of context components when registering via dependency container 2015-12-24 20:12:48 +01:00
Mike Bierlee 57b548aeae Add specifying components by supertype 2015-12-24 19:51:49 +01:00
Mike Bierlee d888d0a808 Rename instantiatableType -> instanceType 2015-12-24 18:58:34 +01:00
Mike Bierlee 1bf1734c53 Add registration of components through factory methods
A basic version of Bean factories from the Spring framework
2015-12-24 18:45:18 +01:00
Mike Bierlee 55d3139f5b Add registration of basic dependencies through application context 2015-12-24 01:11:39 +01:00
Mike Bierlee be5eb37617 Remove public imports 2015-12-24 01:01:30 +01:00
Mike Bierlee 80916c47fb Add factory method invocation to instance factory 2015-12-23 18:32:29 +01:00
Mike Bierlee 2ebef4c466 Refactor registration scopes into simplified instance factory 2015-12-23 17:51:55 +01:00
Mike Bierlee ae9e0bab68 Rename RegistrationOptions -> RegistrationOption, deprecate usage of old name 2015-09-26 22:46:47 +02:00
Mike Bierlee da16513a8d Always register concrete type when registering type by supertype by default.
This deprecates ADD_CONCRETE_TYPE_REGISTRATION (see DO_NOT_ADD_CONCRETE_TYPE_REGISTRATION for reverse configuration). This also means you do not need to use qualifiers when registering single type of super type by super type.
2015-08-17 22:28:26 +02:00
Mike Bierlee 8c103df7e5 Remove deprecated module "dependency" 2015-08-16 15:50:54 +02:00
Mike Bierlee 3e11ff1e92 Add ability to assign new instance to autowired member regardless of registration scope 2015-07-06 22:55:40 +02:00
Mike Bierlee 533207226b Use template to get member type instead 2015-07-04 14:09:05 +02:00
Mike Bierlee 1ce37e6eda Add autowiring of dynamic arrays 2015-07-04 14:06:35 +02:00
Mike Bierlee 53fb0d8116 Add resolving all registered types of a certain super type 2015-07-04 13:53:47 +02:00
Mike Bierlee 71ac539f2a Add canonical package module
This commit deprecates non-canonical package module "dependency.d".
2015-07-01 21:06:55 +02:00
Mike Bierlee 27e7b74e73 Add registration option for registering a class by concrete type when registering by supertype 2015-05-03 02:03:34 +02:00
Mike Bierlee d23230faae Restrict access to registration members more tightly 2015-05-03 00:54:31 +02:00
Mike Bierlee eb05f7702f Add registration linking 2015-05-03 00:46:51 +02:00
Mike Bierlee a046e1fd8e Remove unused imports 2015-03-28 18:43:03 +01:00
Mike Bierlee ee88b68a7c Remove unnecessary initOnce
The class is synchronized now. Calls to getInstance is already barricaded by the class-level monitor.
2015-03-28 17:49:30 +01:00
Mike Bierlee 9860624148 Synchronize DependencyContainer
The implication is that dependency containers are now always shared data. In the sense of application context, this is acceptable.
2015-03-28 16:36:02 +01:00
Mike Bierlee 8d268846ed Change getting of singleton dependency container to be thread-safe 2015-03-28 15:04:34 +01:00
Mike Bierlee a5f6a1dc32 Finish refactoring for now
It's still not perfect, but traits are real difficult to work with.
2015-03-21 14:30:04 +01:00
Mike Bierlee 29ebb3bc73 Add project identifier to module documentation 2015-03-07 12:36:59 +01:00
Mike Bierlee 06dfb0dc30 Fix imports for release builds 2015-03-07 00:47:36 +01:00
Mike Bierlee 0916e136aa Omit parentheses 2015-02-28 17:16:35 +01:00
Mike Bierlee 264f492292 Get rid of obsolete member reference 2015-02-28 16:59:50 +01:00
Mike Bierlee 3f36b63965 Get member from instance instead 2015-02-28 16:26:57 +01:00
Mike Bierlee 3d6ab10b6d Extracting debug info printing to separate functions 2015-02-28 16:09:32 +01:00
Mike Bierlee 58073dd160 Extract autowiring a member from autowire 2015-02-28 15:51:57 +01:00
Mike Bierlee 89d82efb11 Refactor getting existing registration to separate function 2015-02-22 19:11:38 +01:00
Mike Bierlee f9c2e257c7 Document public API of module "registration" 2015-02-21 16:11:43 +01:00
Mike Bierlee 8ee25abc58 Document public API of module "dependency" 2015-02-21 16:02:33 +01:00
Mike Bierlee a9bbb24fcd Use elipses to pretend there's implementation 2015-02-21 02:38:09 +01:00
Mike Bierlee e3009929a5 Remove deprecated @Autowired alias 2015-02-21 02:33:19 +01:00
Mike Bierlee ad5695c774 Rename parameter InterfaceType -> SuperType
Direct ancestor types, which are not neccesarily interfaces, can also be used as registration type
2015-02-21 02:16:24 +01:00
Mike Bierlee 6c8e3c81b3 Remove unused exception 2015-02-21 02:14:25 +01:00
Mike Bierlee 7945cc0ea3 Document public API of module "container" 2015-02-21 02:12:27 +01:00
Mike Bierlee f6a809c54a Improve autowire module documentation 2015-02-21 01:18:07 +01:00
Mike Bierlee 50e754f429 Deprecate @Autowired UDA in favor of using @Autowire
Keeps your codebase consistent. Also this is not Spring.
2015-02-21 01:10:19 +01:00
Mike Bierlee 0d56a4e5c3 Add additional motivation to documentation. 2015-02-15 17:13:59 +01:00
Mike Bierlee 4c51fcada1 Document public API of module "autowire" 2015-02-15 16:52:10 +01:00
Mike Bierlee 586c03bd91 Remove deprecated dependency container alias 2015-02-15 14:52:50 +01:00
Mike Bierlee e44cdf276a Remove deprecated "autowire in constructor" 2015-02-15 14:52:01 +01:00
Mike Bierlee cb42ebc8c1 Update copyrights 2015-01-25 21:55:02 +01:00
Mike Bierlee 36992c633a Autowire dependencies using autowired registrations instead of letting the container handle it
This fixes known issue "Resolving a class registered by supertype..."
2015-01-25 21:04:17 +01:00
Mike Bierlee 5ebb5805cf Use instantiation context to decide whether to autowire or not 2015-01-25 19:46:17 +01:00
Mike Bierlee 9d931f511b Add registration class that will autowire instances itself 2015-01-25 15:07:11 +01:00
Mike Bierlee 82ea4369b8 Add master module "dependency" 2015-01-25 13:40:11 +01:00
Mike Bierlee 1d74064c15 Reintroduce module container 2015-01-25 13:37:14 +01:00
Mike Bierlee 99579060d3 Return resolved instances by qualifier type instead 2014-12-30 18:29:32 +01:00
Mike Bierlee 7a628c32c4 Add debug specifier to reduce verbosity of debug output 2014-12-24 00:05:42 +01:00
Mike Bierlee 77cc636e7f Deprecate buggy work-around in favor of qualifiers 2014-12-14 19:25:08 +01:00
Mike Bierlee 2aef9a1760 Autowire using the qualifier type when resolving dependencies
This will make sure the members of sub-types are also autowired, when a qualifier is given.
2014-12-14 19:20:35 +01:00
Mike Bierlee 7bc0382a50 Remove left-over debugging output 2014-12-13 23:16:27 +01:00
Mike Bierlee 7ee67ee836 Specify qualifiers in Autowire UDA instead of using separate UDA 2014-12-13 23:15:43 +01:00
Mike Bierlee 1166d2811a Add @Qualifier UDA for qualifying members typed by supertype 2014-12-13 22:06:11 +01:00
Mike Bierlee 9c749c0cb6 Check type at compile-time 2014-12-11 01:40:40 +01:00
Mike Bierlee bc972d1371 Reqord and fix message of multiple qualifier resolve exception 2014-11-27 00:46:03 +01:00
Mike Bierlee 8b9c8d2774 Add ability to resolve type which has multiple registrations by qualifier 2014-11-27 00:33:13 +01:00
Mike Bierlee d6e3043c7d Prevent multiple registrations of same super- and concrete type 2014-11-26 23:37:29 +01:00
Mike Bierlee 5d7a21ae52 Add ability to register multiple concrete classes for same supertype 2014-11-26 23:22:56 +01:00
Mike Bierlee ae139d5f1f Change names to be more unified 2014-11-26 23:03:18 +01:00
Mike Bierlee 5037b79998 Add copyright back in 2014-11-26 23:01:01 +01:00
Mike Bierlee 4e8555c7da Rename and deprecate "container" module 2014-10-25 16:43:32 +02:00
Mike Bierlee b2bb6f15c4 Rename "Container" -> "DependencyContainer". Deprecate use of "Container" 2014-10-25 15:24:42 +02:00
Mike Bierlee e0436438af Add additional debug output to more clearly show the chain of dependency injection 2014-10-13 00:39:40 +02:00
Mike Bierlee 92db3c0405 Add "Autowired" alias for "Autowire" UDA to satisfy Spring habits 2014-10-12 17:41:09 +02:00
Mike Bierlee b0c880a950 Destroy registrations when clearing them, invoking their destructors 2014-10-06 13:18:32 +02:00
Mike Bierlee e19564e3cf Fix incorrect clearing of registrations 2014-10-05 13:43:57 +02:00
Mike Bierlee 5caf57d31d Reduce code due to type deduction 2014-07-10 01:09:36 +02:00
Mike Bierlee b38bccc03c Fix autowiring classes with non-symbolic unassignable members (such as aliases) 2014-07-09 23:15:05 +02:00
Mike Bierlee edb39c6d54 Add global autowire function 2014-07-04 02:42:55 +02:00
Mike Bierlee 627d165d6f Add mixin for boilerplate workaround 2014-06-22 17:16:07 +02:00
Mike Bierlee af7d6a7872 Also autowire baseclass members 2014-06-12 01:46:05 +02:00
Mike Bierlee f123109a5e Add addresses to debug info when autowiring 2014-06-08 15:56:24 +02:00
Mike Bierlee 034837d752 Simplyfy reference to member 2014-06-08 14:53:09 +02:00
Mike Bierlee b66b9d5def Fix autowiring deep circular dependencies 2014-06-04 00:16:24 +02:00
Mike Bierlee a53080c109 Prevent endless recursion on autowiring circular dependencies 2014-06-01 23:49:12 +02:00
Mike Bierlee 6b82c35b2e Print autowirings in debug mode 2014-06-01 22:44:02 +02:00
Mike Bierlee e5484edb19 Apply open-source MIT license 2014-06-01 19:05:02 +02:00
Mike Bierlee 121d871572 Replace type validity check with template parameter specialization 2014-05-31 23:37:02 +02:00
Mike Bierlee b78e05455d Add removing of registrations 2014-05-31 23:22:29 +02:00
Mike Bierlee f4ad79003e Remove left-over debug import 2014-05-30 01:19:28 +02:00
Mike Bierlee 14d504a752 Change autowire UDA to be a class instead of enum 2014-05-30 01:09:37 +02:00
Mike Bierlee 52936379e4 Autowire upon resolving instances 2014-05-30 00:42:58 +02:00
Mike Bierlee 35acaa84d1 Only autowire members which are null 2014-05-30 00:33:08 +02:00
Mike Bierlee a9e5b315e3 Add autowiring of concrete types in existing instances 2014-05-27 01:54:08 +02:00
Mike Bierlee 7d1fe2deda Rename RegistationScope -> CreationScope 2014-05-21 00:27:38 +02:00
Mike Bierlee cbecebf43f Add existing instance registration scope 2014-05-21 00:26:44 +02:00
Mike Bierlee bb0a8d5746 Add registration scope for existing instances 2014-05-20 23:54:45 +02:00
Mike Bierlee abdcd39e9e Add scope setter for new instance scope 2014-05-20 23:36:33 +02:00
Mike Bierlee 8b5122ad91 Add new instance registration scope 2014-05-20 23:31:28 +02:00
Mike Bierlee 2bced68e43 Change reference into class, makes it more easily passed as reference 2014-05-20 23:06:27 +02:00
Mike Bierlee 64e25715cf Add scope setter for single instance scopes 2014-05-20 22:12:14 +02:00
Mike Bierlee 4f2f0fbe59 Add single instance scope, make it the default scope of new registrations 2014-05-20 22:03:50 +02:00
Mike Bierlee 0c084a43b9 Add scope to registration, check for unset scope 2014-05-20 21:54:11 +02:00
Mike Bierlee ac077c24d7 Move registration to own module 2014-05-20 21:38:14 +02:00
Mike Bierlee 464abd9cb0 Skip validity check on registering concrete type 2014-05-20 01:12:15 +02:00
Mike Bierlee b18b6ed49c Add global singleton for simplified use of container 2014-05-20 00:35:49 +02:00
Mike Bierlee 27a50a53cf Remove static context from container 2014-05-20 00:23:25 +02:00
Mike Bierlee da1f604ef7 Add global setting for disabling type validity 2014-05-20 00:16:44 +02:00
Mike Bierlee 423f21230a Throw exception when resolving non-registered type 2014-05-16 02:05:04 +02:00
Mike Bierlee 27d86ce8c7 Fix typo registratedType -> registeredType 2014-05-16 01:38:28 +02:00
Mike Bierlee cc3c0d5f6d Add type validity check 2014-05-16 01:36:17 +02:00
Mike Bierlee 535f5df482 Allow registration by interfaces 2014-05-16 00:23:06 +02:00
Mike Bierlee 6fb34bb233 Give template parameters more meaningful names 2014-05-15 23:49:42 +02:00
Mike Bierlee 5df222f509 Add resolving of registered types 2014-05-10 14:52:29 +02:00
Mike Bierlee 20e78b8d93 Add registration of concrete classes 2014-05-06 01:32:22 +02:00