diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta3/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/io/IOHelper.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-Beta3/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/io/IOHelper.java | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta3/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/io/IOHelper.java b/sca-java-2.x/tags/2.0-Beta3/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/io/IOHelper.java deleted file mode 100644 index 91aef7a65f..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3/modules/common-java/src/main/java/org/apache/tuscany/sca/common/java/io/IOHelper.java +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.common.java.io; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.JarURLConnection; -import java.net.MalformedURLException; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLConnection; - -/** - * Helper class for I/O operations - * @tuscany.spi.extension.asclient - */ -public class IOHelper { - - public static InputStream openStream(URL url) throws IOException { - // Handle file:<relative path> which strictly speaking is not a valid file URL - File file = toFile(url); - if (file != null) { - return new FileInputStream(file); - } - URLConnection connection = url.openConnection(); - if (connection instanceof JarURLConnection) { - // See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5041014 - connection.setUseCaches(false); - } - InputStream is = connection.getInputStream(); - return is; - } - - public static void close(InputStream is) { - if (is != null) { - try { - is.close(); - } catch (IOException e) { - throw new IllegalStateException(e); - } - } - } - - /** - * Escape the space in URL string - * @param uri - * @return - */ - public static URI createURI(String uri) { - if (uri == null) { - return null; - } - if (uri.indexOf('%') != -1) { - // Avoid double-escaping - return URI.create(uri); - } - int index = uri.indexOf(':'); - String scheme = null; - String ssp = uri; - if (index != -1) { - scheme = uri.substring(0, index); - ssp = uri.substring(index + 1); - } - try { - return new URI(scheme, ssp, null); - } catch (URISyntaxException e) { - throw new IllegalArgumentException(e); - } - } - - public static URI toURI(URL url) { - if (url == null) { - return null; - } - return createURI(url.toString()); - } - - public static URL normalize(URL url) { - // Make sure the trailing / is added to the file directory URL so that - // URLClassLoader can load classes from that - try { - File file = toFile(url); - if (file != null) { - return file.toURI().toURL(); - } else { - return toURI(url).toURL(); - } - } catch (MalformedURLException e) { - throw new IllegalArgumentException(e); - } - } - - /** - * Returns the File object representing the given URL. - * - * @param url - * @return - */ - public static File toFile(URL url) { - if (url == null || !url.getProtocol().equals("file")) { - return null; - } else { - String filename = url.getFile().replace('/', File.separatorChar); - int pos = 0; - while ((pos = filename.indexOf('%', pos)) >= 0) { - if (pos + 2 < filename.length()) { - String hexStr = filename.substring(pos + 1, pos + 3); - char ch = (char)Integer.parseInt(hexStr, 16); - filename = filename.substring(0, pos) + ch + filename.substring(pos + 3); - } - } - return new File(filename); - } - } - - /** - * Returns the location of the classpath entry, JAR, WAR etc. containing the given class. - * - * @param clazz - * @return - */ - public static URL codeLocation(Class<?> clazz) { - URL url = clazz.getProtectionDomain().getCodeSource().getLocation(); - if (url == null) { - url = clazz.getResource("/" + clazz.getName().replace('.', '/') + ".class"); - } - return url; - } - - /** - * Returns a location string as a URL - * @param location - * @return - */ - public static URL getLocationAsURL(String location) { - URI uri = IOHelper.createURI(location); - if (uri.getScheme() == null) { - uri = new File(location).toURI(); - } - try { - return uri.toURL(); - } catch (MalformedURLException e) { - throw new IllegalArgumentException(location, e); - } - } - -} |