Author: jsdelfino
Date: Tue Oct 16 18:24:56 2007
New Revision: 585314

URL: http://svn.apache.org/viewvc?rev=585314&view=rev
Log:
Allow the default servlet to pick up changes to artifacts (html, scripts, any 
artifact served by tomcat) without having to restart the server. Having to 
restart the server each time you make a change is not convenient when you're 
developing a Web application.

Modified:
    
incubator/tuscany/java/sca/modules/host-tomcat/src/main/java/org/apache/tuscany/sca/http/tomcat/TomcatDefaultServlet.java

Modified: 
incubator/tuscany/java/sca/modules/host-tomcat/src/main/java/org/apache/tuscany/sca/http/tomcat/TomcatDefaultServlet.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-tomcat/src/main/java/org/apache/tuscany/sca/http/tomcat/TomcatDefaultServlet.java?rev=585314&r1=585313&r2=585314&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/host-tomcat/src/main/java/org/apache/tuscany/sca/http/tomcat/TomcatDefaultServlet.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/host-tomcat/src/main/java/org/apache/tuscany/sca/http/tomcat/TomcatDefaultServlet.java
 Tue Oct 16 18:24:56 2007
@@ -22,6 +22,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.util.Hashtable;
 
@@ -47,33 +48,39 @@
     public TomcatDefaultServlet(String servletPath, String documentRoot) {
         this.documentRoot = documentRoot;
         
-        DirContext dirContext = new FileDirContext() {
+        DirContext dirContext;
+        URI uri = URI.create(documentRoot);
+        if (!"file".equals(uri.getScheme())) {
             
-            @Override
-            public Attributes getAttributes(String name) throws 
NamingException {
-                return new BasicAttributes();
-            }
-            
-            @Override
-            public Object lookup(String name) throws NamingException {
+            dirContext = new FileDirContext() {
+                @Override
+                public Attributes getAttributes(String name) throws 
NamingException {
+                    return new BasicAttributes();
+                }
                 
-                try {
-                    final URL url = new 
URL(TomcatDefaultServlet.this.documentRoot + name);
-                    return new Resource() {
-                        
-                        @Override
-                        public InputStream streamContent() throws IOException {
-                            return url.openStream();
-                        }
-                    };
-                } catch (MalformedURLException e) {
-                    throw new NamingException(e.toString());
+                @Override
+                public Object lookup(String name) throws NamingException {
+                    
+                    try {
+                        final URL url = new 
URL(TomcatDefaultServlet.this.documentRoot + name);
+                        return new Resource() {
+                            @Override
+                            public InputStream streamContent() throws 
IOException {
+                                return url.openStream();
+                            }
+                        };
+                    } catch (MalformedURLException e) {
+                        throw new NamingException(e.toString());
+                    }
                 }
-            }
-        };
-        
+            };
+            
+        } else {
+            dirContext = new FileDirContext();
+            ((FileDirContext)dirContext).setDocBase(uri.getPath());
+        }
         proxyDirContext = new ProxyDirContext(new Hashtable(), dirContext);
-        resources = proxyDirContext;
+        resources = proxyDirContext;            
     }
     
     @Override



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to