- Change SendMailSSL to be injected into classes and created regardless of settings
- Various minor cleanups (remove accidentally committed test, add more precise logging statement)
- Drop initialization of all columns on table create in favor of checking each column individually. This is slower but guarantees that each column is only defined once in the code. Columns are only created once so having clean code outweighs performance.
- Write more datasource integration tests
Various neglectable changes while looking at recent commits
- Remove Inject annotation on ProtocolLib adapters that are no longer created via injection
- Reduce ProtocolLib adapters to package private - interaction always goes via ProtocolLibService
- Fix typos
- Add support for dependencies identified by annotations
- Add some more usage validation
- Change a few test classes to use the DelayedInjectionRunner
- Change permission handler to retrieve the services it needs, instead of getting them from the PermissionsManager
- Reduce visibility of some methods
- Add Reloadable interface
- OfflinePlayer objects were never mapped to names
- Essentials purge was run even if setting was disabled
- Console user saw messages twice
- Misc: trivial field reorderings, change DefaultPermission to be null safe
- Permissions: do not expose PermissionHandler just to get its type
- Introduce new BeforeInjecting annotation to not modify the (expected) order of annotations that do not belong to us
- Avoids using hacky way of first initializing field to an Answer that will delegate on demand to the proper class...
- Remove PostConstruct support for Mockito's InjectMocks: we should not change the established behavior of external elements
- Test runner supporting new "DelayedInjection" annotation: such fields are only initialized with instantiation right before the first time they're used in tests, allowing to set up mock behavior beforehand