Author: greddin
Date: Wed Aug  9 07:49:07 2006
New Revision: 430065

URL: http://svn.apache.org/viewvc?rev=430065&view=rev
Log:
SHALE-232.  Upgraded TilesViewHandler to be compatible with the Tiles 
2.0-SNAPSHOT version. 
Calls to Tiles API now use the TilesContext instead of Servlet dependencies.

Modified:
    shale/framework/trunk/shale-tiles/pom.xml
    
shale/framework/trunk/shale-tiles/src/main/java/org/apache/shale/tiles/TilesViewHandler.java

Modified: shale/framework/trunk/shale-tiles/pom.xml
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-tiles/pom.xml?rev=430065&r1=430064&r2=430065&view=diff
==============================================================================
--- shale/framework/trunk/shale-tiles/pom.xml (original)
+++ shale/framework/trunk/shale-tiles/pom.xml Wed Aug  9 07:49:07 2006
@@ -40,7 +40,7 @@
         <dependency>
             <groupId>org.apache.struts.tiles</groupId>
             <artifactId>tiles-core</artifactId>
-            <version>0.2-SNAPSHOT</version>
+            <version>2.0-SNAPSHOT</version>
         </dependency>
     </dependencies>
 

Modified: 
shale/framework/trunk/shale-tiles/src/main/java/org/apache/shale/tiles/TilesViewHandler.java
URL: 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-tiles/src/main/java/org/apache/shale/tiles/TilesViewHandler.java?rev=430065&r1=430064&r2=430065&view=diff
==============================================================================
--- 
shale/framework/trunk/shale-tiles/src/main/java/org/apache/shale/tiles/TilesViewHandler.java
 (original)
+++ 
shale/framework/trunk/shale-tiles/src/main/java/org/apache/shale/tiles/TilesViewHandler.java
 Wed Aug  9 07:49:07 2006
@@ -27,8 +27,6 @@
 import javax.faces.component.UIViewRoot;
 import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletRequest;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -37,6 +35,8 @@
 import org.apache.tiles.DefinitionsFactoryException;
 import org.apache.tiles.NoSuchDefinitionException;
 import org.apache.tiles.TilesUtil;
+import org.apache.tiles.TilesContext;
+import org.apache.tiles.context.TilesContextFactory;
 
 /**
  * This view handler strips the suffix off of the view ID and looks
@@ -258,21 +258,13 @@
       Object request = externalContext.getRequest();
       Object context = externalContext.getContext();
       ComponentDefinition tile = null;
-      if ((request instanceof ServletRequest) &&
-          (context instanceof ServletContext)) {
-          ServletRequest servletRequest = (ServletRequest) request;
-          ServletContext servletContext = (ServletContext) context;
-          try {
-              tile = TilesUtil.getDefinition(name, servletRequest, 
servletContext);
-          } catch (NoSuchDefinitionException nsex) {
-              /* not here */
-          } catch (DefinitionsFactoryException dex) {
-              /* not here */
-          }
-      } else {
-          if (log.isDebugEnabled()) {
-              log.debug("Not a servlet request, skipping tile lookup");
-          }
+      try {
+          TilesContext tilesContext = TilesContextFactory.getInstance(context, 
request);
+          tile = TilesUtil.getDefinition(name, tilesContext);
+      } catch (NoSuchDefinitionException nsex) {
+          log.error("Couldn't find Tiles definition.", nsex);
+      } catch (DefinitionsFactoryException dex) {
+          log.error("Tiles error", dex);
       }
       return tile;
 
@@ -305,11 +297,13 @@
    private void dispatchToTile(ExternalContext externalContext,
                                ComponentDefinition tile) 
                                throws java.io.IOException {
-      ServletRequest request = (ServletRequest)externalContext.getRequest();
-      ComponentContext tileContext = ComponentContext.getContext(request);
+      Object request = externalContext.getRequest();
+      Object context = externalContext.getContext();
+      TilesContext tilesContext = TilesContextFactory.getInstance(context, 
request);
+      ComponentContext tileContext = ComponentContext.getContext(tilesContext);
       if (tileContext == null) {
          tileContext = new ComponentContext(tile.getAttributes());
-         ComponentContext.setContext(tileContext, request);
+         ComponentContext.setContext(tileContext, tilesContext);
       }
       else
          tileContext.addMissing(tile.getAttributes());


Reply via email to