Stream: dev

Topic: exporters and parents


view this post on Zulip Oliver Bertuch (Jan 16 2026 at 11:44):

@Sjaak Derksen let's discuss here - doing this the SLOPI way (I'll leave it to @Philip Durbin 🚀 to explain SLOPI) is much better for future reference.

@Sjaak Derksen pointed me to https://github.com/gdcc/exporter-dcat3/actions/runs/21062443230/job/60571742458#step:7:854, where the releasing fails because he is trying to use a JDK 11 but targeting Java 17 (as instructed to the compiler).

view this post on Zulip Oliver Bertuch (Jan 16 2026 at 11:51):

Looking at the DCAT3 POM, that's an easy fix. Just drop the <release>17</release> line and add a property jdk.version=17, so the compiler plugin get's correct config and the CI job knows the right JDK version as well.

view this post on Zulip Oliver Bertuch (Jan 16 2026 at 11:51):

But there's more here!

view this post on Zulip Oliver Bertuch (Jan 16 2026 at 11:52):

And this makes me wonder if we shouldn't put some useful things in the exporters-parent so much of this stuff is prompty autoconfigured for plugin developers.

view this post on Zulip Oliver Bertuch (Jan 16 2026 at 11:52):

Also: lot's of interesting stuff @Sjaak Derksen added here! Much I didn't know!

view this post on Zulip Oliver Bertuch (Jan 16 2026 at 11:53):

I also suggest we add a Maven profile activating on JDK23+ that adds the <proc>full</proc> bit. It's not available before that release and will topple any build using JDK 17-22:

<profiles>
    <profile>
      <id>jdk23+</id>
      <activation>
        <jdk>[23,)</jdk>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <proc>full</proc>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

Again something that could just sit in the exporter parent!

view this post on Zulip Philip Durbin 🚀 (Jan 16 2026 at 12:11):

Oliver Bertuch said:

let's discuss here - doing this the SLOPI way

Here's my canonical writeup of SLOPI: https://blog.greptilian.com/2020/01/25/slopi-communication/ (Searchable Linkable Open Public Indexed (SLOPI) Communication or Why open source projects should avoid Slack)

view this post on Zulip Philip Durbin 🚀 (Jan 16 2026 at 12:13):

@Oliver Bertuch I'm having a little trouble following what change you want to make, but I trust you. :smile:

view this post on Zulip Sjaak Derksen (Jan 16 2026 at 13:58):

I think -proc is required from java 23 and onwards but it was available as optional earlier. Now: i need the annotation processor - so -proc:full - for the @AutoService annotation. That generates the SPI entry in src/main/resources

view this post on Zulip Oliver Bertuch (Jan 16 2026 at 14:00):

For JDK 17 I got this error message when "just having it", so I suspect CI will fail with this, too: Fatal error compiling: error: invalid flag: -proc:full.

Looking at the allowed values via javac --help (for 17.0.9-tem): only,none. In JDK23 they changed the former default "full" to "none", which is why the allowed values then became only,none,full. (I do understand why you want full proc :wink: )

$ sdk use java 17.0.9-tem && javac --help | grep '\-proc:'
Using java version 17.0.9-tem in this shell.
  -proc:{none,only}

$ sdk use java 21.0.7-tem && javac --help | grep '\-proc:'
Using java version 21.0.7-tem in this shell.
  -proc:{none,only,full}

$ sdk use java 23.0.2-tem && javac --help | grep '\-proc:'
Using java version 23.0.2-tem in this shell.
  -proc:{none,only,full}

$sdk use java 25.0.1-tem && javac --help | grep '\-proc:'
Using java version 25.0.1-tem in this shell.
  -proc:{none,only,full}

view this post on Zulip Oliver Bertuch (Jan 16 2026 at 14:02):

Using the Maven profile, activated when a newer javac (23+) is in action will just make it work for all. At least that's what I hope to see :smile:

view this post on Zulip Oliver Bertuch (Jan 16 2026 at 14:08):

I added some more testing above. Maybe we should even activate the profile for Java 21+, so we have it going forward from this previous TLS, which may be around on quite some dev machines. (Also: I suspect this will be helpful for Dataverse core when moving to Jakarta EE 11)

view this post on Zulip Sjaak Derksen (Jan 16 2026 at 14:43):

view this post on Zulip Sjaak Derksen (Jan 16 2026 at 14:44):

it is strange.. I added the processor path block to control which annotation processor to trigger. I checked. It looks like I can remove the complete setting. I do have some background in annotation processing :slight_smile: .. but never experienced issues with this flag.

view this post on Zulip Sjaak Derksen (Jan 16 2026 at 14:45):

anyway... lets see if this works.

view this post on Zulip Sjaak Derksen (Jan 16 2026 at 14:56):

don't believe the flag -proc:full is to blame.. removed it and still the same issue.

view this post on Zulip Sjaak Derksen (Jan 16 2026 at 14:57):

move on the change the jdk setting

view this post on Zulip Sjaak Derksen (Jan 16 2026 at 15:10):

Okay. succesful this time:

[INFO] Waiting until Deployment 2b2d06e1-ab7b-4c8b-9bbb-948556f99df3 is validated

[](https://github.com/gdcc/exporter-dcat3/actions/runs/21070944017/job/60600209816#step:7:3647)[INFO] Deployment 2b2d06e1-ab7b-4c8b-9bbb-948556f99df3 has been validated. To finish publishing visit https://central.sonatype.com/publishing/deployments

I guess that I can't finish it (it does not accept my github credentials)

view this post on Zulip Oliver Bertuch (Jan 16 2026 at 16:30):

@Sjaak Derksen you're getting me wrong. I am not arguing about removing the flag at all! I'm just saying it will break compiling with a JDK 17 javac, while it's a must on JDK23+ javac. The way to work around this problem is highlighted above. Just trying to make everybody, independent of their installed JDK (well not <17), able to compile!

view this post on Zulip Sjaak Derksen (Jan 16 2026 at 16:32):

no worries.. the flag does not seem to add anything if you also explicitly specify the maven coordinates of the used annotation processor. So it is not your comment as such, I think that we should not over-specify configuration and neither code. Fit for purpose is the keyword here :smiley:

view this post on Zulip Sjaak Derksen (Jan 16 2026 at 16:32):

the property though did fix the issue.


Last updated: Apr 03 2026 at 06:08 UTC