Propane with JDK-11
I was interested to see if propane (and hence JRubyArt) would compile and run successfully with java-11. What I found that I couldn’t use polyglot maven (pom.rb) so I reverted to using a regular pom.xml:-
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>propane</groupId>
<artifactId>propane</artifactId>
<version>3.0.0</version>
<name>propane</name>
<description>An integrated processing-core (somewhat hacked), with additional java code for a jruby version of processing.</description>
<url>https://github.com/monkstone/propane</url>
<organization>
<name>ruby-processing</name>
<url>https://ruby-processing.github.io</url>
</organization>
<licenses>
<license>
<name>GPL 3</name>
<url>http://www.gnu.org/licenses/gpl-3.0-standalone.html</url>
</license>
<license>
<name>LGPL 2</name>
<url>https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html</url>
</license>
</licenses>
<developers>
<developer>
<id>monkstone</id>
<name>Martin Prout</name>
<roles>
<role>developer</role>
</roles>
</developer>
<developer>
<id>benfry</id>
<name>Ben Fry</name>
<roles>
<role>developer</role>
</roles>
</developer>
<developer>
<id>REAS</id>
<name>Casey Reas</name>
<roles>
<role>developer</role>
</roles>
</developer>
<developer>
<id>codeanticode</id>
<name>Andres Colubri</name>
<roles>
<role>developer</role>
</roles>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/ruby-processing/propane.git</connection>
<developerConnection>scm:git:git@github.com/ruby-processing/propane.git</developerConnection>
<url>https://github.com/ruby-processing/propane</url>
</scm>
<issueManagement>
<system>Github</system>
<url>https://github.com/ruby-processing/propane/issues</url>
</issueManagement>
<properties>
<jogl.version>2.3.2</jogl.version>
<jruby.api>http://jruby.org/apidocs/</jruby.api>
<polyglot.dump.pom>pom.xml</polyglot.dump.pom>
<processing.api>http://processing.github.io/processing-javadocs/core/</processing.api>
<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
<propane.basedir>${project.basedir}</propane.basedir>
<source.directory>src</source.directory>
</properties>
<dependencies>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby</artifactId>
<version>9.2.0.0</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.apple.eawt</groupId>
<artifactId>apple</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.processing</groupId>
<artifactId>video</artifactId>
<version>3.2.3</version>
</dependency>
<dependency>
<groupId>org.jogamp.jogl</groupId>
<artifactId>jogl-all</artifactId>
<version>${jogl.version}</version>
</dependency>
<dependency>
<groupId>org.jogamp.gluegen</groupId>
<artifactId>gluegen-rt-main</artifactId>
<version>${jogl.version}</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>${source.directory}/main/java</directory>
<includes>
<include>**/**/*.glsl</include>
<include>**/*.jnilib</include>
</includes>
<excludes>
<exclude>**/**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>${source.directory}/main/resources</directory>
<includes>
<include>**/*.png</include>
<include>*.txt</include>
</includes>
</resource>
</resources>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<detectOfflineLinks>false</detectOfflineLinks>
<links>
<link>${jruby.api}</link>
<link>${processing.api}</link>
</links>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifestFile>MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Note how to specify java 11
(ie different from versions prior to jdk9). I also took care to update the latest maven plugins using maven-3.5.4
turns out it all works just fine excepting no support for FX2D at least out of the box. See propane jdk11 branch. Unfortunately you still have to manually copy some jars from processing distribution (be nice if processing.org embraced maven).