8039362: Read content-types.properties as a resource
Reviewed-by: erikj, alanb, mchung
This commit is contained in:
parent
da75221bb8
commit
1e12679af1
@ -158,15 +158,6 @@ COPY_FILES += $(CURSORS_TARGET_FILES)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
CONTENT_TYPES_SRC = $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib
|
||||
|
||||
$(LIBDIR)/content-types.properties: $(CONTENT_TYPES_SRC)/content-types.properties
|
||||
$(call install-file)
|
||||
|
||||
COPY_FILES += $(LIBDIR)/content-types.properties
|
||||
|
||||
##########################################################################################
|
||||
|
||||
CALENDARS_SRC := $(JDK_TOPDIR)/src/share/lib
|
||||
|
||||
$(LIBDIR)/calendars.properties: $(CALENDARS_SRC)/calendars.properties
|
||||
|
@ -26,7 +26,7 @@
|
||||
# Copy icu and _dict files used by the text break iterator
|
||||
|
||||
COPY_PATTERNS := .icu _dict .dat _options .js aliasmap .spp .wav .css \
|
||||
.png .gif .xml .dtd .txt oqlhelp.html
|
||||
.png .gif .xml .dtd .txt oqlhelp.html content-types.properties
|
||||
|
||||
# These directories should not be copied at all
|
||||
EXCLUDES += \
|
||||
|
@ -56,7 +56,6 @@ PROFILE_1_JRE_LIB_FILES := \
|
||||
$(OPENJDK_TARGET_CPU_LEGACY_LIB)/server/Xusage.txt \
|
||||
calendars.properties \
|
||||
classlist \
|
||||
content-types.properties \
|
||||
currency.data \
|
||||
ext/localedata.jar \
|
||||
ext/meta-index \
|
||||
|
@ -1,276 +0,0 @@
|
||||
#sun.net.www MIME content-types table
|
||||
#
|
||||
# Property fields:
|
||||
#
|
||||
# <description> ::= 'description' '=' <descriptive string>
|
||||
# <extensions> ::= 'file_extensions' '=' <comma-delimited list, include '.'>
|
||||
# <image> ::= 'icon' '=' <filename of icon image>
|
||||
# <action> ::= 'browser' | 'application' | 'save' | 'unknown'
|
||||
# <application> ::= 'application' '=' <command line template>
|
||||
#
|
||||
|
||||
#
|
||||
# The "we don't know anything about this data" type(s).
|
||||
# Used internally to mark unrecognized types.
|
||||
#
|
||||
content/unknown: description=Unknown Content
|
||||
unknown/unknown: description=Unknown Data Type
|
||||
|
||||
#
|
||||
# The template we should use for temporary files when launching an application
|
||||
# to view a document of given type.
|
||||
#
|
||||
temp.file.template: /tmp/%s
|
||||
|
||||
#
|
||||
# The "real" types.
|
||||
#
|
||||
application/octet-stream: \
|
||||
description=Generic Binary Stream;\
|
||||
file_extensions=.saveme,.dump,.hqx,.arc,.o,.a,.bin,.exe,.z,.gz
|
||||
|
||||
application/oda: \
|
||||
description=ODA Document;\
|
||||
file_extensions=.oda
|
||||
|
||||
application/pdf: \
|
||||
description=Adobe PDF Format;\
|
||||
file_extensions=.pdf
|
||||
|
||||
application/postscript: \
|
||||
description=Postscript File;\
|
||||
file_extensions=.eps,.ai,.ps;\
|
||||
icon=ps;\
|
||||
action=application;\
|
||||
application=imagetool %s
|
||||
|
||||
application/x-dvi: \
|
||||
description=TeX DVI File;\
|
||||
file_extensions=.dvi;\
|
||||
action=application;\
|
||||
application=xdvi %s
|
||||
|
||||
application/x-hdf: \
|
||||
description=Hierarchical Data Format;\
|
||||
file_extensions=.hdf;\
|
||||
action=save
|
||||
|
||||
application/x-latex: \
|
||||
description=LaTeX Source;\
|
||||
file_extensions=.latex
|
||||
|
||||
application/x-netcdf: \
|
||||
description=Unidata netCDF Data Format;\
|
||||
file_extensions=.nc,.cdf;\
|
||||
action=save
|
||||
|
||||
application/x-tex: \
|
||||
description=TeX Source;\
|
||||
file_extensions=.tex
|
||||
|
||||
application/x-texinfo: \
|
||||
description=Gnu Texinfo;\
|
||||
file_extensions=.texinfo,.texi
|
||||
|
||||
application/x-troff: \
|
||||
description=Troff Source;\
|
||||
file_extensions=.t,.tr,.roff;\
|
||||
action=application;\
|
||||
application=xterm -title troff -e sh -c \"nroff %s | col | more -w\"
|
||||
|
||||
application/x-troff-man: \
|
||||
description=Troff Manpage Source;\
|
||||
file_extensions=.man;\
|
||||
action=application;\
|
||||
application=xterm -title troff -e sh -c \"nroff -man %s | col | more -w\"
|
||||
|
||||
application/x-troff-me: \
|
||||
description=Troff ME Macros;\
|
||||
file_extensions=.me;\
|
||||
action=application;\
|
||||
application=xterm -title troff -e sh -c \"nroff -me %s | col | more -w\"
|
||||
|
||||
application/x-troff-ms: \
|
||||
description=Troff MS Macros;\
|
||||
file_extensions=.ms;\
|
||||
action=application;\
|
||||
application=xterm -title troff -e sh -c \"nroff -ms %s | col | more -w\"
|
||||
|
||||
application/x-wais-source: \
|
||||
description=Wais Source;\
|
||||
file_extensions=.src,.wsrc
|
||||
|
||||
application/zip: \
|
||||
description=Zip File;\
|
||||
file_extensions=.zip;\
|
||||
icon=zip;\
|
||||
action=save
|
||||
|
||||
application/x-bcpio: \
|
||||
description=Old Binary CPIO Archive;\
|
||||
file_extensions=.bcpio; action=save
|
||||
|
||||
application/x-cpio: \
|
||||
description=Unix CPIO Archive;\
|
||||
file_extensions=.cpio; action=save
|
||||
|
||||
application/x-gtar: \
|
||||
description=Gnu Tar Archive;\
|
||||
file_extensions=.gtar;\
|
||||
icon=tar;\
|
||||
action=save
|
||||
|
||||
application/x-shar: \
|
||||
description=Shell Archive;\
|
||||
file_extensions=.sh,.shar;\
|
||||
action=save
|
||||
|
||||
application/x-sv4cpio: \
|
||||
description=SVR4 CPIO Archive;\
|
||||
file_extensions=.sv4cpio; action=save
|
||||
|
||||
application/x-sv4crc: \
|
||||
description=SVR4 CPIO with CRC;\
|
||||
file_extensions=.sv4crc; action=save
|
||||
|
||||
application/x-tar: \
|
||||
description=Tar Archive;\
|
||||
file_extensions=.tar;\
|
||||
icon=tar;\
|
||||
action=save
|
||||
|
||||
application/x-ustar: \
|
||||
description=US Tar Archive;\
|
||||
file_extensions=.ustar;\
|
||||
action=save
|
||||
|
||||
audio/basic: \
|
||||
description=Basic Audio;\
|
||||
file_extensions=.snd,.au;\
|
||||
icon=audio;\
|
||||
action=application;\
|
||||
application=audiotool %s
|
||||
|
||||
audio/x-aiff: \
|
||||
description=Audio Interchange Format File;\
|
||||
file_extensions=.aifc,.aif,.aiff;\
|
||||
icon=aiff
|
||||
|
||||
audio/x-wav: \
|
||||
description=Wav Audio;\
|
||||
file_extensions=.wav;\
|
||||
icon=wav
|
||||
|
||||
image/gif: \
|
||||
description=GIF Image;\
|
||||
file_extensions=.gif;\
|
||||
icon=gif;\
|
||||
action=browser
|
||||
|
||||
image/ief: \
|
||||
description=Image Exchange Format;\
|
||||
file_extensions=.ief
|
||||
|
||||
image/jpeg: \
|
||||
description=JPEG Image;\
|
||||
file_extensions=.jfif,.jfif-tbnl,.jpe,.jpg,.jpeg;\
|
||||
icon=jpeg;\
|
||||
action=browser;\
|
||||
application=imagetool %s
|
||||
|
||||
image/tiff: \
|
||||
description=TIFF Image;\
|
||||
file_extensions=.tif,.tiff;\
|
||||
icon=tiff
|
||||
|
||||
image/vnd.fpx: \
|
||||
description=FlashPix Image;\
|
||||
file_extensions=.fpx,.fpix
|
||||
|
||||
image/x-cmu-rast: \
|
||||
description=CMU Raster Image;\
|
||||
file_extensions=.ras
|
||||
|
||||
image/x-portable-anymap: \
|
||||
description=PBM Anymap Format;\
|
||||
file_extensions=.pnm
|
||||
|
||||
image/x-portable-bitmap: \
|
||||
description=PBM Bitmap Format;\
|
||||
file_extensions=.pbm
|
||||
|
||||
image/x-portable-graymap: \
|
||||
description=PBM Graymap Format;\
|
||||
file_extensions=.pgm
|
||||
|
||||
image/x-portable-pixmap: \
|
||||
description=PBM Pixmap Format;\
|
||||
file_extensions=.ppm
|
||||
|
||||
image/x-rgb: \
|
||||
description=RGB Image;\
|
||||
file_extensions=.rgb
|
||||
|
||||
image/x-xbitmap: \
|
||||
description=X Bitmap Image;\
|
||||
file_extensions=.xbm,.xpm
|
||||
|
||||
image/x-xwindowdump: \
|
||||
description=X Window Dump Image;\
|
||||
file_extensions=.xwd
|
||||
|
||||
image/png: \
|
||||
description=PNG Image;\
|
||||
file_extensions=.png;\
|
||||
icon=png;\
|
||||
action=browser
|
||||
|
||||
text/html: \
|
||||
description=HTML Document;\
|
||||
file_extensions=.htm,.html;\
|
||||
icon=html
|
||||
|
||||
text/plain: \
|
||||
description=Plain Text;\
|
||||
file_extensions=.text,.c,.cc,.c++,.h,.pl,.txt,.java,.el;\
|
||||
icon=text;\
|
||||
action=browser
|
||||
|
||||
text/tab-separated-values: \
|
||||
description=Tab Separated Values Text;\
|
||||
file_extensions=.tsv
|
||||
|
||||
text/x-setext: \
|
||||
description=Structure Enhanced Text;\
|
||||
file_extensions=.etx
|
||||
|
||||
video/mpeg: \
|
||||
description=MPEG Video Clip;\
|
||||
file_extensions=.mpg,.mpe,.mpeg;\
|
||||
icon=mpeg;\
|
||||
action=application;\
|
||||
application=mpeg_play %s
|
||||
|
||||
video/quicktime: \
|
||||
description=QuickTime Video Clip;\
|
||||
file_extensions=.mov,.qt
|
||||
|
||||
application/x-troff-msvideo: \
|
||||
description=AVI Video;\
|
||||
file_extensions=.avi;\
|
||||
icon=avi
|
||||
|
||||
video/x-sgi-movie: \
|
||||
description=SGI Movie;\
|
||||
file_extensions=.movie,.mv
|
||||
|
||||
message/rfc822: \
|
||||
description=Internet Email Message;\
|
||||
file_extensions=.mime
|
||||
|
||||
application/xml: \
|
||||
description=XML document;\
|
||||
file_extensions=.xml
|
||||
|
||||
|
||||
|
@ -225,39 +225,28 @@ public class MimeTable implements FileNameMap {
|
||||
public synchronized void load() {
|
||||
Properties entries = new Properties();
|
||||
File file = null;
|
||||
try {
|
||||
InputStream is;
|
||||
// First try to load the user-specific table, if it exists
|
||||
String userTablePath =
|
||||
System.getProperty("content.types.user.table");
|
||||
if (userTablePath != null) {
|
||||
file = new File(userTablePath);
|
||||
if (!file.exists()) {
|
||||
// No user-table, try to load the default built-in table.
|
||||
file = new File(System.getProperty("java.home") +
|
||||
File.separator +
|
||||
"lib" +
|
||||
File.separator +
|
||||
"content-types.properties");
|
||||
}
|
||||
}
|
||||
else {
|
||||
// No user table, try to load the default built-in table.
|
||||
file = new File(System.getProperty("java.home") +
|
||||
File.separator +
|
||||
"lib" +
|
||||
File.separator +
|
||||
"content-types.properties");
|
||||
}
|
||||
InputStream in;
|
||||
|
||||
is = new BufferedInputStream(new FileInputStream(file));
|
||||
entries.load(is);
|
||||
is.close();
|
||||
// First try to load the user-specific table, if it exists
|
||||
String userTablePath = System.getProperty("content.types.user.table");
|
||||
if (userTablePath != null && (file = new File(userTablePath)).exists()) {
|
||||
try {
|
||||
in = new FileInputStream(file);
|
||||
} catch (FileNotFoundException e) {
|
||||
System.err.println("Warning: " + file.getPath()
|
||||
+ " mime table not found.");
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
in = MimeTable.class.getResourceAsStream("content-types.properties");
|
||||
if (in == null)
|
||||
throw new InternalError("default mime table not found");
|
||||
}
|
||||
catch (IOException e) {
|
||||
System.err.println("Warning: default mime table not found: " +
|
||||
file.getPath());
|
||||
return;
|
||||
|
||||
try (BufferedInputStream bin = new BufferedInputStream(in)) {
|
||||
entries.load(bin);
|
||||
} catch (IOException e) {
|
||||
System.err.println("Warning: " + e.getMessage());
|
||||
}
|
||||
parse(entries);
|
||||
}
|
||||
@ -380,18 +369,6 @@ public class MimeTable implements FileNameMap {
|
||||
return MimeEntry.UNKNOWN;
|
||||
}
|
||||
|
||||
public synchronized boolean save(String filename) {
|
||||
if (filename == null) {
|
||||
filename = System.getProperty("user.home" +
|
||||
File.separator +
|
||||
"lib" +
|
||||
File.separator +
|
||||
"content-types.properties");
|
||||
}
|
||||
|
||||
return saveAsProperties(new File(filename));
|
||||
}
|
||||
|
||||
public Properties getAsProperties() {
|
||||
Properties properties = new Properties();
|
||||
Enumeration<MimeEntry> e = elements();
|
||||
|
Loading…
x
Reference in New Issue
Block a user