/* (c) 2016 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.map.turbojpeg; import java.util.Optional; import org.geoserver.platform.ModuleStatus; import org.geotools.factory.GeoTools; import org.geotools.util.Version; import it.geosolutions.imageio.plugins.turbojpeg.TurboJpegUtilities; /** * @author David Blasby - Boundless */ public class TurboJpegStatus implements ModuleStatus { @Override public String getModule() { return "libjpeg-turbo"; } @Override public Optional<String> getComponent() { return Optional.ofNullable("RenderedImageMapResponse"); } @Override public String getName() { return "GeoServer libjpeg-turbo Module"; } @Override public Optional<String> getVersion() { Version v = GeoTools.getVersion(TurboJpegStatus.class); if (v == null) { return Optional.empty(); } return Optional.ofNullable(v.toString()); } @Override public boolean isAvailable() { return TurboJpegUtilities.isTurboJpegAvailable(); } @Override public boolean isEnabled() { return !TurboJPEGMapResponse.isDisabled(); } @Override public Optional<String> getMessage() { String message = "JNI LibJPEGTurbo Wrapper Version: " + getJniWrapperJarVersion(); if (!isAvailable()) { message += "\njava.library.path: " + System.getProperty("java.library.path", ""); } return Optional.ofNullable(message); } @Override public Optional<String> getDocumentation() { return Optional.ofNullable(""); } public String getJniWrapperJarVersion() { if (isAvailable()) { return GeoTools.getVersion(org.libjpegturbo.turbojpeg.TJ.class).toString(); } else { return "unavailable"; } } }