提交 828e9c93 编写于 作者: M mchung

6915797: Remove sun.tools.jar.JarImageSource that is not used

7090178: Move java.util.XMLUtils to another package to avoid split package
Reviewed-by: alanb, sherman
上级 8c0591d1
......@@ -208,7 +208,6 @@ JAVA_JAVA_java = \
java/util/Observable.java \
java/util/Observer.java \
java/util/Properties.java \
java/util/XMLUtils.java \
java/util/InvalidPropertiesFormatException.java \
java/util/PropertyPermission.java \
java/util/PropertyResourceBundle.java \
......
......@@ -68,7 +68,7 @@ else
endif
# nio need to be compiled before awt to have all charsets ready
SUBDIRS = jar security javazic misc net nio text launcher
SUBDIRS = jar security javazic misc net nio text util launcher
ifdef BUILD_HEADLESS_ONLY
DISPLAY_LIBS = awt $(HEADLESS_SUBDIR)
......
#
# Copyright (c) 2011, 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.
#
BUILDDIR = ../..
PACKAGE = sun.util
PRODUCT = sun
include $(BUILDDIR)/common/Defs.gmk
#
# Files
#
AUTO_FILES_JAVA_DIRS = sun/util/xml
#
# Rules
#
include $(BUILDDIR)/common/Classes.gmk
......@@ -34,6 +34,7 @@ import java.io.Reader;
import java.io.Writer;
import java.io.OutputStreamWriter;
import java.io.BufferedWriter;
import java.lang.reflect.*;
/**
* The <code>Properties</code> class represents a persistent set of
......@@ -1111,4 +1112,60 @@ class Properties extends Hashtable<Object,Object> {
private static final char[] hexDigit = {
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
};
private static class XMLUtils {
private static Method load = null;
private static Method save = null;
static {
try {
// reference sun.util.xml.Utils reflectively
// to allow the Properties class be compiled in
// the absence of XML
Class<?> c = Class.forName("sun.util.xml.XMLUtils", true, null);
load = c.getMethod("load", Properties.class, InputStream.class);
save = c.getMethod("save", Properties.class, OutputStream.class,
String.class, String.class);
} catch (ClassNotFoundException cnf) {
throw new AssertionError(cnf);
} catch (NoSuchMethodException e) {
throw new AssertionError(e);
}
}
static void invoke(Method m, Object... args) throws IOException {
try {
m.invoke(null, args);
} catch (IllegalAccessException e) {
throw new AssertionError(e);
} catch (InvocationTargetException e) {
Throwable t = e.getCause();
if (t instanceof RuntimeException)
throw (RuntimeException)t;
if (t instanceof IOException) {
throw (IOException)t;
} else {
throw new AssertionError(t);
}
}
}
static void load(Properties props, InputStream in)
throws IOException, InvalidPropertiesFormatException
{
if (load == null)
throw new InternalError("sun.util.xml.XMLUtils not found");
invoke(load, props, in);
}
static void save(Properties props, OutputStream os, String comment,
String encoding)
throws IOException
{
if (save == null)
throw new InternalError("sun.util.xml.XMLUtils not found");
invoke(save, props, os, comment, encoding);
}
}
}
/*
* Copyright (c) 1996, 1998, 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.tools.jar;
import sun.awt.image.URLImageSource;
import sun.awt.image.ImageDecoder;
import java.net.URL;
import java.net.JarURLConnection;
import java.util.jar.JarFile;
import java.util.jar.JarEntry;
import java.io.InputStream;
import java.io.IOException;
public class JarImageSource extends URLImageSource {
String mimeType;
String entryName = null;
URL url;
/**
* Create an image source from a Jar entry URL with the specified
* mime type.
*/
public JarImageSource(URL u, String type) {
super(u);
url = u;
mimeType = type;
}
/**
* Create an image source from a Jar file/entry URL
* with the specified entry name and mime type.
*/
public JarImageSource(URL u, String name, String type) {
this(u, type);
this.entryName = name;
}
protected ImageDecoder getDecoder() {
InputStream is = null;
try {
JarURLConnection c = (JarURLConnection)url.openConnection();
JarFile f = c.getJarFile();
JarEntry e = c.getJarEntry();
if (entryName != null && e == null) {
e = f.getJarEntry(entryName);
}
if (e == null || (e != null && entryName != null
&& (!(entryName.equals(e.getName()))))) {
return null;
}
is = f.getInputStream(e);
} catch (IOException e) {
return null;
}
ImageDecoder id = decoderForType(is, mimeType);
if (id == null) {
id = getDecoder(is);
}
return id;
}
}
......@@ -23,9 +23,10 @@
* questions.
*/
package java.util;
package sun.util.xml;
import java.io.*;
import java.util.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.w3c.dom.*;
......@@ -42,7 +43,7 @@ import javax.xml.transform.stream.*;
* @author Michael McCloskey
* @since 1.3
*/
class XMLUtils {
public class XMLUtils {
// XML loading and saving methods for Properties
......@@ -66,7 +67,7 @@ class XMLUtils {
*/
private static final String EXTERNAL_XML_VERSION = "1.0";
static void load(Properties props, InputStream in)
public static void load(Properties props, InputStream in)
throws IOException, InvalidPropertiesFormatException
{
Document doc = null;
......@@ -120,7 +121,7 @@ class XMLUtils {
}
}
static void save(Properties props, OutputStream os, String comment,
public static void save(Properties props, OutputStream os, String comment,
String encoding)
throws IOException
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册