diff options
Diffstat (limited to 'jetty-util/src/main/java/org/eclipse/jetty/util/resource/ResourceCollection.java')
-rw-r--r-- | jetty-util/src/main/java/org/eclipse/jetty/util/resource/ResourceCollection.java | 49 |
1 files changed, 19 insertions, 30 deletions
diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/ResourceCollection.java b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/ResourceCollection.java index 451a1514b2..d942a6f2c0 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/ResourceCollection.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/ResourceCollection.java @@ -21,9 +21,9 @@ package org.eclipse.jetty.util.resource; import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL; -import java.nio.channels.ReadableByteChannel; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; @@ -31,8 +31,6 @@ import java.util.List; import java.util.StringTokenizer; import org.eclipse.jetty.util.URIUtil; -import org.eclipse.jetty.util.log.Log; -import org.eclipse.jetty.util.log.Logger; /** * A collection of resources (dirs). @@ -46,7 +44,6 @@ import org.eclipse.jetty.util.log.Logger; */ public class ResourceCollection extends Resource { - private static final Logger LOG = Log.getLogger(ResourceCollection.class); private Resource[] _resources; /* ------------------------------------------------------------ */ @@ -169,25 +166,20 @@ public class ResourceCollection extends Resource " argument must be a string containing one or more comma-separated resource strings."); } - List<Resource> resources = new ArrayList<>(); - + _resources = new Resource[len]; try { - while(tokenizer.hasMoreTokens()) + for(int i=0; tokenizer.hasMoreTokens(); i++) { - Resource resource = Resource.newResource(tokenizer.nextToken().trim()); - if(!resource.exists() || !resource.isDirectory()) - LOG.warn(" !exist "+resource); - else - resources.add(resource); + _resources[i] = Resource.newResource(tokenizer.nextToken().trim()); + if(!_resources[i].exists() || !_resources[i].isDirectory()) + throw new IllegalArgumentException(_resources[i] + " is not an existing directory."); } } catch(Exception e) { throw new RuntimeException(e); } - - _resources = resources.toArray(new Resource[resources.size()]); } /* ------------------------------------------------------------ */ @@ -226,15 +218,12 @@ public class ResourceCollection extends Resource Resource r = _resources[i].addPath(path); if (r.exists() && r.isDirectory()) { - if (resources==null) - resources = new ArrayList<Resource>(); - if (resource!=null) { + resources = new ArrayList<Resource>(); resources.add(resource); resource=null; } - resources.add(r); } } @@ -339,35 +328,35 @@ public class ResourceCollection extends Resource } return null; } - + /* ------------------------------------------------------------ */ - @Override - public ReadableByteChannel getReadableByteChannel() throws IOException + @Override + public String getName() { if(_resources==null) throw new IllegalStateException("*resources* not set."); for(Resource r : _resources) { - ReadableByteChannel channel = r.getReadableByteChannel(); - if(channel!=null) - return channel; + String name = r.getName(); + if(name!=null) + return name; } return null; } /* ------------------------------------------------------------ */ @Override - public String getName() + public OutputStream getOutputStream() throws IOException, SecurityException { if(_resources==null) throw new IllegalStateException("*resources* not set."); for(Resource r : _resources) { - String name = r.getName(); - if(name!=null) - return name; + OutputStream os = r.getOutputStream(); + if(os!=null) + return os; } return null; } @@ -444,13 +433,13 @@ public class ResourceCollection extends Resource /* ------------------------------------------------------------ */ @Override - public void close() + public void release() { if(_resources==null) throw new IllegalStateException("*resources* not set."); for(Resource r : _resources) - r.close(); + r.release(); } /* ------------------------------------------------------------ */ |