View Javadoc

1   /**
2    *
3    * Copyright 2004 The Apache Software Foundation
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   */
17  package org.apache.geronimo.kernel.classloader;
18  
19  import java.io.BufferedOutputStream;
20  import java.io.ByteArrayOutputStream;
21  import java.io.File;
22  import java.io.FileInputStream;
23  import java.io.FileOutputStream;
24  import java.io.IOException;
25  import java.io.InputStream;
26  import java.io.InputStreamReader;
27  import java.io.OutputStream;
28  import java.io.Reader;
29  import java.io.Writer;
30  import java.io.FileNotFoundException;
31  import java.net.MalformedURLException;
32  import java.net.URL;
33  import java.net.URLStreamHandler;
34  import java.net.URLConnection;
35  import java.util.Collection;
36  import java.util.Collections;
37  import java.util.Enumeration;
38  import java.util.LinkedList;
39  import java.util.jar.JarFile;
40  import java.util.jar.JarOutputStream;
41  import java.util.jar.Manifest;
42  import java.util.zip.ZipEntry;
43  import java.util.zip.ZipFile;
44  
45  import org.apache.geronimo.kernel.classloader.ResourceLocation;
46  import org.apache.geronimo.kernel.classloader.JarResourceLocation;
47  import org.apache.geronimo.kernel.classloader.DirectoryResourceLocation;
48  
49  /**
50   * @version $Rev: 410741 $ $Date: 2006-05-31 21:35:48 -0700 (Wed, 31 May 2006) $
51   */
52  public final class IoUtil {
53      private IoUtil() {
54      }
55  
56      public static byte[] getBytes(InputStream inputStream) throws IOException {
57          try {
58              byte[] buffer = new byte[4096];
59              ByteArrayOutputStream out = new ByteArrayOutputStream();
60              for (int count = inputStream.read(buffer); count >= 0; count = inputStream.read(buffer)) {
61                  out.write(buffer, 0, count);
62              }
63              byte[] bytes = out.toByteArray();
64              return bytes;
65          } finally {
66              close(inputStream);
67          }
68      }
69  
70      public static void flush(OutputStream thing) {
71          if (thing != null) {
72              try {
73                  thing.flush();
74              } catch(Exception ignored) {
75              }
76          }
77      }
78  
79      public static void flush(Writer thing) {
80          if (thing != null) {
81              try {
82                  thing.flush();
83              } catch(Exception ignored) {
84              }
85          }
86      }
87  
88      public static void close(JarFile thing) {
89          if (thing != null) {
90              try {
91                  thing.close();
92              } catch(Exception ignored) {
93              }
94          }
95      }
96  
97      public static void close(InputStream thing) {
98          if (thing != null) {
99              try {
100                 thing.close();
101             } catch(Exception ignored) {
102             }
103         }
104     }
105 
106     public static void close(OutputStream thing) {
107         if (thing != null) {
108             try {
109                 thing.close();
110             } catch(Exception ignored) {
111             }
112         }
113     }
114 
115     public static void close(Reader thing) {
116         if (thing != null) {
117             try {
118                 thing.close();
119             } catch(Exception ignored) {
120             }
121         }
122     }
123 
124     public static void close(Writer thing) {
125         if (thing != null) {
126             try {
127                 thing.close();
128             } catch(Exception ignored) {
129             }
130         }
131     }
132 
133     public static final class EmptyInputStream extends InputStream {
134         public int read() {
135             return -1;
136         }
137 
138         public int read(byte b[])  {
139             return -1;
140         }
141 
142         public int read(byte b[], int off, int len) {
143             return -1;
144         }
145 
146         public long skip(long n) {
147             return 0;
148         }
149 
150         public int available() {
151             return 0;
152         }
153 
154         public void close() {
155         }
156 
157         public synchronized void mark(int readlimit) {
158         }
159 
160         public synchronized void reset() {
161         }
162 
163         public boolean markSupported() {
164             return false;
165         }
166     }
167 }