Author: reto
Date: Tue Feb  9 10:35:54 2010
New Revision: 907995

URL: http://svn.apache.org/viewvc?rev=907995&view=rev
Log:
CLEREZZA-69: merged down, closed branch

Added:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/ContentLengthSettingByteChannel.java
      - copied unchanged from r907977, 
incubator/clerezza/issues/CLEREZZA-69/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/ContentLengthSettingByteChannel.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/DocTypeFilteringByteChannel.java
      - copied unchanged from r907977, 
incubator/clerezza/issues/CLEREZZA-69/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/DocTypeFilteringByteChannel.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/SelfClosing2ClosingTagsByteChannel.java
      - copied unchanged from r907977, 
incubator/clerezza/issues/CLEREZZA-69/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/SelfClosing2ClosingTagsByteChannel.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/Xhtml2HtmlConvertingBody.java
      - copied unchanged from r907977, 
incubator/clerezza/issues/CLEREZZA-69/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/Xhtml2HtmlConvertingBody.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/test/java/org/apache/clerezza/platform/xhtml2html/SelfClosing2ClosingTagsByteChannelTest.java
      - copied unchanged from r907977, 
incubator/clerezza/issues/CLEREZZA-69/org.apache.clerezza.platform.xhtml2html/src/test/java/org/apache/clerezza/platform/xhtml2html/SelfClosing2ClosingTagsByteChannelTest.java
Removed:
    incubator/clerezza/issues/CLEREZZA-69/
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/DocTypeSettingBody.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/DocTypeSettingByteChannel.java
Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/ResponseStatusInfo.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/WrappedRequest.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/WrappedResponse.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/test/java/org/apache/clerezza/platform/xhtml2html/DocTypeSettingByteChannelTest.java

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  9 10:35:54 2010
@@ -1 +1,2 @@
 
/incubator/clerezza/issues/CLEREZZA-39/org.apache.clerezza.platform.xhtml2html:895979-897874
+/incubator/clerezza/issues/CLEREZZA-69/org.apache.clerezza.platform.xhtml2html:898291-907977

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/ResponseStatusInfo.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/ResponseStatusInfo.java?rev=907995&r1=907994&r2=907995&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/ResponseStatusInfo.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/ResponseStatusInfo.java
 Tue Feb  9 10:35:54 2010
@@ -1,32 +1,34 @@
 /*
- *  Copyright 2010 reto.
- * 
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- * 
- *       http://www.apache.org/licenses/LICENSE-2.0
- * 
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *  under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
-
 package org.apache.clerezza.platform.xhtml2html;
 
 /**
  *
- * @author reto
+ * @author reto, mir
  */
 interface ResponseStatusInfo {
 
        /**
         *
-        * @return true if the response is known to be (x)html, false otherwise
+        * @return true if the content of the response has to be converted from
+        *              xhtml to html, false otherwise
         */
-       boolean isHtml();
+       boolean convertXhtml2Html();
 
 }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/WrappedRequest.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/WrappedRequest.java?rev=907995&r1=907994&r2=907995&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/WrappedRequest.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/WrappedRequest.java
 Tue Feb  9 10:35:54 2010
@@ -19,13 +19,10 @@
 package org.apache.clerezza.platform.xhtml2html;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import org.wymiwyg.wrhapi.HandlerException;
 import org.wymiwyg.wrhapi.HeaderName;
 import org.wymiwyg.wrhapi.Request;
-import org.wymiwyg.wrhapi.util.AcceptHeaderEntry;
-import org.wymiwyg.wrhapi.util.AcceptHeaderIterator;
 import org.wymiwyg.wrhapi.util.RequestWrapper;
 
 /**

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/WrappedResponse.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/WrappedResponse.java?rev=907995&r1=907994&r2=907995&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/WrappedResponse.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/main/java/org/apache/clerezza/platform/xhtml2html/WrappedResponse.java
 Tue Feb  9 10:35:54 2010
@@ -18,6 +18,8 @@
  */
 package org.apache.clerezza.platform.xhtml2html;
 
+import java.util.ArrayList;
+import java.util.List;
 import org.wymiwyg.wrhapi.HandlerException;
 import org.wymiwyg.wrhapi.HeaderName;
 import org.wymiwyg.wrhapi.MessageBody;
@@ -31,23 +33,26 @@
 class WrappedResponse extends ResponseWrapper implements ResponseStatusInfo {
        private String XHTML_TYPE = "application/xhtml+xml";
        private String HTML_TYPE = "text/html";
-       private boolean isHtml = false;
+       private boolean convertXhtml2Html = false;
+       private List<Object> contentLengths = new ArrayList<Object>();
 
        public WrappedResponse(Response response) {
                super(response);
        }
 
-
-
        @Override
        public void addHeader(HeaderName headerName, Object value) throws 
HandlerException {
-               if (headerName.equals(HeaderName.CONTENT_LENGTH) && isHtml) {
+               if (headerName.equals(HeaderName.CONTENT_LENGTH)) {
+                       if (convertXhtml2Html) {
+                               // do nothing
+                       } else {
+                               contentLengths.add(value);
+                       }
                        return;
                }
                if (headerName.equals(HeaderName.CONTENT_TYPE) && 
XHTML_TYPE.equals(value)) {
                        super.addHeader(headerName, HTML_TYPE);
-                       isHtml = true;
-                       super.setHeader(HeaderName.CONTENT_LENGTH, null);
+                       convertXhtml2Html = true;
                } else {
                        super.addHeader(headerName, value);
                }
@@ -55,13 +60,18 @@
 
        @Override
        public void setHeader(HeaderName headerName, Object value) throws 
HandlerException {
-               if (headerName.equals(HeaderName.CONTENT_LENGTH) && isHtml) {
+               if (headerName.equals(HeaderName.CONTENT_LENGTH)) {
+                       if (convertXhtml2Html) {
+                               // do nothing
+                       } else {
+                               contentLengths.clear();
+                               contentLengths.add(value);
+                       }
                        return;
                }
                if (headerName.equals(HeaderName.CONTENT_TYPE) && 
XHTML_TYPE.equals(value)) {
                        super.setHeader(headerName, HTML_TYPE);
-                       isHtml = true;
-                       super.setHeader(HeaderName.CONTENT_LENGTH, null);
+                       convertXhtml2Html = true;
                } else {
                        super.setHeader(headerName, value);
                }
@@ -69,11 +79,17 @@
 
        @Override
        public void setBody(MessageBody body) throws HandlerException {
-               super.setBody(new DocTypeSettingBody(body, this));
+               super.setBody(new Xhtml2HtmlConvertingBody(body, this));
        }
 
        @Override
-       public boolean isHtml() {
-               return isHtml;
+       public boolean convertXhtml2Html() {
+               return convertXhtml2Html;
+       }
+
+       void setContentLengthIfNoConversion() throws HandlerException {
+               if (contentLengths.size() > 0 && !convertXhtml2Html) {
+                       super.setHeader(HeaderName.CONTENT_LENGTH, 
contentLengths.toArray());
+               }
        }
 }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/test/java/org/apache/clerezza/platform/xhtml2html/DocTypeSettingByteChannelTest.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/test/java/org/apache/clerezza/platform/xhtml2html/DocTypeSettingByteChannelTest.java?rev=907995&r1=907994&r2=907995&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/test/java/org/apache/clerezza/platform/xhtml2html/DocTypeSettingByteChannelTest.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.xhtml2html/src/test/java/org/apache/clerezza/platform/xhtml2html/DocTypeSettingByteChannelTest.java
 Tue Feb  9 10:35:54 2010
@@ -38,11 +38,11 @@
                                "</body>\n" +
                                "</html>";
                final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-               final WritableByteChannel channel = new 
DocTypeSettingByteChannel(Channels.newChannel(baos),
+               final WritableByteChannel channel = new 
DocTypeFilteringByteChannel(Channels.newChannel(baos),
                                new ResponseStatusInfo() {
 
                        @Override
-                       public boolean isHtml() {
+                       public boolean convertXhtml2Html() {
                                return true;
                        }
 
@@ -64,11 +64,11 @@
                                "</body>\n" +
                                "</html>";
                final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-               final WritableByteChannel channel = new 
DocTypeSettingByteChannel(Channels.newChannel(baos),
+               final WritableByteChannel channel = new 
DocTypeFilteringByteChannel(Channels.newChannel(baos),
                                new ResponseStatusInfo() {
 
                        @Override
-                       public boolean isHtml() {
+                       public boolean convertXhtml2Html() {
                                return true;
                        }
                });
@@ -95,11 +95,11 @@
                                "</body>\n" +
                                "</html>";
                final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-               final WritableByteChannel channel = new 
DocTypeSettingByteChannel(Channels.newChannel(baos),
+               final WritableByteChannel channel = new 
DocTypeFilteringByteChannel(Channels.newChannel(baos),
                                new ResponseStatusInfo() {
 
                        @Override
-                       public boolean isHtml() {
+                       public boolean convertXhtml2Html() {
                                return true;
                        }
                });
@@ -124,11 +124,11 @@
                                "</body>\n" +
                                "</html>";
                final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-               final WritableByteChannel channel = new 
DocTypeSettingByteChannel(Channels.newChannel(baos),
+               final WritableByteChannel channel = new 
DocTypeFilteringByteChannel(Channels.newChannel(baos),
                                new ResponseStatusInfo() {
 
                        @Override
-                       public boolean isHtml() {
+                       public boolean convertXhtml2Html() {
                                return true;
                        }
 
@@ -148,11 +148,11 @@
                                "</body>\n" +
                                "</html>";
                final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-               final WritableByteChannel channel = new 
DocTypeSettingByteChannel(Channels.newChannel(baos),
+               final WritableByteChannel channel = new 
DocTypeFilteringByteChannel(Channels.newChannel(baos),
                                new ResponseStatusInfo() {
 
                        @Override
-                       public boolean isHtml() {
+                       public boolean convertXhtml2Html() {
                                return true;
                        }
 


Reply via email to