Author: ddewolf
Date: Mon Nov 20 08:17:30 2006
New Revision: 477233
URL: http://svn.apache.org/viewvc?view=rev&rev=477233
Log:
Adding local entity resolver; Fixing api pom to include jsp-api; Adding JSP out
aware response warpper
Added:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspWriterResponse.java
(with props)
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/TilesEntityResolver.java
(with props)
Modified:
struts/sandbox/trunk/tiles/tiles-api/pom.xml
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspTilesRequestContext.java
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
Modified: struts/sandbox/trunk/tiles/tiles-api/pom.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-api/pom.xml?view=diff&rev=477233&r1=477232&r2=477233
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-api/pom.xml (original)
+++ struts/sandbox/trunk/tiles/tiles-api/pom.xml Mon Nov 20 08:17:30 2006
@@ -85,6 +85,13 @@
</dependency>
<dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.0</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
<groupId>javax.portlet</groupId>
<artifactId>portlet-api</artifactId>
<version>1.0</version>
Modified:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspTilesRequestContext.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspTilesRequestContext.java?view=diff&rev=477233&r1=477232&r2=477233
==============================================================================
---
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspTilesRequestContext.java
(original)
+++
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspTilesRequestContext.java
Mon Nov 20 08:17:30 2006
@@ -44,6 +44,7 @@
private PageContext pageContext;
+ private JspWriterResponse response;
public JspTilesRequestContext(ServletContext context, PageContext
pageContext) {
super(context,
@@ -63,6 +64,13 @@
LOG.error("JSPException while including path '"+path+"'. ", e);
throw new IOException("JSPException while including path
'"+path+"'. "+e.getMessage());
}
+ }
+
+ public HttpServletResponse getResponse() {
+ if(response == null) {
+ response = new JspWriterResponse(pageContext);
+ }
+ return response;
}
}
Added:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspWriterResponse.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspWriterResponse.java?view=auto&rev=477233
==============================================================================
---
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspWriterResponse.java
(added)
+++
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspWriterResponse.java
Mon Nov 20 08:17:30 2006
@@ -0,0 +1,46 @@
+/*
+ * 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.tiles.context.jsp;
+
+import javax.servlet.http.HttpServletResponseWrapper;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.jsp.PageContext;
+import java.io.PrintWriter;
+import java.io.IOException;
+
+
+public class JspWriterResponse extends HttpServletResponseWrapper {
+
+ private PageContext context;
+ private PrintWriter writer;
+
+ public JspWriterResponse(PageContext pageContext) {
+ super((HttpServletResponse)pageContext.getResponse());
+ this.context = pageContext;
+ }
+
+
+ public PrintWriter getWriter() throws IOException {
+ if(writer == null) {
+ writer = new PrintWriter(context.getOut());
+ }
+ return writer;
+ }
+}
Propchange:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspWriterResponse.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/jsp/JspWriterResponse.java
------------------------------------------------------------------------------
svn:keywords = Id Author Date Rev
Modified:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java?view=diff&rev=477233&r1=477232&r2=477233
==============================================================================
---
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
(original)
+++
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
Mon Nov 20 08:17:30 2006
@@ -152,6 +152,7 @@
// set first object in stack
//digester.clear();
digester.push(this);
+ digester.setEntityResolver(TilesEntityResolver.getInstance());
// parse
digester.parse(input);
Added:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/TilesEntityResolver.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/TilesEntityResolver.java?view=auto&rev=477233
==============================================================================
---
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/TilesEntityResolver.java
(added)
+++
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/TilesEntityResolver.java
Mon Nov 20 08:17:30 2006
@@ -0,0 +1,72 @@
+/*
+ * 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.tiles.definition.digester;
+
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+import java.io.IOException;
+import java.net.URL;
+
+/**
+ * Resource resolved used to provide local/classpath access
+ * to the tiles dtd. DefinitionsReaders which validate xml
+ * should utilize this resolver to reduce requests to
+ * struts.apache.org.
+ *
+ * @since Tiles 2.0
+ * @version $Rev$
+ *
+ */
+class TilesEntityResolver implements EntityResolver {
+
+ public static final String SYSTEM_ID =
+ "http://struts.apache.org/dtds/tiles-config_2_0.dtd";
+
+ public static final String PUBLIC_ID =
+ "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN";
+
+ private static TilesEntityResolver instance = new TilesEntityResolver();
+
+ public static TilesEntityResolver getInstance() {
+ return instance;
+ }
+
+ private URL tilesDtd;
+
+ public InputSource resolveEntity(String publicId, String systemId) throws
SAXException, IOException {
+ if(PUBLIC_ID.equals(publicId) || SYSTEM_ID.equals(systemId)) {
+ InputSource source = new InputSource();
+ source.setSystemId(systemId);
+ source.setPublicId(publicId);
+ source.setByteStream(getTilesDTD().openStream());
+ return source;
+ }
+ return null;
+ }
+
+ public URL getTilesDTD() {
+ if(tilesDtd == null) {
+ tilesDtd =
getClass().getResource("/org/apache/tiles/resources/tiles-config_2_0.dtd");
+ }
+ return tilesDtd;
+ }
+}
Propchange:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/TilesEntityResolver.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/digester/TilesEntityResolver.java
------------------------------------------------------------------------------
svn:keywords = Id Author Date Rev