|| jaiDef.getOperationRegistry() instanceof it.geosolutions.jaiext.ConcurrentOperationRegistry)) { jaiDef.setOperationRegistry(ConcurrentOperationRegistry.initializeRegistry());
private synchronized static JAIExt getJAIEXT(boolean useJaiExtOps, boolean forceReInit) { if (jaiext == null || forceReInit) { ConcurrentOperationRegistry initializeRegistry = (ConcurrentOperationRegistry) ConcurrentOperationRegistry.initializeRegistry(useJaiExtOps); jaiext = new JAIExt(initializeRegistry); DEFAULT_INSTANCE.setOperationRegistry(initializeRegistry); } return jaiext; }
private synchronized static JAIExt getJAIEXT(boolean useJaiExtOps, boolean forceReInit) { if (jaiext == null || forceReInit) { ConcurrentOperationRegistry initializeRegistry = (ConcurrentOperationRegistry) ConcurrentOperationRegistry.initializeRegistry(useJaiExtOps); jaiext = new JAIExt(initializeRegistry); DEFAULT_INSTANCE.setOperationRegistry(initializeRegistry); } return jaiext; }
private static void initJAI(ClassLoader cl) { // Suppress ugly (and harmless) JAI error messages saying that a JAI is going to continue in pure Java mode. System.setProperty("com.sun.media.jai.disableMediaLib", "true"); // disable native libraries for JAI // Must use a new operation registry in order to register JAI operators defined in Ceres and BEAM OperationRegistry operationRegistry = OperationRegistry.getThreadSafeOperationRegistry(); InputStream is = SystemUtils.class.getResourceAsStream(JAI_REGISTRY_PATH); if (is != null) { // Suppress ugly (and harmless) JAI error messages saying that a descriptor is already registered. final PrintStream oldErr = System.err; try { setSystemErr(new PrintStream(new ByteArrayOutputStream())); operationRegistry.updateFromStream(is); operationRegistry.registerServices(cl); JAI.getDefaultInstance().setOperationRegistry(operationRegistry); } catch (IOException e) { BeamLogManager.getSystemLogger().log(Level.SEVERE, MessageFormat.format("Error loading {0}: {1}", JAI_REGISTRY_PATH, e.getMessage()), e); } finally { setSystemErr(oldErr); } } else { BeamLogManager.getSystemLogger().warning(MessageFormat.format("{0} not found", JAI_REGISTRY_PATH)); } Integer parallelism = Integer.getInteger(BEAM_PARALLELISM_PROPERTY_NAME, Runtime.getRuntime().availableProcessors()); JAI.getDefaultInstance().getTileScheduler().setParallelism(parallelism); BeamLogManager.getSystemLogger().info( MessageFormat.format("JAI tile scheduler parallelism set to {0}", parallelism)); }