Skip to content
This repository has been archived by the owner on Jun 7, 2022. It is now read-only.

Complete revision of the module system #277

Merged
merged 71 commits into from
Jun 10, 2020
Merged

Complete revision of the module system #277

merged 71 commits into from
Jun 10, 2020

Conversation

TheMeinerLP
Copy link
Contributor

In this Pull Request the complete module system was revised. Circular dependencies should no longer be a problem in the future. Also an extended API was made available to allow developers to better integrate the system. It was built very similar to Bukkit and the Spigot API.

Missing functions are the Observe Pattern for Auto Update and the Event for FileDeployment into the Cloud.

Also the CloudAPI load bug was fixed because of the renaming of the pack.
And there are a few places where an improved exception handling was done.

And yes, the code needs to be more ordered or made more beautiful and also the description needs to be added.

@TheMeinerLP
Copy link
Contributor Author

The loading of the modules was tested.
Here are the three example jar to test.

The order should be as follows:

  • ParentExampleModuleTwo
  • ParentExampleModule
  • ExampleModuleTwo

@TheMeinerLP
Copy link
Contributor Author

modules.zip

@lgtm-com
Copy link

lgtm-com bot commented Jun 7, 2020

This pull request introduces 1 alert when merging e09cc49 into e5f21bf - view on LGTM.com

new alerts:

  • 1 for Dereferenced variable may be null

Copy link
Member

@GiantTreeLP GiantTreeLP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few more changes I may have missed to mark.
All in all not bad, a few things should be done differently though, in order to reduce coupling of classes and improving cohesion (https://sites.google.com/site/koesterprogramming/home/softwareentwicklung/kohaesion-und-kopplung)

Improve initialization of JavaCloudModule.
Make type token into a constant.
Make on CloudModuleDescriptionFile some fields into interface.
TheMeinerLP and others added 13 commits June 8, 2020 20:45
…aster/module/CloudModuleLogger.java

Co-authored-by: Marvin <[email protected]>
…aster/module/CloudModuleManager.java

Co-authored-by: Marvin <[email protected]>
…aster/module/CloudModuleManager.java

Co-authored-by: Marvin <[email protected]>
…aster/module/CloudModuleManager.java

Co-authored-by: Marvin <[email protected]>
…aster/module/CloudModuleManager.java

Co-authored-by: Marvin <[email protected]>
Update java documentation.
Fix some import.
Replace CopyOnWriteArrayList.
Remove some not necessaries final parameters.
Fix imports.
Remove unused exceptions.
Add notnull annotations.
Remove not necessary finals.
Copy link
Member

@derklaro derklaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@GiantTreeLP
Copy link
Member

Alright, merging.

Keep in mind that all modules need to be adapted to this new API.

@GiantTreeLP GiantTreeLP merged commit 90a9b5b into CloudNetService:development Jun 10, 2020
@TheMeinerLP TheMeinerLP deleted the feature/bettermodules branch June 10, 2020 17:48
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants