halo-dev / halo

强大易用的开源建站工具。
https://www.halo.run
GNU General Public License v3.0
32.47k stars 9.45k forks source link

Allow plugin to listen the event the plugin has started #6234

Closed JohnNiang closed 4 days ago

JohnNiang commented 4 days ago

What type of PR is this?

/kind feature /area core /milestone 2.17.x

What this PR does / why we need it:

This PR add support for allowing plugin to listen the event that the plugin has started. Below is an example of listening the event in plugin:

    @EventListener
    void onPluginStartedEvent(PluginStartedEvent event) {
        // do something.
    }

See https://github.com/halo-dev/halo/issues/5339#issuecomment-2199220068 for more.

Which issue(s) this PR fixes:

Fixes https://github.com/halo-dev/halo/issues/5339#issuecomment-2199220068

Special notes for your reviewer:

  1. Create a plugin, add the listener above and write some logs
  2. Build and install the plugin
  3. Start plugin and see the logs you wrote

Does this PR introduce a user-facing change?

支持在插件中监听已启动事件
codecov[bot] commented 4 days ago

Codecov Report

Attention: Patch coverage is 7.69231% with 12 lines in your changes missing coverage. Please review.

Project coverage is 57.19%. Comparing base (bc10336) to head (70f5e17). Report is 44 commits behind head on main.

Files Patch % Lines
...in/java/run/halo/app/plugin/HaloPluginManager.java 9.09% 10 Missing :warning:
.../run/halo/app/plugin/event/PluginStartedEvent.java 0.00% 2 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #6234 +/- ## ============================================ + Coverage 54.51% 57.19% +2.68% - Complexity 3523 3719 +196 ============================================ Files 646 647 +1 Lines 21862 21974 +112 Branches 1528 1538 +10 ============================================ + Hits 11917 12567 +650 + Misses 9328 8798 -530 + Partials 617 609 -8 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

f2c-ci-robot[bot] commented 4 days ago

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: guqing

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files: - ~~[OWNERS](https://github.com/halo-dev/halo/blob/main/OWNERS)~~ [guqing] Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment