src/share/classes/sun/java2d/cmm/CMSManager.java
Print this page
*** 32,42 ****
import java.awt.image.Raster;
import java.awt.image.WritableRaster;
import java.security.AccessController;
import java.security.PrivilegedAction;
import sun.security.action.GetPropertyAction;
- import java.util.ServiceLoader;
public class CMSManager {
public static ColorSpace GRAYspace; // These two fields allow access
public static ColorSpace LINEAR_RGBspace; // to java.awt.color.ColorSpace
// private fields from other
--- 32,41 ----
*** 50,88 ****
public static synchronized PCMM getModule() {
if (cmmImpl != null) {
return cmmImpl;
}
! CMMServiceProvider spi = AccessController.doPrivileged(
! new PrivilegedAction<CMMServiceProvider>() {
! public CMMServiceProvider run() {
! String cmmClass = System.getProperty(
! "sun.java2d.cmm", "sun.java2d.cmm.lcms.LcmsServiceProvider");
!
! ServiceLoader<CMMServiceProvider> cmmLoader
! = ServiceLoader.loadInstalled(CMMServiceProvider.class);
!
! CMMServiceProvider spi = null;
!
! for (CMMServiceProvider cmm : cmmLoader) {
! spi = cmm;
! if (cmm.getClass().getName().equals(cmmClass)) {
! break;
}
}
! return spi;
}
- });
! cmmImpl = spi.getColorManagementModule();
if (cmmImpl == null) {
throw new CMMException("Cannot initialize Color Management System."+
"No CM module found");
}
! GetPropertyAction gpa = new GetPropertyAction("sun.java2d.cmm.trace");
String cmmTrace = AccessController.doPrivileged(gpa);
if (cmmTrace != null) {
cmmImpl = new CMMTracer(cmmImpl);
}
--- 49,80 ----
public static synchronized PCMM getModule() {
if (cmmImpl != null) {
return cmmImpl;
}
! GetPropertyAction gpa = new GetPropertyAction("sun.java2d.cmm");
! String cmmProviderClass = AccessController.doPrivileged(gpa);
! CMMServiceProvider provider = null;
! if (cmmProviderClass != null) {
! try {
! Class<?> cls = Class.forName(cmmProviderClass);
! provider = (CMMServiceProvider)cls.newInstance();
! } catch (ReflectiveOperationException e) {
}
}
! if (provider == null) {
! provider = new sun.java2d.cmm.lcms.LcmsServiceProvider();
}
! cmmImpl = provider.getColorManagementModule();
if (cmmImpl == null) {
throw new CMMException("Cannot initialize Color Management System."+
"No CM module found");
}
! gpa = new GetPropertyAction("sun.java2d.cmm.trace");
String cmmTrace = AccessController.doPrivileged(gpa);
if (cmmTrace != null) {
cmmImpl = new CMMTracer(cmmImpl);
}