MySQL query for has column did not take database name into account.
This means that a database with multiple Plan databases would provide
wrong results for the Patch system, leading to patch failiure
Affected issues: Fixes#732
Changed the Lang that was being used to replace things on the html, now
some of the Lang is no longer used. (CmdHelpLang, CommandLang, etc)
GenericLang caused page breakage due to wrong replacements, so it is no
longer used for replacement
Affected issues: Fixes#706
getInstance is not necessary as GeolocationCache can be injected
everywhere where it is required (Mostly at gathering layer)
Discovered old GeolocationCacheTest that was removed.
This method was in use for generating different PluginData related
things: Bans, Analysis page & Inspect page plugins tabs.
- Bans: Removed BanData related analysis objects as it is deprecated.
Plugins will not be asked if a player is banned in the future, and
will rely on server OfflinePlayer#isBanned instead.
- Analysis Page: Generation tool is still static, on the TODO list.
- Inspect Page: Added HookHandler as injected dependency
This method was used in tests, but is not the optimal way of performing
temporary test values as APF supports in memory configuration object.
Old usages were commented in order to preserve assumed temporary values.
Affected issues: none
Some threshold values are needed in mutators and tasks, but they are not
yet available in the classes they are used. TODO was added.
ActivityIndexTest was removed as it does not test proper stuff.
Affected issues: none
This method was dependent on PlanPlugin.getInstance() which is being
removed.
Also removed use of Settings in MiscUtils.close methods.
Affected issues: none
Inject HtmlTables to access the factory.
Abstracted away details of TableContainer creation in the factory.
Each table class is now package private, and present as TableContainers.
Removed MapComparator as it became obsolete.
Affected issues: none
Added instance variables for different Formatter objects with a TODO to
accompany the additions where dagger injection was not yet possible.
Moved formatIP to GeoInfo
Moved getStackTrace to PromptAuthorizationResponse
Affected issues: none
Added instance variables for different Formatter objects with a TODO to
accompany the additions where dagger injection was not yet possible.
Affected issues: none
Inject Graphs to access these factories.
Moved WorldTimes Alias playtime calculations to WorldAliasSettings
Renamed some Graphs to be shorter and unambiguous:
AbstractLineGraph -> LineGraph
AbstractPieChart -> Pie
AbstractPieChartWithDrilldown -> PieWithDrilldown
AbstractStackGraph -> StackGraph
Abstracted away some details and made some graph classes package private
Fixed tests for Line graphs, removed Stack graph test for now
WebServer ThreadPoolExecutor was never shutdown, as it was assumed
HTTPServer.shutdown() would perform that.
In extreme cases 250 reloads could lead to a OutOfMemoryException due to
Heap size allocation for threads not being possible.
Change: Shut down ThreadPoolExecutor manually.
Since PluginData objects are more persistent than AnalysisContainer,
objects related to the each analysis can not be freed until the next
analysis has been performed, because a reference was held in each
PluginData object.
Change: set the reference to point to null in a finally block after
getServerData call. AnalysisContainer can now be freed by GC at any time
Affected issues: #685
Where possible replaced with PluginLogger or ErrorHandler calls,
some places removed a catch clause and added throws,
some places removed the log or benchmark completely.
Some places still need to be modified so that the required dependencies
can be injected.
Registered pages on ResponseHandler separately
Registered commands in PlanCommand and PlanBungeeCommand separately
Made WebServer Lazy in InfoSystems and ConnectionSystems
Moved Import data objects to system.importing.data
Moved Importer classes to system.importing.importers
Bound ImportSystem instances in SuperClassBindingModules
Added ImportSystem as injected parameter to PlanSystem
Injected ImportSystem to ManageImportCommand
Removed old references to ImporterManager and removed the class
Moved ImportBuilderTest to system.importing.data
- static final class variable names in PingCountTimerBukkit
- plugin field hiding protected variable in SpongeTaskSystem
- InspectPageResponse not overriding equals method
Old way:
Pre-render & cache the html for a player page when the player joins,
leaves or switches server
New way:
Render & cache the html when requested. Remove the rendered html from
cache if the player joins, leaves or switches server
This should prevent server from crashing if a bunch of bots join
Impacts #685
Reduced use of CachingSupplier in every DataContainer to reduce the
amount of String variables ending up in heap for a longer period of
time.
Impacts #685