Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean the build #2638

Open
afs opened this issue Aug 12, 2024 · 4 comments
Open

Clean the build #2638

afs opened this issue Aug 12, 2024 · 4 comments
Labels
task Task

Comments

@afs
Copy link
Member

afs commented Aug 12, 2024

Change

As far as practical, address the warnings raised by the maven build including hidden warnings about deprecated features.

  • Some warnings are not being suppressed in the maven build by @SuppressWarnrings("all") - it needs the specific warning category.
  • Need to @Deprecate implementations of deprecated interfaces.
  • Track down logging messages in tests and silence them where they are expected.

See also #2533.

Are you interested in contributing a pull request for this task?

Yes

@afs afs added the task Task label Aug 12, 2024
afs added a commit to afs/jena that referenced this issue Aug 12, 2024
afs added a commit to afs/jena that referenced this issue Aug 12, 2024
afs added a commit to afs/jena that referenced this issue Aug 12, 2024
@afs afs mentioned this issue Aug 12, 2024
2 tasks
afs added a commit to afs/jena that referenced this issue Aug 12, 2024
@Aklakan
Copy link
Contributor

Aklakan commented Aug 12, 2024

I stumbled upon the commit that you re-added -proc:none - which conflicted before with #2493 (comment)

Perhaps the option could go into a property which defaults to -proc:none but which can be overridden on the jmh module?

<!-- in main pom.xml -->
<properties>
  <compiler.proc>-proc:none</compiler.proc>
</properties>
...
<compilerArgs>
  <arg>${compiler.proc}</arg>
</compilerArgs>
<!-- in benchmark pom.xml -->
<properties>
  <compiler.proc></compiler.proc>
</properties>

if an effectively empty <arg /> causes warning/error, then perhaps a dummy arg (not sure which) could be used.
Alternatively, the benchmark module could have its own compiler plugin section.

@afs
Copy link
Member Author

afs commented Aug 13, 2024

It really would be helpful to have the build only output what is necessary because when new output occurs, it can get missed. The build output is currently about 6,500 lines.

I'm not sure setting the property will work - when does the substitution happen? The compiler plugin can't be declared in <build> in the top POM because then every module gets the compiler plugin.

Putting a configuration into the compiler plugin for jena-benchmarks-jmh seems the best choice - it's clearest.

What should the -proc setting be jena-benchmarks-jmh? -proc:full seems to work, -proc:only does not.

Other:
Added to this PR.

@Aklakan
Copy link
Contributor

Aklakan commented Aug 13, 2024

I suppose -proc:full is the future - but overall it seems it might be a pain because of different behavior with past and future Java versions, see: https://inside.java/2024/06/18/quality-heads-up/

Putting a configuration into the compiler plugin for jena-benchmarks-jmh seems the best choice - it's clearest.

I think so too.
I am not sure about the exact implications with proc:full - in the worst case this module would need legacy profile for the java compiler without the -proc:full option. But this could be done as a separate PR.

@afs
Copy link
Member Author

afs commented Aug 14, 2024

https://inside.java/2024/06/18/quality-heads-up/ :

As of the April 2024 JDK security updates, support for -proc:full has been backported to 17u (17.0.11) and 11u (11.0.23) for both Oracle JDK and OpenJDK distributions. Additionally, Oracle’s 8u release (8u411) also supports -proc:full.

For OpenJDK, no legacy profile is needed, only an up-to-date compiler for Java17.

We could set -processor* for jena-benchmarks-jmh.

I tried the POM setup in https://www.baeldung.com/java-microbenchmark-harness#start (briefly) but I found that it still needed -proc but that should work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
task Task
Projects
None yet
Development

No branches or pull requests

2 participants