You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by dd...@apache.org on 2006/10/27 22:33:55 UTC

svn commit: r468525 [1/2] - in /struts/sandbox/trunk/tiles: ./ tiles-api/ tiles-api/src/ tiles-api/src/main/ tiles-api/src/main/java/ tiles-api/src/main/java/org/ tiles-api/src/main/java/org/apache/ tiles-api/src/main/java/org/apache/tiles/ tiles-api/s...

Author: ddewolf
Date: Fri Oct 27 13:33:53 2006
New Revision: 468525

URL: http://svn.apache.org/viewvc?view=rev&rev=468525
Log:
First cut at a tiles container api

Added:
    struts/sandbox/trunk/tiles/tiles-api/
    struts/sandbox/trunk/tiles/tiles-api/pom.xml   (with props)
    struts/sandbox/trunk/tiles/tiles-api/src/
    struts/sandbox/trunk/tiles/tiles-api/src/main/
    struts/sandbox/trunk/tiles/tiles-api/src/main/java/
    struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/
    struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/
    struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/
    struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesApplicationContext.java   (with props)
    struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesConfig.java   (with props)
    struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java   (with props)
    struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesRequestContext.java   (with props)
    struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/spi/
    struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/spi/DefinitionsFactory.java   (with props)
    struts/sandbox/trunk/tiles/tiles-api/src/test/
    struts/sandbox/trunk/tiles/tiles-api/src/test/java/
    struts/sandbox/trunk/tiles/tiles-api/src/test/java/org/
    struts/sandbox/trunk/tiles/tiles-api/src/test/java/org/apache/
    struts/sandbox/trunk/tiles/tiles-api/src/test/java/org/apache/tiles/
    struts/sandbox/trunk/tiles/tiles-api/src/test/java/org/apache/tiles/TilesConfigTest.java   (with props)
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java   (with props)
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/portlet/
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/servlet/
    struts/sandbox/trunk/tiles/tiles-factory/
    struts/sandbox/trunk/tiles/tiles-factory/pom.xml   (with props)
    struts/sandbox/trunk/tiles/tiles-factory/src/
    struts/sandbox/trunk/tiles/tiles-factory/src/main/
    struts/sandbox/trunk/tiles/tiles-factory/src/main/java/
    struts/sandbox/trunk/tiles/tiles-factory/src/main/java/org/
    struts/sandbox/trunk/tiles/tiles-factory/src/main/java/org/apache/
    struts/sandbox/trunk/tiles/tiles-factory/src/main/java/org/apache/tiles/
    struts/sandbox/trunk/tiles/tiles-factory/src/main/java/org/apache/tiles/factory/
    struts/sandbox/trunk/tiles/tiles-factory/src/main/java/org/apache/tiles/factory/ConfigurationNotSupportedException.java   (with props)
    struts/sandbox/trunk/tiles/tiles-factory/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java   (with props)
    struts/sandbox/trunk/tiles/tiles-factory/src/main/java/org/apache/tiles/factory/TilesContextFactory.java   (with props)
    struts/sandbox/trunk/tiles/tiles-factory/src/test/
    struts/sandbox/trunk/tiles/tiles-factory/src/test/java/
    struts/sandbox/trunk/tiles/tiles-factory/src/test/java/org/
    struts/sandbox/trunk/tiles/tiles-factory/src/test/java/org/apache/
    struts/sandbox/trunk/tiles/tiles-factory/src/test/java/org/apache/tiles/
    struts/sandbox/trunk/tiles/tiles-factory/src/test/java/org/apache/tiles/factory/
    struts/sandbox/trunk/tiles/tiles-factory/src/test/java/org/apache/tiles/factory/TilesContainerFactoryTest.java   (with props)
    struts/sandbox/trunk/tiles/tiles-factory/src/test/java/org/apache/tiles/factory/TilesContextFactoryTest.java   (with props)
Removed:
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesApplicationContext.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesRequestContext.java
Modified:
    struts/sandbox/trunk/tiles/pom.xml
    struts/sandbox/trunk/tiles/tiles-core/pom.xml
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsFactoryConfig.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsFactoryException.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsUtil.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/FactoryNotFoundException.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesUtil.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesUtilImpl.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/BasicTilesContextFactory.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/TilesContextFactory.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/portlet/PortletTilesApplicationContext.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/portlet/PortletTilesRequestContext.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesApplicationContext.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesRequestContext.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/filter/TilesFilter.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/listener/TilesListener.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/servlet/TilesServlet.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/BaseInsertTag.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InitDefinitionsTag.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InsertDefinitionTag.java
    struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/util/TagUtils.java
    struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/TestReloadableDefinitionsFactory.java
    struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/mock/MockOnlyLocaleTilesContext.java

Modified: struts/sandbox/trunk/tiles/pom.xml
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/pom.xml?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/pom.xml (original)
+++ struts/sandbox/trunk/tiles/pom.xml Fri Oct 27 13:33:53 2006
@@ -60,7 +60,9 @@
     </distributionManagement>
 
     <modules>
+        <module>tiles-api</module>
         <module>tiles-core</module>
+        <module>tiles-factory</module>
         <module>tiles-test</module>
     </modules>
 

Added: struts/sandbox/trunk/tiles/tiles-api/pom.xml
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-api/pom.xml?view=auto&rev=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-api/pom.xml (added)
+++ struts/sandbox/trunk/tiles/tiles-api/pom.xml Fri Oct 27 13:33:53 2006
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<!--
+/* 
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * 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.
+ *
+ * $Id$
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+   <parent>
+      <groupId>org.apache.struts.tiles</groupId>
+      <artifactId>tiles-parent</artifactId>
+      <version>2.0-SNAPSHOT</version>
+   </parent>
+
+   <modelVersion>4.0.0</modelVersion>
+   <artifactId>tiles-api</artifactId>
+   <packaging>jar</packaging>
+   <name>Tiles - API </name>
+
+   <build>
+
+      <resources>
+         <resource>
+            <directory>src/main/resources</directory>
+         </resource>
+         <resource>
+            <directory>.</directory>
+            <includes>
+               <include>LICENSE.txt</include>
+               <include>NOTICE.txt</include>
+            </includes>
+            <targetPath>META-INF</targetPath>
+         </resource>
+      </resources>
+
+      <testResources>
+         <testResource>
+            <directory>src/test/java</directory>
+            <includes>
+               <include>**/*.xml</include>
+               <include>**/*.properties</include>
+            </includes>
+         </testResource>
+      </testResources>
+
+       <plugins>
+           <plugin>
+               <artifactId>maven-jar-plugin</artifactId>
+               <configuration>
+                   <archive>
+                       <manifest>
+                       </manifest>
+                   </archive>
+               </configuration>
+           </plugin>
+       </plugins>
+
+   </build>
+
+    <dependencies>
+
+      <dependency>
+         <groupId>javax.servlet</groupId>
+         <artifactId>servlet-api</artifactId>
+         <version>2.3</version>
+         <scope>provided</scope>
+      </dependency>
+
+      <dependency>
+         <groupId>javax.portlet</groupId>
+         <artifactId>portlet-api</artifactId>
+         <version>1.0</version>
+         <scope>provided</scope>
+      </dependency>
+
+      <dependency>
+         <groupId>junit</groupId>
+         <artifactId>junit</artifactId>
+         <version>3.8.1</version>
+         <scope>test</scope>
+      </dependency>
+   </dependencies>
+</project>

Propchange: struts/sandbox/trunk/tiles/tiles-api/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/sandbox/trunk/tiles/tiles-api/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Id Author Date

Added: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesApplicationContext.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesApplicationContext.java?view=auto&rev=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesApplicationContext.java (added)
+++ struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesApplicationContext.java Fri Oct 27 13:33:53 2006
@@ -0,0 +1,56 @@
+/*
+ * $Id$
+ *
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.tiles;
+
+import java.util.Map;
+import java.net.URL;
+import java.net.MalformedURLException;
+
+/**
+ * Defines a set of methods which tiles use to communicate to
+ * the tiles container and runtime environment.  There is only
+ * one application context per container.
+ * 
+ * @since 2.0
+ * @version $Rev$
+ *
+ */
+public interface TilesApplicationContext {
+
+    /**
+     * Returns a mutable Map that maps application scope attribute names to
+     * their values.
+     */
+    public Map getApplicationScope();
+
+    /**
+     * Return an immutable Map that maps context application initialization
+     * parameters to their values.
+     */
+    public Map getInitParams();
+
+    /**
+     * Return a URL for the application resource mapped to the specified path.
+     */
+    public URL getResource(String path) throws MalformedURLException;
+
+    /**
+     * Return a URL for the application resource mapped to the specified path.
+     */
+    public URL[] getResources(String path) throws MalformedURLException;
+}

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesApplicationContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesApplicationContext.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date

Added: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesConfig.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesConfig.java?view=auto&rev=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesConfig.java (added)
+++ struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesConfig.java Fri Oct 27 13:33:53 2006
@@ -0,0 +1,103 @@
+/*
+ * $Id$
+ *
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.tiles;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * Encapsulation of configuration parameters for the
+ * tiles system.
+ *
+ * @since 2.0
+ * @version $Rev$
+ */
+public class TilesConfig {
+
+    public static final String DEFINITIONS_FACTORY_CLASS_NAME_ATTR_KEY =
+        "org.apache.tiles.DEFINITIONS_FACTORY";
+
+
+    private TilesApplicationContext applicationContext;
+
+    private Map initParameters = new HashMap();
+
+
+    /**
+     * The application context for this container.
+     * Default instances are provided by the
+     * tiles-impl module.
+     *
+     * @return context for the configured container.
+     * @see TilesApplicationContext
+     */
+    public TilesApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    /**
+     * Standard Setter.
+     *
+     * @param applicationContext context for the configured container.
+     *
+     */
+    public void setApplicationContext(TilesApplicationContext applicationContext) {
+        this.applicationContext = applicationContext;
+    }
+
+
+    /**
+     * Retrieve an imuutable map of the initialization
+     * parameters.
+     *
+     * These parameters will be used to identify spi
+     * implementations as well as to configure them.
+     * Custom Parameters should be properly scoped in order
+     * to avoid collisions with other spi implementation
+     * attributes.
+     *
+     * @return map of all init parameters.
+     */    public Map getInitParameters() {
+        return initParameters;
+    }
+
+    /**
+     * Retrieve an initialization parameter.
+     *
+     * @param name parameter name
+     * @return named parameter value
+     * @see #getInitParameters()
+     */
+    public String getInitParameter(String name) {
+        return (String)initParameters.get(name);
+    }
+
+    /**
+     * Standard Setter.
+     *
+     * @param name parameter key
+     * @param value parameter value
+     * @see #getInitParameters()
+     */
+    public void setInitParameter(String name, String value) {
+        initParameters.put(name, value);
+    }
+
+
+
+}

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesConfig.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesConfig.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date

Added: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java?view=auto&rev=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java (added)
+++ struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java Fri Oct 27 13:33:53 2006
@@ -0,0 +1,51 @@
+/*
+ * $Id$
+ *
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.tiles;
+
+/**
+ * An encapsulation of the tiles framework.  This interface is
+ * used to expose tiles features to frameworks which leverage
+ * it as a plugin.  It can alternately be used by web applications
+ * which would like a programmatic interface.
+ * 
+ * @since 2.0
+ * @version $Rev$
+ */
+public interface TilesContainer {
+
+    /**
+     * Initialize the container with the given
+     * configuration.
+     * 
+     * @param config
+     */
+    void init(TilesConfig config);
+
+    /**
+     * Retrieve the containers context.
+     */
+    TilesApplicationContext getApplicationContext();
+
+    /**
+     * Render the given tiles request
+     *
+     * @param request
+     */
+    void render(TilesRequestContext request);
+
+}

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesContainer.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date

Added: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesRequestContext.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesRequestContext.java?view=auto&rev=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesRequestContext.java (added)
+++ struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesRequestContext.java Fri Oct 27 13:33:53 2006
@@ -0,0 +1,88 @@
+/*
+ * $Id$
+ *
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.tiles;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.Locale;
+
+/**
+ * Encapsulation of request information.
+ * @since 2.0
+ * @version $Rev$
+ */
+public interface TilesRequestContext {
+
+    /**
+     * The definition currently being requested.
+     * @return
+     */
+    String getDefinitionName();
+
+    /**
+     * Return an immutable Map that maps header names to the first (or only)
+     * header value (as a String).
+     */
+    Map getHeader();
+
+    /**
+     * Return an immutable Map that maps header names to the set of all values
+     * specified in the request (as a String array). Header names must be
+     * matched in a case-insensitive manner.
+     */
+    Map getHeaderValues();
+
+    /**
+     * Return a mutable Map that maps request scope attribute names to their
+     * values.
+     */
+    Map getRequestScope();
+
+    /**
+     * Return a mutable Map that maps session scope attribute names to their
+     * values.
+     */
+    Map getSessionScope();
+
+    /**
+     * Dispatches the request to a specified path.
+     */
+    void dispatch(String path) throws IOException, Exception;
+
+    /**
+     * Includes the response from the specified URL in the current response output.
+     */
+    void include(String path) throws IOException, Exception;
+
+    /**
+     * Return an immutable Map that maps request parameter names to the first
+     * (or only) value (as a String).
+     */
+    Map getParam();
+
+    /**
+     * Return an immutable Map that maps request parameter names to the set of
+     * all values (as a String array).
+     */
+    Map getParamValues();
+
+    /**
+     * Return the preferred Locale in which the client will accept content.
+     */
+    Locale getRequestLocale();
+}

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesRequestContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/TilesRequestContext.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date

Added: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/spi/DefinitionsFactory.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/spi/DefinitionsFactory.java?view=auto&rev=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/spi/DefinitionsFactory.java (added)
+++ struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/spi/DefinitionsFactory.java Fri Oct 27 13:33:53 2006
@@ -0,0 +1,27 @@
+/*
+ * $Id$
+ *
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.tiles.spi;
+
+/**
+ *
+ * @since 2.0
+ * @version $Rev$
+ */
+public interface DefinitionsFactory {
+    
+}

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/spi/DefinitionsFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/main/java/org/apache/tiles/spi/DefinitionsFactory.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date

Added: struts/sandbox/trunk/tiles/tiles-api/src/test/java/org/apache/tiles/TilesConfigTest.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-api/src/test/java/org/apache/tiles/TilesConfigTest.java?view=auto&rev=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-api/src/test/java/org/apache/tiles/TilesConfigTest.java (added)
+++ struts/sandbox/trunk/tiles/tiles-api/src/test/java/org/apache/tiles/TilesConfigTest.java Fri Oct 27 13:33:53 2006
@@ -0,0 +1,35 @@
+/*
+ * $Id$
+ *
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.tiles;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ */
+public class TilesConfigTest extends TestCase {
+
+    public void testInitParameters() {
+        TilesConfig config = new TilesConfig();
+        config.setInitParameter("one", "oneValue");
+
+        assertEquals("oneValue", config.getInitParameter("one"));
+        assertNull(config.getInitParameter("two"));
+        assertEquals(1, config.getInitParameters().size());
+    }
+}

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/test/java/org/apache/tiles/TilesConfigTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/sandbox/trunk/tiles/tiles-api/src/test/java/org/apache/tiles/TilesConfigTest.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date

Modified: struts/sandbox/trunk/tiles/tiles-core/pom.xml
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/pom.xml?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/pom.xml (original)
+++ struts/sandbox/trunk/tiles/tiles-core/pom.xml Fri Oct 27 13:33:53 2006
@@ -92,6 +92,12 @@
 
 
     <dependencies>
+      <dependency>
+         <groupId>org.apache.struts.tiles</groupId>
+         <artifactId>tiles-api</artifactId>
+         <version>${pom.version}</version>
+      </dependency>
+
 
       <dependency>
          <groupId>commons-beanutils</groupId>
@@ -154,4 +160,4 @@
       </pluginRepository>
    </pluginRepositories>
    
-</project>
\ No newline at end of file
+</project>

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsFactoryConfig.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsFactoryConfig.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsFactoryConfig.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsFactoryConfig.java Fri Oct 27 13:33:53 2006
@@ -29,7 +29,7 @@
 
 /**
  * A TilesFactoryConfig object hold configuration attributes for a tile
- * definition factory.
+ * definition impl.
  *
  * @since Struts 1.1
  * @version $Rev$ $Date$
@@ -37,8 +37,8 @@
 public class DefinitionsFactoryConfig implements Serializable {
 
     /**
-     * Fully qualified classname of the factory to create.
-     * If no classname is set, a default factory is created
+     * Fully qualified classname of the impl to create.
+     * If no classname is set, a default impl is created
      * (of class "org.apache.tiles.xmlDefinition.I18nFactorySet").
      */
     protected String factoryClassname =
@@ -56,14 +56,14 @@
     protected String definitionConfigFiles = null;
 
     /**
-     * Specifies whether the factory is "module-aware".
+     * Specifies whether the impl is "module-aware".
      */
     protected boolean moduleAware = true;
 
     /**
-     * The name associated to this factory.
+     * The name associated to this impl.
      * <br>
-     * With Struts 1.1, this name is the module name to which this factory
+     * With Struts 1.1, this name is the module name to which this impl
      * belong. It is set by the system.
      * <br>
      * In prior versions, this property is not used.
@@ -84,10 +84,10 @@
         "definitions-parser-validate";
 
     /** 
-     * Alternate name for factory classname properties in configuration file. 
+     * Alternate name for impl classname properties in configuration file.
      */
     public static final String FACTORY_CLASSNAME_PARAMETER_NAME =
-        "definitions-factory-class";
+        "definitions-impl-class";
 
     /** 
      * Alternate name for definition files properties in configuration file. 
@@ -126,23 +126,23 @@
 
     /**
      * Get the module aware flag.
-     * @return <code>true</code>: user wants a single factory instance,
-     * <code>false</code>: user wants multiple factory instances (one per module with Struts)
+     * @return <code>true</code>: user wants a single impl instance,
+     * <code>false</code>: user wants multiple impl instances (one per module with Struts)
      */
     public boolean isModuleAware() {
         return moduleAware;
     }
     /**
      * Set the module aware flag.
-     * @param moduleAware <code>true</code>: user wants a single factory instance,
-     * <code>false</code>: user wants multiple factory instances (one per module with Struts)
+     * @param moduleAware <code>true</code>: user wants a single impl instance,
+     * <code>false</code>: user wants multiple impl instances (one per module with Struts)
      */
     public void setModuleAware(boolean moduleAware) {
         this.moduleAware = moduleAware;
     }
 
     /**
-     * Get the classname of the factory.
+     * Get the classname of the impl.
      * @return Classname.
      */
     public String getFactoryClassname() {
@@ -150,8 +150,8 @@
     }
 
     /**
-     * Set the classname of the factory..
-     * @param aFactoryClassname Classname of the factory.
+     * Set the classname of the impl..
+     * @param aFactoryClassname Classname of the impl.
      */
     public void setFactoryClassname(String aFactoryClassname) {
         factoryClassname = aFactoryClassname;
@@ -299,14 +299,14 @@
     }
 
     /**
-     * Get the factory name.
+     * Get the impl name.
      */
     public String getFactoryName() {
         return factoryName;
     }
     /**
-     * Set the factory name.
-     * @param factoryName Name of the factory.
+     * Set the impl name.
+     * @param factoryName Name of the impl.
      */
     public void setFactoryName(String factoryName) {
         this.factoryName = factoryName;

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsFactoryException.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsFactoryException.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsFactoryException.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsFactoryException.java Fri Oct 27 13:33:53 2006
@@ -20,7 +20,7 @@
 package org.apache.tiles;
 
   /**
-   * Exception thrown when an error occurs while the factory tries to
+   * Exception thrown when an error occurs while the impl tries to
    * create a new instance mapper.
    */
 public class DefinitionsFactoryException extends TilesException

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsUtil.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsUtil.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsUtil.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/DefinitionsUtil.java Fri Oct 27 13:33:53 2006
@@ -29,7 +29,7 @@
 import org.apache.tiles.taglib.ComponentConstants;
 
 /**
- * Utilities class for definitions factory.
+ * Utilities class for definitions impl.
  * Also define userDebugLevel property (TODO to be moved from this class ?).
  * @deprecated Use {@link TilesUtil#createDefinitionsFactory(TilesApplicationContext, DefinitionsFactoryConfig)}
  */
@@ -59,13 +59,13 @@
         "definitions-debug";
 
     /** 
-     * Name of init property carrying factory class name. 
+     * Name of init property carrying impl class name.
      */
     public static final String DEFINITIONS_FACTORY_CLASSNAME =
-        "definitions-factory-class";
+        "definitions-impl-class";
 
     /** 
-     * Constant name used to store factory in context. 
+     * Constant name used to store impl in context.
      */
     public static final String DEFINITIONS_FACTORY =
         "org.apache.tiles.DEFINITIONS_FACTORY";
@@ -78,14 +78,14 @@
         "org.apache.tiles.ACTION_DEFINITION";
 
     /**
-     * Create Definition factory.
-     * If a factory class name is provided, a factory of this class is created. Otherwise,
-     * default factory is created.
-     * @param classname Class name of the factory to create.
+     * Create Definition impl.
+     * If a impl class name is provided, a impl of this class is created. Otherwise,
+     * default impl is created.
+     * @param classname Class name of the impl to create.
      * @param tilesContext The current Tiles application context.
-     * @param properties Map of name/property used to initialize factory configuration object.
-     * @return newly created factory.
-     * @throws DefinitionsFactoryException If an error occur while initializing factory
+     * @param properties Map of name/property used to initialize impl configuration object.
+     * @return newly created impl.
+     * @throws DefinitionsFactoryException If an error occur while initializing impl
      * @deprecated Use createDefinitionsFactory(ServletContext servletContext, ServletConfig servletConfig)
      */
     public static DefinitionsFactory createDefinitionsFactory(
@@ -110,16 +110,16 @@
         if (classname != null)
             factoryConfig.setFactoryClassname(classname);
 
-        // Create factory using config object
-        return createDefinitionsFactory(tilesContext, factoryConfig);
+        // Create impl using config object
+        return createDefinitionsFactory(factoryConfig);
     }
 
     /**
-     * Create default Definition factory.
+     * Create default Definition impl.
      * @param tilesContext The current Tiles application context.
-     * @param properties Map of name/property used to initialize factory configuration object.
-     * @return newly created factory of type ConfigurableDefinitionsFactory.
-     * @throws DefinitionsFactoryException If an error occur while initializing factory
+     * @param properties Map of name/property used to initialize impl configuration object.
+     * @return newly created impl of type ConfigurableDefinitionsFactory.
+     * @throws DefinitionsFactoryException If an error occur while initializing impl
      */
     public static DefinitionsFactory createDefinitionsFactory(
         TilesApplicationContext tilesContext,
@@ -130,15 +130,15 @@
     }
 
     /**
-     * Create Definition factory.
+     * Create Definition impl.
      * Create configuration object from servlet web.xml file, then create
      * ConfigurableDefinitionsFactory and initialized it with object.
      * <p>
      * Convenience method. Calls createDefinitionsFactory(ServletContext servletContext, DefinitionsFactoryConfig factoryConfig)
      *
      * @param tilesContext The current Tiles application context.
-     * @return newly created factory of type ConfigurableDefinitionsFactory.
-     * @throws DefinitionsFactoryException If an error occur while initializing factory
+     * @return newly created impl of type ConfigurableDefinitionsFactory.
+     * @throws DefinitionsFactoryException If an error occur while initializing impl
      */
     public static DefinitionsFactory createDefinitionsFactory(
         TilesApplicationContext tilesContext)
@@ -146,26 +146,26 @@
 
         DefinitionsFactoryConfig factoryConfig = readFactoryConfig(tilesContext);
 
-        return createDefinitionsFactory(tilesContext, factoryConfig);
+        return createDefinitionsFactory(factoryConfig);
     }
 
     /**
-     * Create Definition factory.
+     * Create Definition impl.
      * Create configuration object from servlet web.xml file, then create
      * ConfigurableDefinitionsFactory and initialized it with object.
      * <p>
-     * If checkIfExist is true, start by checking if factory already exist. If yes,
+     * If checkIfExist is true, start by checking if impl already exist. If yes,
      * return it. If no, create a new one.
      * <p>
-     * If checkIfExist is false, factory is always created.
+     * If checkIfExist is false, impl is always created.
      * <p>
      * Convenience method. Calls createDefinitionsFactory(ServletContext servletContext, DefinitionsFactoryConfig factoryConfig)
      *
      * @param tilesContext The current Tiles application context.
-     * @param checkIfExist Check if factory already exist. If true and factory exist, return it.
-     * If true and factory doesn't exist, create it. If false, create it in all cases.
-     * @return newly created factory of type ConfigurableDefinitionsFactory.
-     * @throws DefinitionsFactoryException If an error occur while initializing factory
+     * @param checkIfExist Check if impl already exist. If true and impl exist, return it.
+     * If true and impl doesn't exist, create it. If false, create it in all cases.
+     * @return newly created impl of type ConfigurableDefinitionsFactory.
+     * @throws DefinitionsFactoryException If an error occur while initializing impl
      */
     public static DefinitionsFactory createDefinitionsFactory(
         TilesApplicationContext tilesContext,
@@ -183,10 +183,10 @@
     }
 
     /**
-     * Get definition factory from appropriate servlet context.
+     * Get definition impl from appropriate servlet context.
      *
      * @param tilesContext the current Tiles application context.
-     * @return Definitions factory or null if not found.
+     * @return Definitions impl or null if not found.
      * @deprecated Use {@link TilesUtil#getDefinitionsFactory(TilesApplicationContext)
      * @since 20020708
      */

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/FactoryNotFoundException.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/FactoryNotFoundException.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/FactoryNotFoundException.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/FactoryNotFoundException.java Fri Oct 27 13:33:53 2006
@@ -20,7 +20,7 @@
 package org.apache.tiles;
 
   /**
-   * Exception thrown when definitions factory is not found.
+   * Exception thrown when definitions impl is not found.
    */
 public class FactoryNotFoundException extends DefinitionsFactoryException
 {

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesUtil.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesUtil.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesUtil.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesUtil.java Fri Oct 27 13:33:53 2006
@@ -37,12 +37,12 @@
  * if the underlying implementation doesn't support the operation.
  */
 public class TilesUtil {
-    
+
     /** Commons Logging instance.*/
     protected static Log log = LogFactory.getLog(TilesUtil.class);
 
     /** The implementation of tilesUtilImpl */
-    protected static TilesUtilImpl tilesUtilImpl = new TilesUtilImpl();
+    protected static TilesUtilImpl tilesUtilImpl;
 
     /**
      * Get the real implementation.
@@ -78,6 +78,14 @@
     /** Flag to know if internal implementation has been set by the setter method */
     private static boolean implAlreadySet = false;
 
+    public static TilesApplicationContext getApplicationContext() {
+        return tilesUtilImpl.getApplicationContext();
+    }
+
+    public static TilesRequestContext createRequestContext(Object request, Object response) {
+        return tilesUtilImpl.createRequestContext(request, response);
+    }
+
     /**
      * Do a forward using request dispatcher.
      *
@@ -89,7 +97,7 @@
         String uri,
         TilesRequestContext tilesContext)
         throws IOException, Exception {
-            
+
         tilesUtilImpl.doForward(uri, tilesContext);
     }
 
@@ -105,7 +113,7 @@
         String uri,
         TilesRequestContext tilesContext)
         throws IOException, Exception {
-            
+
         tilesUtilImpl.doInclude(uri, tilesContext);
     }
 
@@ -121,7 +129,7 @@
         throws IOException, Exception {
         doInclude(uri, pageContext, true);
     }
-    
+
     /**
      * Do an include using PageContext.include().
      *
@@ -137,42 +145,39 @@
     }
 
     /**
-     * Get definition factory from appropriate servlet context.
-     * @return Definitions factory or <code>null</code> if not found.
+     * Get definition impl from appropriate servlet context.
+     * @return Definitions impl or <code>null</code> if not found.
      */
-    public static DefinitionsFactory getDefinitionsFactory(
-        TilesApplicationContext tilesContext) {
-        return tilesUtilImpl.getDefinitionsFactory(tilesContext);
+    public static DefinitionsFactory getDefinitionsFactory() {
+        return tilesUtilImpl.getDefinitionsFactory();
     }
 
     /**
-     * Create Definition factory from specified configuration object.
+     * Create Definition impl from specified configuration object.
      * Create a ConfigurableDefinitionsFactory and initialize it with the configuration
-     * object. This later can contain the factory classname to use.
+     * object. This later can contain the impl classname to use.
      * Factory is made accessible from tags.
      * <p>
-     * Fallback of several factory creation methods.
+     * Fallback of several impl creation methods.
      *
-     * @param tilesContext Current Tiles application context.
-     * @param factoryConfig Configuration object passed to factory.
-     * @return newly created factory of type ConfigurableDefinitionsFactory.
-     * @throws DefinitionsFactoryException If an error occur while initializing factory
+     * @param factoryConfig Configuration object passed to impl.
+     * @return newly created impl of type ConfigurableDefinitionsFactory.
+     * @throws DefinitionsFactoryException If an error occur while initializing impl
      */
     public static DefinitionsFactory createDefinitionsFactory(
-        TilesApplicationContext tilesContext,
         DefinitionsFactoryConfig factoryConfig)
         throws DefinitionsFactoryException {
-        return tilesUtilImpl.createDefinitionsFactory(tilesContext, factoryConfig);
+        return tilesUtilImpl.createDefinitionsFactory(factoryConfig);
     }
 
     /**
      * Get a definition by its name.
-     * First, retrieve definition factory and then get requested definition.
-     * Throw appropriate exception if definition or definition factory is not found.
+     * First, retrieve definition impl and then get requested definition.
+     * Throw appropriate exception if definition or definition impl is not found.
      * @param definitionName Name of requested definition.
      * @param tilesContext Current Tiles application context.
-     * @throws FactoryNotFoundException Can't find definition factory.
-     * @throws DefinitionsFactoryException General error in factory while getting definition.
+     * @throws FactoryNotFoundException Can't find definition impl.
+     * @throws DefinitionsFactoryException General error in impl while getting definition.
      * @throws NoSuchDefinitionException No definition found for specified name
      */
     public static ComponentDefinition getDefinition(
@@ -188,7 +193,7 @@
      */
     protected static void testReset() {
         implAlreadySet = false;
-        tilesUtilImpl = new TilesUtilImpl();
+        tilesUtilImpl = new TilesUtilImpl(null);
     }
 
 }

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesUtilImpl.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesUtilImpl.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesUtilImpl.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/TilesUtilImpl.java Fri Oct 27 13:33:53 2006
@@ -34,6 +34,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.tiles.util.RequestUtils;
+import org.apache.tiles.context.BasicTilesContextFactory;
 
 /**
  * Default implementation of TilesUtil.
@@ -41,23 +42,23 @@
  * is intended to be used without Struts.
  */
 public class TilesUtilImpl implements Serializable {
-    
+
     /** Commons Logging instance.*/
     protected static final Log log = LogFactory.getLog(TilesUtil.class);
 
-    /** Constant name used to store factory in servlet context */
+    /** Constant name used to store impl in servlet context */
     public static final String DEFINITIONS_FACTORY =
         "org.apache.tiles.DEFINITIONS_FACTORY";
-    
+
     /** Constant used to store ComponentDefinitions graph. */
-    public static final String DEFINITIONS_OBJECT = 
+    public static final String DEFINITIONS_OBJECT =
             "org.apache.tiles.ComponentDefinitions";
-        
+
     /**
      * JSP 2.0 include method to use which supports configurable flushing.
      */
-    private static Method include = null;    
-    
+    private static Method include = null;
+
     /**
      * Initialize the include variable with the
      * JSP 2.0 method if available.
@@ -74,7 +75,21 @@
         }
     }
 
-    /**
+    private TilesApplicationContext applicationContext;
+
+    public TilesUtilImpl(TilesApplicationContext applicationContext) {
+        this.applicationContext = applicationContext;
+    }
+
+   public TilesApplicationContext getApplicationContext() {
+       return applicationContext;
+   }
+
+    public TilesRequestContext createRequestContext(Object request, Object response) {
+        return new BasicTilesContextFactory().createRequestContext(applicationContext, request, response);
+    }
+
+   /**
      * Do a forward using request dispatcher.
      *
      * This method is used by the Tiles package anytime a forward is required.
@@ -85,7 +100,7 @@
         String uri,
         TilesRequestContext tilesContext)
         throws IOException, Exception {
-            
+
         tilesContext.dispatch(uri);
     }
 
@@ -101,7 +116,7 @@
         String uri,
         TilesRequestContext tilesContext)
         throws IOException, Exception {
-            
+
         tilesContext.include(uri);
     }
 
@@ -121,155 +136,148 @@
             if (include != null) {
                 include.invoke(pageContext, new Object[]{uri, Boolean.valueOf(flush)});
                 return;
-            } 
+            }
         } catch (IllegalAccessException e) {
             log.debug("Could not find JSP 2.0 include method.  Using old one.", e);
         } catch (InvocationTargetException e) {
             log.debug("Unable to execute JSP 2.0 include method.  Trying old one.", e);
         }
-            
+
         pageContext.include(uri);
     }
 
     /**
-     * Get definition factory from appropriate servlet context.
-     * @return Definitions factory or <code>null</code> if not found.
+     * Get definition impl from appropriate servlet context.
+     * @return Definitions impl or <code>null</code> if not found.
      */
-    public DefinitionsFactory getDefinitionsFactory(
-            TilesApplicationContext tilesContext) {
-            
-        return (DefinitionsFactory) tilesContext.getApplicationScope().get(DEFINITIONS_FACTORY);
+    public DefinitionsFactory getDefinitionsFactory() {
+
+        return (DefinitionsFactory) applicationContext.getApplicationScope().get(DEFINITIONS_FACTORY);
     }
 
     /**
-     * Create Definition factory from specified configuration object.
-     * Create an instance of the factory with the class specified in the config
-     * object. Then, initialize this factory and finally store the factory in
+     * Create Definition impl from specified configuration object.
+     * Create an instance of the impl with the class specified in the config
+     * object. Then, initialize this impl and finally store the impl in
      * appropriate context by calling
-     * {@link #makeDefinitionsFactoryAccessible(DefinitionsFactory, TilesApplicationContext)}.
+     * {@link #makeDefinitionsFactoryAccessible(DefinitionsFactory)}.
      * Factory creation is done by {@link #createDefinitionFactoryInstance(String)}.
      * <p>
      *
-     * @param tilesContext current Tiles application context.
-     * @param factoryConfig Configuration object passed to factory.
-     * @return newly created factory of type specified in the config object.
-     * @throws DefinitionsFactoryException If an error occur while initializing factory
+     * @param factoryConfig Configuration object passed to impl.
+     * @return newly created impl of type specified in the config object.
+     * @throws DefinitionsFactoryException If an error occur while initializing impl
      */
     public DefinitionsFactory createDefinitionsFactory(
-        TilesApplicationContext tilesContext,
         DefinitionsFactoryConfig factoryConfig)
         throws DefinitionsFactoryException {
-            
+
         // FIXME:  Do you think it is correct to pull it from ServletConfig?
         String factoryClassName = factoryConfig.getFactoryClassname();
-        
+
         if (factoryClassName == null) {
-        	factoryClassName = "org.apache.tiles.definition.UrlDefinitionsFactory";
+            factoryClassName = "org.apache.tiles.definition.UrlDefinitionsFactory";
         }
-        
-        // Create configurable factory
+
+        // Create configurable impl
         DefinitionsFactory factory =
             createDefinitionFactoryInstance(factoryClassName);
 
         Map params = factoryConfig.getAttributes();
-        
+
         factory.init(params);
 
         String configFiles = factoryConfig.getDefinitionConfigFiles();
         List filenames = getFilenames(configFiles);
-        
+
         try {
             for (int i = 0; i < filenames.size(); i++) {
                 String filename = (String) filenames.get(i);
-                factory.addSource(tilesContext.getResource(filename));
+                factory.addSource(applicationContext.getResource(filename));
             }
         } catch (MalformedURLException e) {
             throw new DefinitionsFactoryException("Problem with filename URL: ", e);
         }
-        
+
         ComponentDefinitions definitions = factory.readDefinitions();
-        
-        // Make factory accessible from jsp tags (push it in appropriate context)
-        makeDefinitionsFactoryAccessible(factory, tilesContext);
-        makeDefinitionsAccessible(definitions, tilesContext);
-        
+
+        // Make impl accessible from jsp tags (push it in appropriate context)
+        makeDefinitionsFactoryAccessible(factory);
+        makeDefinitionsAccessible(definitions);
+
         return factory;
     }
 
     public ComponentDefinition getDefinition(String definitionName,
-            TilesRequestContext tilesContext)
+                                             TilesRequestContext tilesContext)
             throws FactoryNotFoundException, DefinitionsFactoryException {
-        
+
         try {
-            DefinitionsFactory factory = getDefinitionsFactory(tilesContext);
+            DefinitionsFactory factory = getDefinitionsFactory();
             return factory.getDefinition(definitionName, tilesContext);
         } catch (NullPointerException ex) { // Factory not found in context
-            throw new FactoryNotFoundException("Can't get definitions factory from context.");
+            throw new FactoryNotFoundException("Can't get definitions impl from context.");
         }
     }
-    
+
     /**
-     * Create Definition factory of specified classname.
+     * Create Definition impl of specified classname.
      * Factory class must extend the {@link DefinitionsFactory} class.
-     * @param classname Class name of the factory to create.
-     * @return newly created factory.
-     * @throws DefinitionsFactoryException If an error occur while initializing factory
+     * @param classname Class name of the impl to create.
+     * @return newly created impl.
+     * @throws DefinitionsFactoryException If an error occur while initializing impl
      */
     protected DefinitionsFactory createDefinitionFactoryInstance(String classname)
         throws DefinitionsFactoryException {
-            
+
         try {
             Class factoryClass = RequestUtils.applicationClass(classname);
             Object factory = factoryClass.newInstance();
 
             return (DefinitionsFactory) factory;
-            
+
         } catch (ClassCastException ex) { // Bad classname
             throw new DefinitionsFactoryException(
                 "Error - createDefinitionsFactory : Factory class '"
                     + classname
                     + " must implement 'DefinitionsFactory'.",
                 ex);
-                
+
         } catch (ClassNotFoundException ex) { // Bad classname
             throw new DefinitionsFactoryException(
                 "Error - createDefinitionsFactory : Bad class name '"
                     + classname
                     + "'.",
                 ex);
-                
+
         } catch (InstantiationException ex) { // Bad constructor or error
             throw new DefinitionsFactoryException(ex);
-            
+
         } catch (IllegalAccessException ex) {
             throw new DefinitionsFactoryException(ex);
         }
     }
-    
+
     /**
-     * Make definition factory accessible to Tags.
+     * Make definition impl accessible to Tags.
      * Factory is stored in servlet context.
      * @param factory Factory to be made accessible.
-     * @param tilesContext Current application context.
      */
     protected void makeDefinitionsFactoryAccessible(
-        DefinitionsFactory factory,
-        TilesApplicationContext tilesContext) {
-            
-        tilesContext.getApplicationScope().put(DEFINITIONS_FACTORY, factory);
+        DefinitionsFactory factory) {
+
+        applicationContext.getApplicationScope().put(DEFINITIONS_FACTORY, factory);
     }
 
     /**
-     * Make definition factory accessible to Tags.
+     * Make definition impl accessible to Tags.
      * Factory is stored in servlet context.
-     * @param definitions Definition factory to be made accessible
-     * @param tilesContext current Tiles application context.
+     * @param definitions Definition impl to be made accessible
      */
     protected void makeDefinitionsAccessible(
-        ComponentDefinitions definitions,
-        TilesApplicationContext tilesContext) {
-            
-        tilesContext.getApplicationScope().put(DEFINITIONS_OBJECT, definitions);
+        ComponentDefinitions definitions) {
+
+        applicationContext.getApplicationScope().put(DEFINITIONS_OBJECT, definitions);
     }
 
     /**
@@ -282,7 +290,9 @@
         while (tokenizer.hasMoreTokens()) {
             filenames.add(tokenizer.nextToken().trim());
         }
-        
+
         return filenames;
     }
+
+
 }

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/BasicTilesContextFactory.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/BasicTilesContextFactory.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/BasicTilesContextFactory.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/BasicTilesContextFactory.java Fri Oct 27 13:33:53 2006
@@ -65,15 +65,18 @@
         }
     }
 
-    public TilesRequestContext createRequestContext(Object context,
+    public TilesRequestContext createRequestContext(TilesApplicationContext context,
                                                     Object request,
                                                     Object response) {
-        if (context instanceof ServletContext) {
-            return new ServletTilesRequestContext((ServletContext)context,
+        if (context instanceof ServletTilesApplicationContext) {
+            ServletTilesApplicationContext app = (ServletTilesApplicationContext)context;
+            
+            return new ServletTilesRequestContext(app.getServletContext(),
                                                   (HttpServletRequest)request,
                                                   (HttpServletResponse)response);
         } else if (context instanceof PortletContext) {
-            return new PortletTilesRequestContext((PortletContext)context,
+            PortletTilesApplicationContext app = (PortletTilesApplicationContext)context;
+            return new PortletTilesRequestContext(app.getPortletContext(),
                                                   (PortletRequest)request,
                                                   (PortletResponse)response);
                 } else {
@@ -81,5 +84,4 @@
                     + context.getClass().getName());
         }
     }
-
 }

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/TilesContextFactory.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/TilesContextFactory.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/TilesContextFactory.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/TilesContextFactory.java Fri Oct 27 13:33:53 2006
@@ -31,7 +31,7 @@
 public interface TilesContextFactory {
 
     /**
-     * Initialize the factory
+     * Initialize the impl
      */
     void init(Map configurationParameters);
 
@@ -51,5 +51,5 @@
      * @param response
      * @return  TilesRequestContext
      */
-    TilesRequestContext createRequestContext(Object context, Object request, Object response);
+    TilesRequestContext createRequestContext(TilesApplicationContext context, Object request, Object response);
 }

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/portlet/PortletTilesApplicationContext.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/portlet/PortletTilesApplicationContext.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/portlet/PortletTilesApplicationContext.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/portlet/PortletTilesApplicationContext.java Fri Oct 27 13:33:53 2006
@@ -95,7 +95,7 @@
     /**
      * <p>Return the {@link PortletContext} for this context.</p>
      */
-    public PortletContext getContext() {
+    public PortletContext getPortletContext() {
         return (this.context);
     }
 
@@ -121,6 +121,9 @@
         return context.getResource(path);
     }
 
+    public URL[] getResources(String path) throws MalformedURLException {
+        return new URL[] { context.getResource(path) };
+    }
 
     public TilesRequestContext createRequestContext(Object request, Object response) {
         if (request instanceof PortletRequest && response instanceof PortletResponse) {
@@ -133,5 +136,7 @@
                     + context.getClass().getName());
         }
     }
+    
+    
 
 }

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/portlet/PortletTilesRequestContext.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/portlet/PortletTilesRequestContext.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/portlet/PortletTilesRequestContext.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/portlet/PortletTilesRequestContext.java Fri Oct 27 13:33:53 2006
@@ -37,6 +37,8 @@
  */
 public class PortletTilesRequestContext extends PortletTilesApplicationContext implements TilesRequestContext {
 
+    private String definitionName;
+
 
     /**
      * <p>The lazily instantiated <code>Map</code> of header name-value
@@ -146,6 +148,15 @@
         response = null;
         super.release();
 
+    }
+
+
+    public String getDefinitionName() {
+        return definitionName;
+    }
+
+    public void setDefinitionName(String definitionName) {
+        this.definitionName = definitionName;
     }
 
     /**

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesApplicationContext.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesApplicationContext.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesApplicationContext.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesApplicationContext.java Fri Oct 27 13:33:53 2006
@@ -56,6 +56,7 @@
         initialize(servletContext);
     }
 
+
     public Map getApplicationScope() {
 
         if ((applicationScope == null) && (servletContext != null)) {
@@ -80,6 +81,9 @@
         return servletContext.getResource(path);
     }
 
+    public URL[] getResources(String path) throws MalformedURLException {
+        return new URL[] { servletContext.getResource(path) };
+    }
 
     public ServletContext getServletContext() {
         return servletContext;

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesRequestContext.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesRequestContext.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesRequestContext.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/context/servlet/ServletTilesRequestContext.java Fri Oct 27 13:33:53 2006
@@ -41,6 +41,8 @@
 
     private HttpServletResponse response;
 
+    private String definitionName;
+
     /**
      * <p>The lazily instantiated <code>Map</code> of header name-value
      * combinations (immutable).</p>
@@ -89,6 +91,14 @@
         initialize(request, response);
     }
 
+
+    public String getDefinitionName() {
+        return definitionName;
+    }
+
+    public void setDefinitionName(String definitionName) {
+        this.definitionName = definitionName;
+    }
 
     public Map getHeader() {
 

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/definition/UrlDefinitionsFactory.java Fri Oct 27 13:33:53 2006
@@ -133,15 +133,15 @@
      */
     public ComponentDefinition getDefinition(String name,
             TilesRequestContext tilesContext) throws DefinitionsFactoryException {
-        ComponentDefinitions definitions = (ComponentDefinitions) 
-                tilesContext.getApplicationScope().get(
-                        TilesUtilImpl.DEFINITIONS_OBJECT);
+        Map appScoped = TilesUtil.getTilesUtil().getApplicationContext().getApplicationScope();
+        ComponentDefinitions definitions = (ComponentDefinitions)
+                appScoped.get(TilesUtilImpl.DEFINITIONS_OBJECT);
         ComponentDefinition definition = definitions.getDefinition(
                 name, tilesContext.getRequestLocale());
         
         if (definition == null) {
             if (!isContextProcessed(tilesContext)) {
-                // FIXME This will modify the factory as well as the definitions
+                // FIXME This will modify the impl as well as the definitions
                 // but we are only locking the definitions.
                 // 
                 // We'll have to refactor again to remove this issue.

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/filter/TilesFilter.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/filter/TilesFilter.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/filter/TilesFilter.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/filter/TilesFilter.java Fri Oct 27 13:33:53 2006
@@ -63,10 +63,7 @@
             throws IOException, ServletException {
 
         try {
-            ServletContext servletContext = filterConfig.getServletContext();
-            TilesContextFactory contextFactory = new BasicTilesContextFactory();
-            TilesApplicationContext tilesContext = contextFactory.createApplicationContext(servletContext);
-            DefinitionsFactory factory = TilesUtil.getDefinitionsFactory(tilesContext);
+            DefinitionsFactory factory = TilesUtil.getDefinitionsFactory();
 
             if (factory instanceof ReloadableDefinitionsFactory) {
                 if (((ReloadableDefinitionsFactory) factory).refreshRequired()) {

Added: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java?view=auto&rev=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java (added)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java Fri Oct 27 13:33:53 2006
@@ -0,0 +1,58 @@
+/*
+ * $Id$
+ *
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * 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.
+ */
+package org.apache.tiles.impl;
+
+import org.apache.tiles.TilesContainer;
+import org.apache.tiles.TilesConfig;
+import org.apache.tiles.TilesRequestContext;
+import org.apache.tiles.TilesApplicationContext;
+import org.apache.tiles.definition.UrlDefinitionsFactory;
+
+import java.util.Map;
+
+/**
+ * TODO Flush out the basic container implementation.
+ */
+public class BasicTilesContainer implements TilesContainer {
+
+    private TilesConfig config;
+
+    public void init(TilesConfig config) {
+        this.config = config;
+        initializeDefinitionsFactory();
+
+    }
+
+    public TilesApplicationContext getApplicationContext() {
+        return config.getApplicationContext();
+    }
+
+    public void render(TilesRequestContext request) {
+        //To change body of implemented methods use File | Settings | File Templates.
+    }
+
+
+    void initializeDefinitionsFactory() {
+        Map init = config.getInitParameters();
+        String className = (String)init.get(TilesConfig.DEFINITIONS_FACTORY_CLASS_NAME_ATTR_KEY);
+        if(className == null) {
+            className = UrlDefinitionsFactory.class.getName();
+        }
+        //. . .
+    }
+}

Propchange: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/impl/BasicTilesContainer.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/listener/TilesListener.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/listener/TilesListener.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/listener/TilesListener.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/listener/TilesListener.java Fri Oct 27 13:33:53 2006
@@ -68,7 +68,7 @@
 
 
     /**
-     * The Tiles definition factory
+     * The Tiles definition impl
     */
    protected DefinitionsFactory definitionFactory = null;
 
@@ -86,11 +86,13 @@
         try {
             ServletContext context = event.getServletContext();
 
-            // Create factory config object
+            // Create impl config object
             DefinitionsFactoryConfig fconfig = readFactoryConfig(context);
             fconfig.setModuleAware(false);
 
-            TilesUtil.setTilesUtil(new TilesUtilImpl());
+            TilesContextFactory factory = new BasicTilesContextFactory();
+            TilesApplicationContext tilesContext = factory.createApplicationContext(context);
+            TilesUtil.setTilesUtil(new TilesUtilImpl(tilesContext));
             initDefinitionsFactory(context, fconfig);
         }
         catch(Exception ex) {
@@ -106,7 +108,7 @@
 
 
     /**
-     * Populates the tiles factory configuration. If a
+     * Populates the tiles impl configuration. If a
      * context init param named <i>definitions-config</i>
      * was defined, that param's value is assumed to be
      * a comma-separated list of configuration file names,
@@ -143,22 +145,20 @@
 
 
     /**
-     * Initializes the Tiles definitions factory.
+     * Initializes the Tiles definitions impl.
      *
      * @param servletContext The servlet context
-     * @param factoryConfig The definitions factory config
+     * @param factoryConfig The definitions impl config
      */
    private void initDefinitionsFactory(ServletContext servletContext,
                                        DefinitionsFactoryConfig factoryConfig)
                                                     throws ServletException {
-        logger.info("initializing definitions factory...");
-        // Create configurable factory
+        logger.info("initializing definitions impl...");
+        // Create configurable impl
         try {
             // Eventually this can be made dynamic
-            TilesContextFactory factory = new BasicTilesContextFactory();
-            TilesApplicationContext tilesContext = factory.createApplicationContext(servletContext);
-            definitionFactory = TilesUtil.createDefinitionsFactory(
-                                            tilesContext, factoryConfig);
+
+            definitionFactory = TilesUtil.createDefinitionsFactory(factoryConfig);
         } catch (DefinitionsFactoryException ex) {
                     ex.printStackTrace();
             throw new ServletException(ex.getMessage(), ex);
@@ -176,7 +176,7 @@
      * @param ex An exception
      */
     private void saveExceptionMessage(ServletContext context, Exception ex) {
-       logger.warning("Caught exception when initializing definitions factory");
+       logger.warning("Caught exception when initializing definitions impl");
        logger.warning(ex.getMessage());
        logger.warning(ex.toString());
        context.setAttribute("TILES_INIT_EXCEPTION", ex.getMessage());

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/servlet/TilesServlet.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/servlet/TilesServlet.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/servlet/TilesServlet.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/servlet/TilesServlet.java Fri Oct 27 13:33:53 2006
@@ -33,7 +33,7 @@
 
 /**
  * This is the entry point for Tiles. The <code>TilesServlet</code> initializes
- * Tiles by creating a factory of tile definitions.
+ * Tiles by creating a impl of tile definitions.
  * <p/>
  * <strong>Using the Tiles Servlet</strong>
  * <p/>
@@ -53,7 +53,7 @@
  * this servlet does everything when it's loaded. After that, it does not
  * service requests. This is not a front-controller servlet, like the Struts or JSF servlets.<br/><br/>
  * TilesServlet reads through your Tiles configuration file(s) and stores
- * tile definitions in a factory. That factory is accessed by the Tiles
+ * tile definitions in a impl. That impl is accessed by the Tiles
  * tag libraries. You can specify a configuration file like this:
  * <p/>
  * <pre>&lt;web-app&gt;
@@ -98,7 +98,7 @@
  * problems are found with your configuration files, the Tiles servlet of yesteryear would 
  * throw a <code>FactoryNotFound</code> exception and log the error message to the servlet 
  * container's log. Subsequently, when the <code>tiles:insert</code> tag blows up because 
- * there's no definition factory, Tiles would throw an exception with the familiar 
+ * there's no definition impl, Tiles would throw an exception with the familiar
  * <i>Cant find definitions config file</i> message. It was up to you to dig through 
  * the servlet container's log to find out what really went wrong.
  *
@@ -139,7 +139,7 @@
 
 
     /**
-     * The Tiles definition factory
+     * The Tiles definition impl
     */
    protected DefinitionsFactory definitionFactory = null;
 
@@ -153,8 +153,8 @@
 
     /**
      * Initializes the servlet by creating the Tiles definition
-     * factory and placing that factory in application scope. The
-     * Tiles tags will subsequently access that factory.
+     * impl and placing that impl in application scope. The
+     * Tiles tags will subsequently access that impl.
      *
      * @param config The servlet config
      */
@@ -165,12 +165,14 @@
         configFiles = config.getInitParameter("definitions-config");
 
         try {
-            // Create factory config object
+            // Create impl config object
             DefinitionsFactoryConfig fconfig = readFactoryConfig(config);
             fconfig.setModuleAware(false);
 
             ServletContext context = config.getServletContext();
-            TilesUtil.setTilesUtil(new TilesUtilImpl());
+            TilesContextFactory factory = new BasicTilesContextFactory();
+            TilesApplicationContext tilesContext = factory.createApplicationContext(context);
+            TilesUtil.setTilesUtil(new TilesUtilImpl(tilesContext));
             initDefinitionsFactory(context, fconfig);
         }
         catch(Exception ex) {
@@ -181,7 +183,7 @@
 
 
     /**
-     * Populates the tiles factory configuration. If a
+     * Populates the tiles impl configuration. If a
      * context init param named <i>definitions-config</i>
      * was defined, that param's value is assumed to be
      * a comma-separated list of configuration file names,
@@ -218,21 +220,20 @@
 
 
     /**
-     * Initializes the Tiles definitions factory.
+     * Initializes the Tiles definitions impl.
      *
      * @param servletContext The servlet context
-     * @param factoryConfig The definitions factory config
+     * @param factoryConfig The definitions impl config
      */
    private void initDefinitionsFactory(ServletContext servletContext,
                                        DefinitionsFactoryConfig factoryConfig)
         throws ServletException {
-        logger.info("initializing definitions factory...");
-        // Create configurable factory
+        logger.info("initializing definitions impl...");
+        // Create configurable impl
         try {
-            TilesContextFactory factory = new BasicTilesContextFactory();
-            TilesApplicationContext tilesContext = factory.createApplicationContext(servletContext);
+
             definitionFactory = DefinitionsUtil.createDefinitionsFactory(
-                                tilesContext, factoryConfig);
+                                factoryConfig);
         } catch (DefinitionsFactoryException ex) {
                     ex.printStackTrace();
             throw new ServletException(ex.getMessage(), ex);
@@ -250,7 +251,7 @@
      * @param ex An exception
      */
     private void saveExceptionMessage(ServletConfig config, Exception ex) {
-       logger.warning("Caught exception when initializing definitions factory");
+       logger.warning("Caught exception when initializing definitions impl");
        logger.warning(ex.getMessage());
        logger.warning(ex.toString());
        //config.getServletContext().setAttribute(Globals.TILES_INIT_EXCEPTION, ex.getMessage());

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/BaseInsertTag.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/BaseInsertTag.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/BaseInsertTag.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/BaseInsertTag.java Fri Oct 27 13:33:53 2006
@@ -523,10 +523,9 @@
                 if (preparer != null) {
                     try {
                         TilesRequestContext tilesContext = TagUtils
-                                .getTilesRequestContext(pageContext
-                                        .getServletContext(), pageContext
-                                        .getRequest(), pageContext
-                                        .getResponse());
+                                .getTilesRequestContext(
+                                        pageContext.getRequest(),
+                                        pageContext.getResponse());
                         preparer.execute(tilesContext, subCompContext);
                     } catch (Exception e) {
                         throw new ServletException(e);

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InitDefinitionsTag.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InitDefinitionsTag.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InitDefinitionsTag.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InitDefinitionsTag.java Fri Oct 27 13:33:53 2006
@@ -26,7 +26,7 @@
 import org.apache.tiles.context.TilesContextAccess;
 
 /**
- * Init definitions factory.
+ * Init definitions impl.
  */
 public class InitDefinitionsTag extends TagSupport implements ComponentConstants {
 
@@ -70,7 +70,7 @@
 public int doStartTag() throws JspException {
     TilesApplicationContext tilesContext =
         TilesContextAccess.getApplicationContext(pageContext.getServletContext());
-    DefinitionsFactory factory = TilesUtil.getDefinitionsFactory(tilesContext);
+    DefinitionsFactory factory = TilesUtil.getDefinitionsFactory();
     if(factory != null ) {
       return SKIP_BODY;
     }
@@ -80,7 +80,7 @@
     factoryConfig.setDefinitionConfigFiles( filename );
 
     try {
-      factory = TilesUtil.createDefinitionsFactory(tilesContext, factoryConfig);
+      factory = TilesUtil.createDefinitionsFactory(factoryConfig);
     } catch( DefinitionsFactoryException ex ) {
         ex.printStackTrace();
         throw new JspException( ex );

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InsertDefinitionTag.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InsertDefinitionTag.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InsertDefinitionTag.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/InsertDefinitionTag.java Fri Oct 27 13:33:53 2006
@@ -98,7 +98,7 @@
         
         try {
             TilesRequestContext tilesContext = TagUtils.getTilesRequestContext(
-                    pageContext.getServletContext(), pageContext.getRequest(),
+                    pageContext.getRequest(),
                     pageContext.getResponse());
             ComponentDefinition definition = null;
             definition = TagUtils.getComponentDefinition(name, pageContext,

Modified: struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/util/TagUtils.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/util/TagUtils.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/util/TagUtils.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/main/java/org/apache/tiles/taglib/util/TagUtils.java Fri Oct 27 13:33:53 2006
@@ -31,7 +31,6 @@
 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.tiles.taglib.ComponentConstants;
 import org.apache.tiles.*;
-import org.apache.tiles.context.BasicTilesContextFactory;
 import org.apache.tiles.context.TilesContextAccess;
 
 /**
@@ -68,10 +67,9 @@
     }
 
     public static TilesRequestContext getTilesRequestContext(
-            ServletContext context,
             ServletRequest request,
             ServletResponse response) {
-        return new BasicTilesContextFactory().createRequestContext(context, request, response);
+        return TilesUtil.createRequestContext(request, response);
     }
 
 
@@ -182,8 +180,7 @@
      */
     public static Object findAttribute(String beanName, PageContext pageContext) {
         TilesRequestContext tilesContext = getTilesRequestContext(
-              pageContext.getServletContext(),
-              pageContext.getRequest(),
+                pageContext.getRequest(),
               pageContext.getResponse());
         ComponentContext compContext = ComponentContext.getContext(tilesContext);
 
@@ -209,8 +206,7 @@
     public static Object getAttribute(String beanName, int scope, PageContext pageContext) {
         if (scope == ComponentConstants.COMPONENT_SCOPE) {
             TilesRequestContext tilesContext = getTilesRequestContext(
-                  pageContext.getServletContext(),
-                  pageContext.getRequest(),
+                    pageContext.getRequest(),
                   pageContext.getResponse());
             ComponentContext compContext = ComponentContext.getContext(tilesContext);
             return compContext.getAttribute(beanName);
@@ -379,8 +375,7 @@
             } else {
                 if (tilesContext == null) {
                     tilesContext = getTilesRequestContext(
-                          pageContext.getServletContext(),
-                          pageContext.getRequest(),
+                            pageContext.getRequest(),
                           pageContext.getResponse()
                     );
                 }
@@ -393,7 +388,7 @@
                 "Error : Can't get component definition for '"
                     + name
                     + "'. Check if this name exist in component definitions.",ex);
-        } catch (FactoryNotFoundException ex) { // factory not found.
+        } catch (FactoryNotFoundException ex) { // impl not found.
             throw new JspException(ex);
 
         } catch (DefinitionsFactoryException ex) {

Modified: struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/TestReloadableDefinitionsFactory.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/TestReloadableDefinitionsFactory.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/TestReloadableDefinitionsFactory.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/TestReloadableDefinitionsFactory.java Fri Oct 27 13:33:53 2006
@@ -31,7 +31,7 @@
 import org.apache.tiles.definition.UrlDefinitionsFactory;
 
 /**
- * Tests the reloadable definitions factory.
+ * Tests the reloadable definitions impl.
  *
  * @version $Rev$ $Date$ 
  */
@@ -61,7 +61,7 @@
     }
 
     /**
-     * Tests reloading definitions factory.
+     * Tests reloading definitions impl.
      */
     public void testReloadableDefinitionsFactory() {
         try {

Modified: struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/mock/MockOnlyLocaleTilesContext.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/mock/MockOnlyLocaleTilesContext.java?view=diff&rev=468525&r1=468524&r2=468525
==============================================================================
--- struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/mock/MockOnlyLocaleTilesContext.java (original)
+++ struts/sandbox/trunk/tiles/tiles-core/src/test/java/org/apache/tiles/mock/MockOnlyLocaleTilesContext.java Fri Oct 27 13:33:53 2006
@@ -62,6 +62,11 @@
     public void dispatch(String path) throws IOException, Exception {
     }
 
+
+    public String getDefinitionName() {
+        return null;
+    }
+
     public Map getApplicationScope() {
         return null;
     }