App Engine Java SDK version 1.7.0
[gae.git] / java / src / main / com / google / appengine / tools / development / ExtendedRootResource.java
blob217ee91f0ee9d2f09a76ae51575903c07c7892fa
1 // Copyright 2012 Google Inc. All Rights Reserved.
3 package com.google.appengine.tools.development;
5 import org.mortbay.resource.FileResource;
6 import org.mortbay.resource.Resource;
7 import org.mortbay.resource.ResourceCollection;
9 import java.io.File;
11 /**
12 * A {@code Resource} that represents a web root extended to include an external resource directory.
13 * <p>
14 * We replace Jetty's baseResource with an instance of this class in order to implement our
15 * "External Resource Directory" feature.
18 public class ExtendedRootResource extends ResourceCollection {
19 public ExtendedRootResource(Resource webRoot, File externalResourceDir) {
20 super(new Resource[] {toResource(externalResourceDir), webRoot});
23 private static Resource toResource(File f) {
24 if (f == null) {
25 throw new NullPointerException("externalResourceDir may not be null");
27 try {
28 return new FileResource(f.toURI().toURL());
29 } catch (Exception e) {
30 throw new IllegalArgumentException("Invalid externalResourceDirectory: " + f.getPath(), e);