--- old/make/CompileJavaModules.gmk 2015-03-16 15:53:50.000000000 -0700 +++ new/make/CompileJavaModules.gmk 2015-03-16 15:53:50.000000000 -0700 @@ -144,9 +144,17 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) # exclude all X11 on Mac. - java.desktop_EXCLUDES += sun/awt/X11 + java.desktop_EXCLUDES += sun/awt/X11 \ + sun/java2d/x11 \ + sun/java2d/jules \ + sun/java2d/xr \ + com/sun/java/swing/plaf/gtk java.desktop_EXCLUDE_FILES += \ - $(JDK_TOPDIR)/src/java.desktop/unix/classes/sun/java2d/BackBufferCapsProvider.java \ + $(wildcard $(JDK_TOPDIR)/src/java.desktop/unix/classes/sun/java2d/*.java) \ + $(wildcard $(JDK_TOPDIR)/src/java.desktop/unix/classes/sun/java2d/opengl/*.java) \ + $(wildcard $(JDK_TOPDIR)/src/java.desktop/unix/classes/sun/awt/*.java) \ + $(wildcard $(JDK_TOPDIR)/src/java.desktop/unix/classes/sun/awt/motif/*.java) \ + $(wildcard $(JDK_TOPDIR)/src/java.desktop/unix/classes/sun/font/*.java) \ # else # TBD: figure out how to eliminate this long list --- old/jdk/src/java.desktop/macosx/classes/sun/font/CFontManager.java 2015-03-16 15:53:51.000000000 -0700 +++ new/jdk/src/java.desktop/macosx/classes/sun/font/CFontManager.java 2015-03-16 15:53:51.000000000 -0700 @@ -44,7 +44,6 @@ import sun.lwawt.macosx.*; public final class CFontManager extends SunFontManager { - private FontConfigManager fcManager = null; private static Hashtable genericFonts = new Hashtable(); @Override @@ -231,15 +230,6 @@ return font2D; } - /* - public synchronized FontConfigManager getFontConfigManager() { - if (fcManager == null) { - fcManager = new FontConfigManager(); - } - return fcManager; - } - */ - protected void registerFontsInDir(String dirName, boolean useJavaRasterizer, int fontRank, boolean defer, boolean resolveSymLinks) { loadNativeDirFonts(dirName); super.registerFontsInDir(dirName, useJavaRasterizer, fontRank, defer, resolveSymLinks); --- /dev/null 2015-03-16 15:53:53.000000000 -0700 +++ new/jdk/src/java.desktop/macosx/classes/sun/font/NativeFont.java 2015-03-16 15:53:52.000000000 -0700 @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.font; + +import java.awt.FontFormatException; +import java.awt.font.FontRenderContext; +import java.awt.geom.GeneralPath; +import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; + +/* + * This class should never be invoked on the windows implementation + * So the constructor throws a FontFormatException, which is caught + * and the font is ignored. + */ + +public class NativeFont extends PhysicalFont { + + /** + * Verifies native font is accessible. + * @throws FontFormatException - if the font can't be located. + */ + public NativeFont(String platName, boolean isBitmapDelegate) + throws FontFormatException { + + throw new FontFormatException("NativeFont not used on OS X"); + } + + static boolean hasExternalBitmaps(String platName) { + return false; + } + + public CharToGlyphMapper getMapper() { + return null; + } + + PhysicalFont getDelegateFont() { + return null; + } + + FontStrike createStrike(FontStrikeDesc desc) { + return null; + } + + public Rectangle2D getMaxCharBounds(FontRenderContext frc) { + return null; + } + + StrikeMetrics getFontMetrics(long pScalerContext) { + return null; + } + + public GeneralPath getGlyphOutline(long pScalerContext, + int glyphCode, + float x, float y) { + return null; + } + + public GeneralPath getGlyphVectorOutline(long pScalerContext, + int[] glyphs, int numGlyphs, + float x, float y) { + return null; + } + + + long getGlyphImage(long pScalerContext, int glyphCode) { + return 0L; + } + + + void getGlyphMetrics(long pScalerContext, int glyphCode, + Point2D.Float metrics) { + } + + + float getGlyphAdvance(long pScalerContext, int glyphCode) { + return 0f; + } + + Rectangle2D.Float getGlyphOutlineBounds(long pScalerContext, + int glyphCode) { + return new Rectangle2D.Float(0f, 0f, 0f, 0f); + } +} --- /dev/null 2015-03-16 15:53:54.000000000 -0700 +++ new/jdk/src/java.desktop/macosx/classes/sun/font/NativeStrike.java 2015-03-16 15:53:53.000000000 -0700 @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.font; + +import java.awt.geom.GeneralPath; +import java.awt.geom.Point2D; +import java.awt.Rectangle; +import java.awt.geom.Rectangle2D; + +public class NativeStrike extends PhysicalStrike { + + NativeFont nativeFont; + + NativeStrike(NativeFont nativeFont, FontStrikeDesc desc) { + super(nativeFont, desc); + + throw new RuntimeException("NativeFont not used on OS X"); + } + + NativeStrike(NativeFont nativeFont, FontStrikeDesc desc, + boolean nocache) { + super(nativeFont, desc); + + throw new RuntimeException("NativeFont not used on Windows"); + } + + + void getGlyphImagePtrs(int[] glyphCodes, long[] images,int len) { + } + + long getGlyphImagePtr(int glyphCode) { + return 0L; + } + + long getGlyphImagePtrNoCache(int glyphCode) { + return 0L; + } + + void getGlyphImageBounds(int glyphcode, + Point2D.Float pt, + Rectangle result) { + } + + Point2D.Float getGlyphMetrics(int glyphCode) { + return null; + } + + float getGlyphAdvance(int glyphCode) { + return 0f; + } + + Rectangle2D.Float getGlyphOutlineBounds(int glyphCode) { + return null; + } + GeneralPath getGlyphOutline(int glyphCode, float x, float y) { + return null; + } + + GeneralPath getGlyphVectorOutline(int[] glyphs, float x, float y) { + return null; + } + +}