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><web-app>
@@ -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;
}