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];