Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
bcfa641f
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
bcfa641f
编写于
8月 01, 2013
作者:
N
naoto
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8021286: Improve MacOS resourcing
Reviewed-by: okutsu
上级
234e6e30
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
1 addition
and
286 deletion
+1
-286
make/sun/awt/FILES_c_macosx.gmk
make/sun/awt/FILES_c_macosx.gmk
+0
-28
make/sun/awt/FILES_export_macosx.gmk
make/sun/awt/FILES_export_macosx.gmk
+0
-29
make/sun/awt/Makefile
make/sun/awt/Makefile
+0
-2
makefiles/CompileNativeLibraries.gmk
makefiles/CompileNativeLibraries.gmk
+0
-4
src/macosx/classes/com/apple/laf/AquaLookAndFeel.java
src/macosx/classes/com/apple/laf/AquaLookAndFeel.java
+1
-3
src/macosx/classes/com/apple/resources/MacOSXResourceBundle.java
...osx/classes/com/apple/resources/MacOSXResourceBundle.java
+0
-110
src/macosx/native/com/apple/resources/MacOSXResourceBundle.m
src/macosx/native/com/apple/resources/MacOSXResourceBundle.m
+0
-110
未找到文件。
make/sun/awt/FILES_c_macosx.gmk
已删除
100644 → 0
浏览文件 @
234e6e30
#
# Copyright (c) 1995, 2012, 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.
#
FILES_AWT_objc = \
$(TARGDIR)MacOSXResourceBundle.m
make/sun/awt/FILES_export_macosx.gmk
已删除
100644 → 0
浏览文件 @
234e6e30
#
# Copyright (c) 1995, 2012, 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.
#
# FILES_export definitions for Mac OS X
FILES_export += \
com/apple/resources/MacOSXResourceBundle.java
make/sun/awt/Makefile
浏览文件 @
bcfa641f
...
...
@@ -145,8 +145,6 @@ ifeq ($(PLATFORM), macosx)
#
# Files
#
include
FILES_c_macosx.gmk
include
FILES_export_macosx.gmk
FILES_objc
=
$(FILES_AWT_objc)
OTHER_LDLIBS
=
-lmlib_image
$(JVMLIB)
$(LIBM)
\
...
...
makefiles/CompileNativeLibraries.gmk
浏览文件 @
bcfa641f
...
...
@@ -558,11 +558,7 @@ endif
ifeq ($(OPENJDK_TARGET_OS),macosx)
LIBAWT_FILES += awt_LoadLibrary.c img_colors.c
LIBAWT_DIRS += $(JDK_TOPDIR)/src/macosx/native/com/apple/resources
LIBAWT_FILES += awt_LoadLibrary.c MacOSXResourceBundle.m
LIBAWT_CFLAGS += -F/System/Library/Frameworks/JavaVM.framework/Frameworks
LIBAWT_MacOSXResourceBundle.m_CFLAGS:=-O0
endif
ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
...
...
src/macosx/classes/com/apple/laf/AquaLookAndFeel.java
浏览文件 @
bcfa641f
...
...
@@ -37,8 +37,6 @@ import javax.swing.plaf.basic.BasicLookAndFeel;
import
sun.swing.*
;
import
apple.laf.*
;
import
com.apple.resources.MacOSXResourceBundle
;
public
class
AquaLookAndFeel
extends
BasicLookAndFeel
{
static
final
String
sOldPropertyPrefix
=
"com.apple.macos."
;
// old prefix for things like 'useScreenMenuBar'
static
final
String
sPropertyPrefix
=
"apple.laf."
;
// new prefix for things like 'useScreenMenuBar'
...
...
@@ -252,7 +250,7 @@ public class AquaLookAndFeel extends BasicLookAndFeel {
table
.
setDefaultLocale
(
Locale
.
getDefault
());
table
.
addResourceBundle
(
PKG_PREFIX
+
"resources.aqua"
);
try
{
final
ResourceBundle
aquaProperties
=
MacOSXResourceBundle
.
getMacResource
Bundle
(
PKG_PREFIX
+
"resources.aqua"
);
final
ResourceBundle
aquaProperties
=
ResourceBundle
.
get
Bundle
(
PKG_PREFIX
+
"resources.aqua"
);
final
Enumeration
<
String
>
propertyKeys
=
aquaProperties
.
getKeys
();
while
(
propertyKeys
.
hasMoreElements
())
{
...
...
src/macosx/classes/com/apple/resources/MacOSXResourceBundle.java
已删除
100644 → 0
浏览文件 @
234e6e30
/*
* Copyright (c) 2011, 2012, 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
com.apple.resources
;
import
java.security.*
;
import
java.util.PropertyResourceBundle
;
import
java.util.ResourceBundle
;
import
java.io.*
;
public
class
MacOSXResourceBundle
extends
PropertyResourceBundle
{
MacOSXResourceBundle
(
InputStream
stream
)
throws
IOException
{
super
(
stream
);
}
void
setItsParent
(
ResourceBundle
rb
)
{
setParent
(
rb
);
}
public
static
ResourceBundle
getMacResourceBundle
(
String
baseJavaBundle
)
throws
Exception
{
return
getMacResourceBundle
(
baseJavaBundle
,
null
);
}
public
static
ResourceBundle
getMacResourceBundle
(
String
baseJavaBundle
,
String
filename
)
throws
Exception
{
LoadNativeBundleAction
lnba
=
new
LoadNativeBundleAction
(
baseJavaBundle
,
filename
);
return
(
ResourceBundle
)
java
.
security
.
AccessController
.
doPrivileged
(
lnba
);
}
}
class
LoadNativeBundleAction
implements
PrivilegedExceptionAction
{
String
mBaseJavaBundle
;
String
mFilenameOverride
;
LoadNativeBundleAction
(
String
baseJavaBundle
,
String
filenameOverride
)
{
mBaseJavaBundle
=
baseJavaBundle
;
mFilenameOverride
=
filenameOverride
;
}
public
Object
run
()
{
java
.
util
.
ResourceBundle
returnValue
=
null
;
MacOSXResourceBundle
macOSrb
=
null
;
// Load the Mac OS X resources.
// Use a base filename if we were given one. Otherwise, we will look for the last piece of the bundle path
// with '.properties' appended. Either way, the native method will take care of the extension.
String
filename
=
mFilenameOverride
;
if
(
filename
==
null
)
{
filename
=
mBaseJavaBundle
.
substring
(
mBaseJavaBundle
.
lastIndexOf
(
'.'
)
+
1
);
}
File
propsFile
=
null
;
String
propertyFileName
=
getPathToBundleFile
(
filename
);
InputStream
stream
=
null
;
try
{
propsFile
=
new
File
(
propertyFileName
);
stream
=
new
FileInputStream
(
propsFile
);
stream
=
new
java
.
io
.
BufferedInputStream
(
stream
);
macOSrb
=
new
MacOSXResourceBundle
(
stream
);
}
catch
(
Exception
e
)
{
//e.printStackTrace();
//System.out.println("Failed to create resources from application bundle. Using Java-based resources.");
}
finally
{
try
{
if
(
stream
!=
null
)
stream
.
close
();
stream
=
null
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
returnValue
=
ResourceBundle
.
getBundle
(
mBaseJavaBundle
);
// If we have a platform-specific bundle, make it the parent of the generic bundle, so failures propagate up to the parent.
if
(
returnValue
!=
null
)
{
if
(
macOSrb
!=
null
)
{
macOSrb
.
setItsParent
(
returnValue
);
returnValue
=
macOSrb
;
}
}
return
returnValue
;
}
private
static
native
String
getPathToBundleFile
(
String
filename
);
}
src/macosx/native/com/apple/resources/MacOSXResourceBundle.m
已删除
100644 → 0
浏览文件 @
234e6e30
/*
* Copyright (c) 2011, 2012, 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.
*/
#import <dlfcn.h>
#import <Cocoa/Cocoa.h>
#import <JavaNativeFoundation/JavaNativeFoundation.h>
#ifndef MAXPATHLEN
#define MAXPATHLEN PATH_MAX
#endif
static
jboolean
GetPathFromCurrentBinary
(
char
*
buf
,
jint
bufsize
)
{
Dl_info
dlinfo
;
dladdr
((
void
*
)
GetPathFromCurrentBinary
,
&
dlinfo
);
if
(
realpath
(
dlinfo
.
dli_fname
,
buf
)
==
NULL
)
{
// fprintf(stderr, "Error: realpath(`%s') failed.\n", dlinfo.dli_fname);
return
JNI_FALSE
;
}
const
char
*
libawt
=
"lib/libawt.dylib"
;
int
strLen
,
libawtLen
;
strLen
=
strlen
(
buf
);
libawtLen
=
strlen
(
libawt
);
if
(
strLen
<
libawtLen
||
strcmp
(
buf
+
strLen
-
libawtLen
,
libawt
)
!=
0
)
{
return
JNI_FALSE
;
}
buf
[
strLen
-
libawtLen
]
=
'\0'
;
return
JNI_TRUE
;
}
#define JAVA_DLL "libjava.dylib"
static
jboolean
GetJREPath
(
char
*
buf
,
jint
bufsize
)
{
/* try to get the path from the current binary, if not, bail to the framework */
if
(
GetPathFromCurrentBinary
(
buf
,
bufsize
)
==
JNI_TRUE
)
{
/* does the rest of the JRE exist? */
char
libjava
[
MAXPATHLEN
];
snprintf
(
libjava
,
MAXPATHLEN
,
"%s/lib/"
JAVA_DLL
,
buf
);
if
(
access
(
libjava
,
F_OK
)
==
0
)
{
return
JNI_TRUE
;
}
}
return
JNI_FALSE
;
}
static
NSString
*
getRunningJavaBundle
()
{
char
path
[
MAXPATHLEN
];
GetJREPath
(
path
,
MAXPATHLEN
);
return
[[
NSString
alloc
]
initWithFormat
:
@"%@/bundle"
,
[
NSString
stringWithUTF8String
:
path
]];
}
/*
* Class: com_apple_resources_LoadNativeBundleAction
* Method: getPathToBundleFile
* Signature: (Ljava/lang/String)Ljava/lang/String;
*/
JNIEXPORT
jstring
JNICALL
Java_com_apple_resources_LoadNativeBundleAction_getPathToBundleFile
(
JNIEnv
*
env
,
jclass
klass
,
jstring
filename
)
{
jstring
returnVal
=
NULL
;
if
(
filename
==
NULL
)
{
return
NULL
;
}
JNF_COCOA_ENTER
(
env
);
NSBundle
*
javaBundle
=
[
NSBundle
bundleWithPath
:
getRunningJavaBundle
()];
NSString
*
baseFilename
=
JNFJavaToNSString
(
env
,
filename
);
NSString
*
propertyFilePath
=
[
javaBundle
pathForResource
:
baseFilename
ofType
:
@"properties"
];
if
(
propertyFilePath
!=
nil
)
{
returnVal
=
JNFNSToJavaString
(
env
,
propertyFilePath
);
}
JNF_COCOA_EXIT
(
env
);
return
returnVal
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录