FIXTradingCommunity / conga

Proof of concept: High performance FIX semantics over WebSocket with SBE
Apache License 2.0
41 stars 12 forks source link

Task: build runtime image #1

Open donmendelson opened 6 years ago

donmendelson commented 6 years ago

Enhance the build process to produce a modular runtime image

donmendelson commented 6 years ago

I tried using jlink plugin, but it failed with NPE.

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jlink-plugin</artifactId>
<version>3.0.0-alpha-1</version>
donmendelson commented 6 years ago

Apparently the pre-release jlink plugin does not yet support multi module projects.

donmendelson commented 6 years ago

One of the greatest features of Java has been back-compatibility going back to version 1.01. The Project Jigsaw module system added in Java 9 is major break with the past. It is apparent that tooling in Maven and Eclipse has not caught up with Java 9 even though 10 is current and 11 is imminent.

Module build is still experimental in Gradle as well, but it looks like it may be further along. See https://guides.gradle.org/building-java-9-modules/. Note that Conga uses ServiceLoader as discussed in that article for message encoding plug-ins. Does anyone have experience with this?

donmendelson commented 6 years ago

Wordaround: mvn package copies all dependent modules to a directory for execution. A sample command is provided for client and server.

donmendelson commented 2 years ago

A more popular way to go these days would be to build a Docker image. This can easily be accomplished with a Maven plugin.