PlanBungeeCommand and PlanVelocityCommand were the same, and should
stay the same, with exception of the name.
So new module that defines the name of the main command was created and
now the duplicate code could be removed.
- Introduced HtmlUtilities class accessible from PlanSystem, for
utilities that may need injecting otherwise.
- Used the new HtmlUtilities class for constructing
AnalysisContainer.Factory for an ignored test (Smell)
- Fixed the test that was now failing by removing AnalysisKeys.BAN_DATA
- Inverted a test condition that was flipped
- Changed some calls to TestConstants to class variables in CommonDBTest
* Moved project files to 'common'-module
This is done so that refactoring into multiple smaller modules is easier
as the IDE will not attempt to move tests incorrectly when moving things
between different modules
* Created 'bukkit' module
Following classes were removed during the operation:
- BukkitServerInfo (Renamed to ServerServerInfo)
- SpongeServerInfo (could use ServerServerInfo)
- Hastebin (not viable on every platform, unused)
- HastebinTest
- MockPlayers (unused, bukkit specific)
Changes to classes:
- Renamed Importer to BukkitImporter (contained bukkit related impl.)
- Extracted Importer interface from BukkitImporter
- Turned BukkitPlanModule and BukkitClassBindingModule to interfaces by
using @Binds annotation
- Added Status class since PlayersOnlineListener had a boolean,
that stated if kicks were counted.
This commit completes split partially and was not pushed on commit.
* Created 'sponge' module
Changes to classes:
- Turned ServerSuperClassBindingModule, SuperClassBindingModule,
SpongePlanModule and SpongeClassBindingModule to interfaces by
using @Binds annotation
- Renamed SystemObjectBindingModule to SystemObjectProvidingModule
- Removed sponge related calls in ServerProperties
- Made EmptyImportSystem injectable
This commit completes split partially and was not pushed on commit.
* Changed shade configuration
Further tweaks required.
* Created 'bungeecord' module
Changes to classes:
- Removed use of BungeePingTimerTask in VelocityTaskSystem
- Removed use of RedisBungee in VelocityServerProperties
- Fixed bukkit command.commands.RegisterCommandFilter package
Changes to project structure:
- Dependency versions now in main pom via dependencyManagement
- Repositories now defined in main pom
* Created 'velocity' module
Changes to classes:
- Made RawDataResponse use Gson via reflection since it is no longer
available in dependencies of 'common' module
* Created 'plugin' module
This module is for creating a single deployment artifact and testing of
system interactions.
Fixes to tests:
- Reflection no longer fails to initialize if Bukkit.getServer() is null
- PingCountTimerBukkit no longer fails to be created if Reflection fails
- Removed unnecessary @AfterClass from H2Test
- Jar resource path fixes to Mocker
* Shading configuration
org.slf4j classes are relocated in 'common', 'bukkit' & 'bungeecord'.
In 'sponge' & 'velocity' they are not relocated, allowing injection
as plugin logger, while using slf4j-nop for HikariCP logging.
This allows single release artifact.
* Removed 'Icon' from .gitignore
* Attempt to fix test resources
Because all jar resources are located in 'common', an attempt to fetch
them is made to common/target/Plan-common.jar, which for some reason
is a bad path.
This attempts to remedy that by creating a temporary file from an
InputStream, read with Class#getResourceAsStream
Ignored HTTPSWebServerAuthTest as the certificate path was invalid for
some reason.
* Optimizing the loading of the network page and raw server data page
-> Loads the nicknames in bulk instead of one by one
-> Performance gain with the raw data 45719ms vs 10054ms
-> Scales up with more even more users
* Adding UsersTable#getUUIDsAndNamesByID so when you want to get the UUID and the player name you do not have to execute UsersTable#getPlayerNames and UsersTable#getUUIDsByID
-> Performance improvements
* Fixes the test failures
* Renamed method names so they correctly show the real DB used
True fix of the tests (no fail after ~3500 passes)
-> Implementation of TestRunnableFactory
-> Removal of the timeout on CommonDBTest#testSaveCommandUse which is way too sensitive to the testing environment (disk speed, etc.)
* Adding H2 Database Support
* Making HtmlCompressor a constant so it is not created new each time it is used.
Note: It is thread-safe (see: https://code.google.com/archive/p/htmlcompressor/ "HtmlCompressor and XmlCompressor classes are considered thread safe* and can be used in multi-thread environment")
* Adds the H2 Database to the used libraries in the README.md
* Changes all invalid license headers
* Refactors many methods into an enum named DBType
These methods are:
-> getName()
-> getConfigName()
-> supportsMySQLQueries()
to a check if the DBType is H2
* KeepAliveTask splitted into separate class to remove duplicate code
* Fixes compilation error
* Refactors Database Tests into one Common class with all generic Database Tests and specific Database Tests
* Fixes some JavaDocs
* Adds license headers
* Optimizing comparisons to enum comparisons
* Generified Median.java
* Improves performance when comparing Integers because of Collection -> Stream -> List conversion removal. Instead of Median.forInt or Median.forLong Median.forList can be used.
* Now every type of number can be compared
* Storing DecimalFormat rather than creating a new DecimalFormat object each time it's applied
* Added JavaDocs for Median.java