Author: alexsmirnov
Date: 2007-04-17 22:30:08 -0400 (Tue, 17 Apr 2007)
New Revision: 95
Modified:
trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/CacheContent.java
trunk/framework/src/main/java/org/ajax4jsf/framework/resource/InternetResourceBase.java
trunk/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java
trunk/test/src/test/java/org/ajax4jsf/framework/util/config/WebXmlTest.java
trunk/test/src/test/resources/log4j.xml
Log:
Fix unit tests
Modified:
trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/CacheContent.java
===================================================================
---
trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/CacheContent.java 2007-04-18
00:59:13 UTC (rev 94)
+++
trunk/framework/src/main/java/org/ajax4jsf/framework/ajax/xmlfilter/CacheContent.java 2007-04-18
02:30:08 UTC (rev 95)
@@ -35,213 +35,251 @@
import org.ajax4jsf.io.FastBufferOutputStream;
import org.ajax4jsf.io.FastBufferWriter;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* @author shura (latest modification by $Author: alexsmirnov $)
* @version $Revision: 1.1.2.1 $ $Date: 2007/01/09 18:58:20 $
- *
+ *
*/
public class CacheContent implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = 8120940486890871177L;
-// private transient ByteArrayOutputStream outputStream ;
- private transient FastBufferOutputStream outputStream ;
- private transient FastBufferWriter stringOutputWriter;
- private transient PrintWriter servletWriter;
- private transient ServletOutputStream servletStream;
- // content to send.
- private byte[] content = null;
- private String writerContent = null;
+ /**
+ *
+ */
+ private static final long serialVersionUID = 8120940486890871177L;
+
+ private static final Log _log = LogFactory.getLog(CacheContent.class);
- boolean filledOutputStream = false;
- boolean filledOutputWriter = false;
- private Map headers = new HashMap();
- private String contentType;
-
- /**
- * Send saved content to http responce
- * @param response
- * @throws IOException
- */
- public void send(HttpServletResponse response) throws IOException{
- if (filledOutputStream) {
- OutputStream out = response.getOutputStream();
- if(content != null) {
- out.write(content);
- } else {
- this.outputStream.writeTo(out);
- }
-// out.flush();
-// out.close();
- } else if (filledOutputWriter) {
- Writer out = response.getWriter();
- if (null != writerContent) {
- out.write(writerContent);
- } else {
- stringOutputWriter.writeTo(out);
- }
-// out.flush();
-// out.close();
- }
+ // private transient ByteArrayOutputStream outputStream ;
+ private transient FastBufferOutputStream outputStream;
+
+ private transient FastBufferWriter stringOutputWriter;
+
+ private transient PrintWriter servletWriter;
+
+ private transient ServletOutputStream servletStream;
+
+ // content to send.
+ private byte[] content = null;
+
+ private String writerContent = null;
+
+ boolean filledOutputStream = false;
+
+ boolean filledOutputWriter = false;
+
+ private Map headers = new HashMap();
+
+ private String contentType;
+
+ /**
+ * Send saved content to http responce
+ *
+ * @param response
+ * @throws IOException
+ */
+ public void send(HttpServletResponse response) throws IOException {
+ if (filledOutputStream) {
+ OutputStream out = response.getOutputStream();
+ if (content != null) {
+ out.write(content);
+ } else {
+ this.outputStream.writeTo(out);
+ }
+ // out.flush();
+ // out.close();
+ } else if (filledOutputWriter) {
+ Writer out = response.getWriter();
+ if (null != writerContent) {
+ out.write(writerContent);
+ } else {
+ stringOutputWriter.writeTo(out);
+ }
+ // out.flush();
+ // out.close();
}
-
- /**
- * Send saved headers to http responce.
- * @param response
- */
- public void sendHeaders(HttpServletResponse response){
- for (Iterator iter = headers.entrySet().iterator(); iter.hasNext();) {
- Map.Entry element = (Map.Entry) iter.next();
- String header = (String) element.getKey();
- if (element.getValue() instanceof Long) {
- Long time = (Long) element.getValue();
- response.setDateHeader(header,time.longValue());
- } else if (element.getValue() instanceof Integer) {
- Integer value = (Integer) element.getValue();
- response.setIntHeader(header,value.intValue());
- } else {
- response.setHeader(header,(String) element.getValue());
- }
- // set real content-length.
-
-/// if (null != content) {
- if (filledOutputStream) {
-/// response.setIntHeader("Content-Length", content.length);
- response.setIntHeader("Content-Length", outputStream.getLength());
- } // TODO - calculate content-lenght for writer ?
- if( null != contentType){
- response.setContentType(this.contentType);
- }
+ }
+
+ /**
+ * Send saved headers to http responce.
+ *
+ * @param response
+ */
+ public void sendHeaders(HttpServletResponse response) {
+ for (Iterator iter = headers.entrySet().iterator(); iter.hasNext();) {
+ Map.Entry element = (Map.Entry) iter.next();
+ String header = (String) element.getKey();
+ Object headerValue = element.getValue();
+ try {
+ if (headerValue instanceof Long) {
+ Long time = (Long) headerValue;
+ response.setDateHeader(header, time.longValue());
+ } else if (headerValue instanceof Integer) {
+ Integer value = (Integer) headerValue;
+ response.setIntHeader(header, value.intValue());
+ } else {
+ response.setHeader(header, (String) headerValue);
}
- }
-
- public void setDateHeader(String name, long value) {
- // Expires not stored in cache - must be re-calculated for every response.
- if(!"Expires".equals(name)){
- headers.put(name, new Long(value));
- }
- }
- /* (non-Javadoc)
- * @see org.ajax4jsf.framework.resource.ResourceContext#setHeader(java.lang.String,
java.lang.String)
- */
- public void setHeader(String name, String value) {
- headers.put(name,value);
+ } catch (Exception e) {
+ _log.error("Error set response header "+header+"for value
"+headerValue, e);
+ }
+ // set real content-length.
+ // / if (null != content) {
+ if (filledOutputStream) {
+ // / response.setIntHeader("Content-Length", content.length);
+ response.setIntHeader("Content-Length", outputStream
+ .getLength());
+ } // TODO - calculate content-lenght for writer ?
+ if (null != contentType) {
+ response.setContentType(this.contentType);
+ }
}
+ }
- /* (non-Javadoc)
- * @see org.ajax4jsf.framework.resource.ResourceContext#setIntHeader(java.lang.String,
int)
- */
- public void setIntHeader(String name, int value) {
- headers.put(name, new Integer(value));
+ public void setDateHeader(String name, long value) {
+ // Expires not stored in cache - must be re-calculated for every
+ // response.
+ if (!"Expires".equals(name)) {
+ headers.put(name, new Long(value));
}
+ }
- /**
- * Create UNIX command 'tee' like stream - send all data to servlet
- * @param responseStream
- * @return
- */
- public OutputStream getOutputStream(final OutputStream responseStream){
- if (null == servletStream) {
- outputStream = new FastBufferOutputStream(1024);
- servletStream = new ServletOutputStream(){
-
- /* (non-Javadoc)
- * @see java.io.OutputStream#close()
- */
- public void close() throws IOException {
- filledOutputStream = true;
-/// content = outputStream.toByteArray();
- responseStream.close();
- content = null;
- }
-
- /* (non-Javadoc)
- * @see java.io.OutputStream#flush()
- */
- public void flush() throws IOException {
- responseStream.flush();
- }
-
- /* (non-Javadoc)
- * @see java.io.OutputStream#write(byte[], int, int)
- */
- public void write(byte[] b, int off, int len) throws IOException {
- outputStream.write(b, off, len);
- responseStream.write(b, off, len);
- }
-
- /* (non-Javadoc)
- * @see java.io.OutputStream#write(byte[])
- */
- public void write(byte[] b) throws IOException {
- outputStream.write(b);
- responseStream.write(b);
- }
-
- public void write(int b) throws IOException {
- outputStream.write(b);
- responseStream.write(b);
- }
-
- };
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.ajax4jsf.framework.resource.ResourceContext#setHeader(java.lang.String,
+ * java.lang.String)
+ */
+ public void setHeader(String name, String value) {
+ headers.put(name, value);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.ajax4jsf.framework.resource.ResourceContext#setIntHeader(java.lang.String,
+ * int)
+ */
+ public void setIntHeader(String name, int value) {
+ headers.put(name, new Integer(value));
+ }
+
+ /**
+ * Create UNIX command 'tee' like stream - send all data to servlet
+ *
+ * @param responseStream
+ * @return
+ */
+ public OutputStream getOutputStream(final OutputStream responseStream) {
+ if (null == servletStream) {
+ outputStream = new FastBufferOutputStream(1024);
+ servletStream = new ServletOutputStream() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.io.OutputStream#close()
+ */
+ public void close() throws IOException {
+ filledOutputStream = true;
+ // / content = outputStream.toByteArray();
+ responseStream.close();
+ content = null;
}
- return servletStream;
- }
-
- public PrintWriter getWriter( final Writer responseWriter) {
- if (null == servletWriter) {
- stringOutputWriter = new FastBufferWriter(1024);
- Writer out = new Writer() {
- public void write(char[] cbuf, int off, int len)
- throws IOException {
- responseWriter.write(cbuf, off, len);
- stringOutputWriter.write(cbuf, off, len);
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.io.OutputStream#flush()
+ */
+ public void flush() throws IOException {
+ responseStream.flush();
+ }
- public void flush() throws IOException {
- responseWriter.flush();
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.io.OutputStream#write(byte[], int, int)
+ */
+ public void write(byte[] b, int off, int len)
+ throws IOException {
+ outputStream.write(b, off, len);
+ responseStream.write(b, off, len);
+ }
- public void close() throws IOException {
- responseWriter.close();
-/// writerContent = stringOutputWriter.toString();
- filledOutputWriter = true;
- writerContent = null;
- }
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.io.OutputStream#write(byte[])
+ */
+ public void write(byte[] b) throws IOException {
+ outputStream.write(b);
+ responseStream.write(b);
+ }
- };
- servletWriter = new PrintWriter(out);
+ public void write(int b) throws IOException {
+ outputStream.write(b);
+ responseStream.write(b);
}
- return servletWriter;
+
+ };
}
+ return servletStream;
+ }
- public void setContentType(String contentType) {
- this.contentType = contentType;
-
+ public PrintWriter getWriter(final Writer responseWriter) {
+ if (null == servletWriter) {
+ stringOutputWriter = new FastBufferWriter(1024);
+ Writer out = new Writer() {
+
+ public void write(char[] cbuf, int off, int len)
+ throws IOException {
+ responseWriter.write(cbuf, off, len);
+ stringOutputWriter.write(cbuf, off, len);
+ }
+
+ public void flush() throws IOException {
+ responseWriter.flush();
+ }
+
+ public void close() throws IOException {
+ responseWriter.close();
+ // / writerContent = stringOutputWriter.toString();
+ filledOutputWriter = true;
+ writerContent = null;
+ }
+
+ };
+ servletWriter = new PrintWriter(out);
}
+ return servletWriter;
+ }
- /**
- * @return Returns the contentType.
- */
- public String getContentType() {
- return contentType;
+ public void setContentType(String contentType) {
+ this.contentType = contentType;
+
+ }
+
+ /**
+ * @return Returns the contentType.
+ */
+ public String getContentType() {
+ return contentType;
+ }
+
+ private void writeObject(java.io.ObjectOutputStream s) throws IOException {
+ if (filledOutputStream) {
+ if (outputStream != null) {
+ content = outputStream.toByteArray();
+ }
+ } else if (filledOutputWriter) {
+ if (stringOutputWriter != null) {
+ char[] cs = stringOutputWriter.toCharArray();
+ writerContent = new String(cs);
+ }
}
-
- private void writeObject(java.io.ObjectOutputStream s) throws IOException {
- if(filledOutputStream) {
- if(outputStream != null) {
- content = outputStream.toByteArray();
- }
- } else if(filledOutputWriter) {
- if(stringOutputWriter != null) {
- char[] cs = stringOutputWriter.toCharArray();
- writerContent = new String(cs);
- }
- }
- s.defaultWriteObject();
- }
+ s.defaultWriteObject();
+ }
}
Modified:
trunk/framework/src/main/java/org/ajax4jsf/framework/resource/InternetResourceBase.java
===================================================================
---
trunk/framework/src/main/java/org/ajax4jsf/framework/resource/InternetResourceBase.java 2007-04-18
00:59:13 UTC (rev 94)
+++
trunk/framework/src/main/java/org/ajax4jsf/framework/resource/InternetResourceBase.java 2007-04-18
02:30:08 UTC (rev 95)
@@ -391,8 +391,9 @@
} else {
// context.setHeader("Transfer-Encoding", "chunked");
}
- if (getLastModified(null) != null) {
- context.setDateHeader("Last-Modified", getLastModified(null).getTime());
+ Date lastModified = getLastModified(context);
+ if (lastModified != null) {
+ context.setDateHeader("Last-Modified", lastModified.getTime());
}
if (cached) {
Date expired = getExpired(context);
Modified: trunk/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java
===================================================================
--- trunk/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java 2007-04-18
00:59:13 UTC (rev 94)
+++ trunk/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java 2007-04-18
02:30:08 UTC (rev 95)
@@ -168,11 +168,12 @@
}
try {
- InternetResourceBuilder.getInstance().init(servletContext, "A4J");
- } catch (ServletException e) {
+ InternetResourceBuilder.getInstance().init();
+ } catch (FacesException e) {
InternetResourceBuilder.setInstance(null);
}
-// setupWebClient();
+ webXml = new WebXml();
+ webXml.init(servletContext, "A4J");
ConfigParser parser = new ConfigParser();
parser.parse(parser.getPlatformURLs());
@@ -471,4 +472,6 @@
// Thread context class loader saved and restored after each test
private ClassLoader threadContextClassLoader = null;
+ protected WebXml webXml;
+
}
Modified: trunk/test/src/test/java/org/ajax4jsf/framework/util/config/WebXmlTest.java
===================================================================
--- trunk/test/src/test/java/org/ajax4jsf/framework/util/config/WebXmlTest.java 2007-04-18
00:59:13 UTC (rev 94)
+++ trunk/test/src/test/java/org/ajax4jsf/framework/util/config/WebXmlTest.java 2007-04-18
02:30:08 UTC (rev 95)
@@ -69,7 +69,8 @@
* Test method for 'org.ajax4jsf.framework.util.config.WebXml.init(ServletContext,
String)'
*/
public void testInit() throws ServletException {
- WebXml webXml = new WebXml(context,"ajax4jsf");
+ WebXml webXml = new WebXml();
+ webXml.init(context,"ajax4jsf");
assertFalse(webXml.isPrefixMapping());
assertNull(webXml.getFacesFilterPrefix());
assertNotNull(webXml.getFacesFilterSuffix());
@@ -87,7 +88,8 @@
* Test method for
'org.ajax4jsf.framework.util.config.WebXml.getFacesResourceURL(FacesContext,
String)'
*/
public void testGetFacesResourceURL() throws ServletException {
- WebXml webXml = new WebXml(context,"ajax4jsf");
+ WebXml webXml = new WebXml();
+ webXml.init(context,"ajax4jsf");
String resourceURL = webXml.getFacesResourceURL(facesContext,"foo.Bar");
System.out.println(resourceURL);
assertEquals("/testContext/"+WebXml.RESOURCE_URI_PREFIX+"foo.Bar.jsf",resourceURL);
Modified: trunk/test/src/test/resources/log4j.xml
===================================================================
--- trunk/test/src/test/resources/log4j.xml 2007-04-18 00:59:13 UTC (rev 94)
+++ trunk/test/src/test/resources/log4j.xml 2007-04-18 02:30:08 UTC (rev 95)
@@ -43,12 +43,12 @@
</appender>
-->
<category name="com.sun.faces">
- <priority value="DEBUG" />
+ <priority value="INFO" />
<appender-ref ref="DEFAULT"/>
</category>
<category name="org.apache.myfaces">
- <priority value="DEBUG" />
+ <priority value="INFO" />
<appender-ref ref="DEFAULT"/>
</category>
@@ -63,13 +63,13 @@
</category>
<category name="com.exadel.vcp">
- <priority value="DEBUG" />
+ <priority value="INFO" />
<appender-ref ref="DEFAULT"/>
</category>
<category name="org.ajax4jsf">
- <priority value="DEBUG" />
+ <priority value="INFO" />
<appender-ref ref="DEFAULT"/>
</category>