Author: lresende
Date: Sat Feb 20 08:38:54 2010
New Revision: 912093

URL: http://svn.apache.org/viewvc?rev=912093&view=rev
Log:
Properly setting contentType for known files, to avoid issues with htmlUnit

Modified:
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/pom.xml
    
tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java
    tuscany/sca-java-2.x/trunk/modules/web-javascript-dojo/pom.xml
    
tuscany/sca-java-2.x/trunk/modules/web-javascript-dojo/src/main/java/org/apache/tuscany/sca/web/javascript/dojo/DojoResourceServlet.java

Modified: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/pom.xml?rev=912093&r1=912092&r2=912093&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/pom.xml (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/pom.xml Sat Feb 20 
08:38:54 2010
@@ -36,6 +36,12 @@
             <version>2.0-SNAPSHOT</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-common-http</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>
+
         <!--
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java?rev=912093&r1=912092&r2=912093&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java
 Sat Feb 20 08:38:54 2010
@@ -26,13 +26,13 @@
 import java.text.ParseException;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.tuscany.sca.assembly.Binding;
 import org.apache.tuscany.sca.binding.http.HTTPCacheContext;
+import org.apache.tuscany.sca.common.http.HTTPContentTypeMapper;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.invocation.MessageFactory;
@@ -124,6 +124,14 @@
             throw new ServletException((Throwable)responseMessage.getBody());
         }
         
+        if(response.getContentType() == null || 
response.getContentType().length() == 0){
+            // Calculate content-type based on extension
+            String contentType = HTTPContentTypeMapper.getContentType(id);
+            if(contentType != null && contentType.length() >0) {
+                response.setContentType(contentType);
+            }
+        }
+        
         // Write the response from the service implementation to the response
         // output stream
         InputStream is = (InputStream)responseMessage.getBody();

Modified: tuscany/sca-java-2.x/trunk/modules/web-javascript-dojo/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/web-javascript-dojo/pom.xml?rev=912093&r1=912092&r2=912093&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/web-javascript-dojo/pom.xml (original)
+++ tuscany/sca-java-2.x/trunk/modules/web-javascript-dojo/pom.xml Sat Feb 20 
08:38:54 2010
@@ -38,6 +38,12 @@
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-common-http</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-host-http</artifactId>
             <version>2.0-SNAPSHOT</version>
         </dependency>

Modified: 
tuscany/sca-java-2.x/trunk/modules/web-javascript-dojo/src/main/java/org/apache/tuscany/sca/web/javascript/dojo/DojoResourceServlet.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/web-javascript-dojo/src/main/java/org/apache/tuscany/sca/web/javascript/dojo/DojoResourceServlet.java?rev=912093&r1=912092&r2=912093&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/web-javascript-dojo/src/main/java/org/apache/tuscany/sca/web/javascript/dojo/DojoResourceServlet.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/web-javascript-dojo/src/main/java/org/apache/tuscany/sca/web/javascript/dojo/DojoResourceServlet.java
 Sat Feb 20 08:38:54 2010
@@ -28,6 +28,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.tuscany.sca.common.http.HTTPConstants;
+import org.apache.tuscany.sca.common.http.HTTPContentTypeMapper;
+
 
 /**
  * A Resource servlet used to serve dojo files
@@ -41,22 +44,36 @@
 
     }
 
-
     @Override
     public void doGet(HttpServletRequest request, HttpServletResponse 
response) throws IOException {
-        String path = URLDecoder.decode(request.getRequestURI(), "UTF-8");
-        
-        if( path.startsWith("/dojo")) {
-               //this is a workaround where we need to have dojo files in its 
own folder
-               //to avoid clean target to clean other non dojo resources
-               path = "dojo" + path;
+        String path = URLDecoder.decode(request.getRequestURI(), 
HTTPConstants.CHARACTER_ENCODING_UTF8);
+
+        if( path.startsWith("/dojo") ) {
+            if( ! path.contains("tuscany/AtomService.js")) {
+                //this is a workaround where we need to have dojo files in its 
own folder
+                //to avoid clean target to clean other non dojo resources
+                path = "/dojo" + path;
+            }
         } else if( path.startsWith("/")) {
             path = path.substring(1);
         }
         
+        if(response.getContentType() == null || 
response.getContentType().length() == 0){
+            // Calculate content-type based on extension
+            String contentType = HTTPContentTypeMapper.getContentType(path);
+            if(contentType != null && contentType.length() >0) {
+                response.setContentType(contentType);
+            }
+        }
+        
+        response.setCharacterEncoding(HTTPConstants.CHARACTER_ENCODING_UTF8);
+        
         // Write the response from the service implementation to the response
         // output stream
         InputStream is = 
this.getClass().getClassLoader().getResourceAsStream(path);
+        if (is == null) {
+            is = this.getClass().getResourceAsStream(path);
+        }
         if(is != null) {
             OutputStream os = response.getOutputStream(); 
             byte[] buffer = new byte[2048];


Reply via email to