* 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
- Added a new free disk space to TPS, in megabytes
- Added Gathering method to TPSCountTimers
- Added Column to plan_tps
- Added Patch for adding plan_tps column
- Added Disk usage point mutation method to TPSMutator
- Filtered out -1 values in Disk and CPU graphs
- Added DiskGraph and its factory method
- Added 'diskSeries' placeholder replacement to AnalysisContainer
- Added diskGraph.js for drawing disk graph
- Added 'diskMedium' & 'diskHigh' threshold placeholders
- Added Medium and high disk threholds to settings
- Replaced MB references with Mb, since B is bit and b is byte
- Added Html Lang
HTTPS routing override can be activated by setting keystore path to
'nginx' - In this mode Plan uses HTTP server and gives out HTTPS links.
Affected issues: #669