[Geoserver-devel] Time to drop the Marlin renderer dependency?

Hi all,
I keep on reading reports of people having trouble with GeoSever on Windows, because they installed Java 17 along with it.

While I don’t have exact details about it, I believe it’s due to the incompatibility between the Marlin renderer and Java 17, one can have one or the other, but not both at the same time, because of the Java parameters we use to enable Marlin.

Possible approaches:

  • Warn people using the installer/binary package with Marlin
  • Detect the Java version in the scripts and disable Marlin
  • Just remove Marlin, as Java11+ contains a version of it anyways
    Of all the approaches, removing one dependency seems like the easiest solution. According to this table, Java 11 contains a slightly newer version of Marlin, compared to what we have in the classpath, so I see no downside (besides having to go and clean up pom, scripts and docs)

Cheers
Andrea

···

GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Whoops, I misread the table… contains a slightly older version, 0.9.1 in JDK vs 0.9.3 in our pom.xml

Cheers
Andrea

···

==
GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Is that small backwards step important? If it was down to me I’d drop the windows installer (and support) but I guess anything that makes windows users lives easier is a good thing.

IAn

···

Ian Turton

Hi Ian,
to be honest, I don’t know… I don’t think so. The latest, 0.9.4.x, has some significant speedup on very complex shapes,
but given we clip and generalize geometries before throwing them down at the rendering pipeline, it does not seem
likely we would send a shape with tens of thousands of points into Marlin anyways.

Cheers
Andrea

···

Regards,

Andrea Aime

==
GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

With our Java 11 minimum it may be easier to upgrade to Marlin-renderer 0.9.4.5 for JDK11+?

What a lot of versions to manage in that table :slight_smile:

···


Jody Garnett

Hum… the issue is in the way Marlin integrates with Java so I thought an upgrade would not work… and instead it does, because the latest version

is designed to work with Java 11+ and leverages the module system for integration.

The scripts have to be adapted a bit (changes in bold):

if [ -z “${MARLIN_JAR:-}” ]; then
MARLIN_JAR=$(find “$(pwd)/webapps” -name “marlin*.jar” | head -1)
if [ “${MARLIN_JAR:-}” != “” ]; then
MARLIN_ENABLER=“–patch-module java.desktop=${MARLIN_JAR}”
export MARLIN_JAR MARLIN_ENABLER RENDERER
fi
fi

echo “GEOSERVER DATA DIR is ${GEOSERVER_DATA_DIR}”
#added headless to true by default, if this messes anyone up let the list
#know and we can change it back, but it seems like it won’t hurt -ch
IFS=$(printf '\n\t ')
exec “${_RUNJAVA}” -DALLOW_ENV_PARAMETRIZATION=true ${JAVA_OPTS:–DNoJavaOpts} ${MARLIN_ENABLER:–DMarlinDisabled} “-Djetty.base=${GEOSERVER_HOME}” “-DGEOSERVER_DATA_DIR=${GEOSERVER_DATA_DIR}” -Djava.awt.headless=true -DSTOP.PORT=8079 -DSTOP.KEY=geoserver -jar “${GEOSERVER_HOME}/start.jar”

along with marlin-0.9.4.5-Unsafe-OpenJDK11.jar that works fine in both Java 11 and Java 17 (as tested on Linux, did not try on Windows).

So yeah, this is a better way forward. Do we have anyone that wants to try and patch the Windows scripts to match the above?
While I would not recommend adding this change to GeoServer 2.23.0, we could land it on main and then backport in time for 2.23.1.

Cheers

Andrea

···

Regards,

Andrea Aime

==
GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail