Skip to content

Add blocking "hot-reload" goal#1267

Open
kwin wants to merge 1 commit intomasterfrom
feature/hot-reload
Open

Add blocking "hot-reload" goal#1267
kwin wants to merge 1 commit intomasterfrom
feature/hot-reload

Conversation

@kwin
Copy link
Copy Markdown
Member

@kwin kwin commented Apr 17, 2026

This re-renders modified Doxia sources automatically. Deprecate "run" goal in favour of this one.

This closes #1266

Following this checklist to help us incorporate your
contribution quickly and easily:

  • Your pull request should address just one issue, without pulling in other changes.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Each commit in the pull request should have a meaningful subject line and body.
    Note that commits might be squashed by a maintainer on merge.
  • Write unit tests that match behavioral changes, where the tests fail if the changes to the runtime are not applied.
    This may not always be possible but is a best-practice.
  • Run mvn verify to make sure basic checks pass.
    A more thorough check will be performed on your pull request automatically.
  • You have run the integration tests successfully (mvn -Prun-its verify).

If your pull request is about ~20 lines of code you don't need to sign an
Individual Contributor License Agreement if you are unsure
please ask on the developers list.

To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

This re-renders modified Doxia sources automatically.
Deprecate "run" goal in favour of this one.

This closes #1266
@kwin kwin requested review from michael-o and olamy April 17, 2026 19:18
@michael-o
Copy link
Copy Markdown
Member

Will check next week.

Copy link
Copy Markdown
Member

@michael-o michael-o left a comment

Choose a reason for hiding this comment

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

What about reports? In 3.20.x I have made it possible to re-render reports, even external ones. Is it still the case here? Is the improvement not to have Jetty anymore? The asciidoctor plugin has a very similar feature, worth looking at and it never worked reliably for me.

Copy link
Copy Markdown
Member

@michael-o michael-o left a comment

Choose a reason for hiding this comment

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

So I went through the code and done some tests. The behavior is different compared to site:run. I would like to align this feature with https://docs.asciidoctor.org/maven-tools/latest/plugin/goals/auto-refresh/ calling it site:auto-refresh just consistency. I don't see how this fully replaces ´site:run, complement yes, replacement no. Moreover, site:run` gives you very detailed information on stuff it renders which is very helpful.

@kwin
Copy link
Copy Markdown
Member Author

kwin commented Apr 26, 2026

The behavior is different compared to site:run

What do you miss exactly?

site:run gives you very detailed information on stuff it renders which is very helpful.

What information is that exactly and isn't this also logged with this goal?

I would like to align this feature with https://docs.asciidoctor.org/maven-tools/latest/plugin/goals/auto-refresh/ calling it site:auto-refresh

I am fine with that.

Is the improvement not to have Jetty anymore?

Long term yes, having a Java Servlet Container just to serve static files is way to much overhead. Compare with #1240 and feel free to comment there. There were valid complaints from user's that m-site-p is too heavyweight in terms of dependencies and I agree with that.

@olamy
Copy link
Copy Markdown
Member

olamy commented Apr 27, 2026

Is the improvement not to have Jetty anymore?

Long term yes, having a Java Servlet Container just to serve static files is way to much overhead. Compare with #1240 and feel free to comment there. There were valid complaints from user's that m-site-p is too heavyweight in terms of dependencies and I agree with that.

Agree too, using Jetty or any servlet container for static is a bit overengineering (and I'm a Jetty committer :)) or simply use com.sun.net.httpserver.HttpServer to reduce dependencies

@michael-o
Copy link
Copy Markdown
Member

The behavior is different compared to site:run

What do you miss exactly?

This one generates everything, given a large site with quite some reports will need time, the :run does on request.
Yet another issue is that Jetty is a HTTP server after all, it is much closer to the logic after deployment, especially with slash handing akin to mod_dir/mod_index.

site:run gives you very detailed information on stuff it renders which is very helpful.

What information is that exactly and isn't this also logged with this goal?

Please run it yourself, you will see all info: source, report, locale, very helpful.

I would like to align this feature with https://docs.asciidoctor.org/maven-tools/latest/plugin/goals/auto-refresh/ calling it site:auto-refresh

I am fine with that.

Is the improvement not to have Jetty anymore?

Long term yes, having a Java Servlet Container just to serve static files is way to much overhead. Compare with #1240 and feel free to comment there. There were valid complaints from user's that m-site-p is too heavyweight in terms of dependencies and I agree with that.

I agree that having the weight of a Servlet Container is bad, in fact we touched this topic with @hboutemy years ago and wanted to move it out to a maven-site-run-plugin, maybe it is about time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Provide "hot-reload" goal which rerenders Doxia sources when modified

3 participants