package org.geoserver.platform; import static org.junit.Assert.*; import java.util.Optional; import java.util.logging.Level; import java.util.logging.Logger; import org.geoserver.platform.RenderingEngineStatus; import org.geotools.util.logging.Logging; import org.junit.Test; import sun.java2d.pipe.RenderingEngine; public class RenderingEngineStatusTest { private static final Logger LOGGER = Logging.getLogger("org.geoserver.platform"); private Optional<String> statusMessage; private String engine; private String provider; private String msg; private static final String UNKNOWN = "unknown"; @SuppressWarnings("unchecked") @Test public void RenderingEngineStatusTest() { RenderingEngineStatus res = new RenderingEngineStatus(); Class<RenderingEngine> renderer; try { renderer = (Class<RenderingEngine>) sun.java2d.pipe.RenderingEngine.getInstance() .getClass(); } catch (Throwable e) { engine = UNKNOWN; provider = UNKNOWN; return; } engine = renderer.getSimpleName(); statusMessage = res.getMessage(); Package pkg = renderer.getPackage(); if (pkg.getName().contains("marlin")) { provider = "Marlin"; } else if (pkg.getName().contains("sun.dc")) { provider = "OracleJDK"; } else if (pkg.getName().contains("sun.java2d")) { provider = "OpenJDK"; } else { provider = pkg.getName(); } String config = System.getProperty("sun.java2d.renderer"); if (config != null) { msg = String.format("Java 2D configured with %s.\nProvider: %s\nConfiguration: -Dsun.java2d.renderer=%s", engine,provider,config); } else { msg = String.format("Java 2D configured with %s.\nProvider: %s\n", engine,provider); } if (provider.equals("Marlin") || provider.equals("OracleJDK") || provider.equals("OpenJDK")) { assertEquals(msg, statusMessage.get()); } else { LOGGER.log(Level.WARNING, "Unkown Java Provider"); } } }