You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by hu...@apache.org on 2006/11/06 15:55:31 UTC

svn commit: r471754 [19/19] - in /struts/struts1/trunk: apps/cookbook/src/main/java/examples/ apps/cookbook/src/main/java/examples/bean/ apps/cookbook/src/main/java/examples/dyna/ apps/cookbook/src/main/java/examples/links/ apps/cookbook/src/main/java/...

Modified: struts/struts1/trunk/tiles/src/main/java/org/apache/struts/tiles/xmlDefinition/XmlParser.java
URL: http://svn.apache.org/viewvc/struts/struts1/trunk/tiles/src/main/java/org/apache/struts/tiles/xmlDefinition/XmlParser.java?view=diff&rev=471754&r1=471753&r2=471754
==============================================================================
--- struts/struts1/trunk/tiles/src/main/java/org/apache/struts/tiles/xmlDefinition/XmlParser.java (original)
+++ struts/struts1/trunk/tiles/src/main/java/org/apache/struts/tiles/xmlDefinition/XmlParser.java Mon Nov  6 06:55:09 2006
@@ -1,22 +1,24 @@
 /*
- * $Id$ 
+ * $Id$
  *
- * Copyright 1999-2004 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.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
 
-
 package org.apache.struts.tiles.xmlDefinition;
 
 import java.io.BufferedInputStream;
@@ -59,11 +61,11 @@
       */
   public XmlParser()
   {
-	digester = new Digester();
-	digester.setValidating(validating);
-	digester.setNamespaceAware(true);
-	digester.setUseContextClassLoader(true);
-	// Register our local copy of the DTDs that we can find
+    digester = new Digester();
+    digester.setValidating(validating);
+    digester.setNamespaceAware(true);
+    digester.setUseContextClassLoader(true);
+    // Register our local copy of the DTDs that we can find
   for (int i = 0; i < registrations.length; i += 2) {
       URL url = this.getClass().getResource(registrations[i+1]);
       if (url != null)
@@ -91,7 +93,7 @@
     */
   private void initDigesterForComponentsDefinitionsSyntax( Digester digester )
   {
-	 // Common constants
+     // Common constants
   String PACKAGE_NAME = "org.apache.struts.tiles.xmlDefinition";
   String DEFINITION_TAG = "component-definitions/definition";
   String definitionHandlerClass = PACKAGE_NAME + ".XmlDefinition";
@@ -105,25 +107,25 @@
   String ADD_LIST_ELE_TAG = LIST_TAG + "/add";
 
     // syntax rules
-	digester.addObjectCreate(  DEFINITION_TAG, definitionHandlerClass );
-	digester.addSetProperties( DEFINITION_TAG);
-	digester.addSetNext(       DEFINITION_TAG, "putDefinition", definitionHandlerClass);
+    digester.addObjectCreate(  DEFINITION_TAG, definitionHandlerClass );
+    digester.addSetProperties( DEFINITION_TAG);
+    digester.addSetNext(       DEFINITION_TAG, "putDefinition", definitionHandlerClass);
     // put / putAttribute rules
-	digester.addObjectCreate(  PUT_TAG, putAttributeHandlerClass);
-	digester.addSetNext(       PUT_TAG, "addAttribute", putAttributeHandlerClass);
-	digester.addSetProperties( PUT_TAG);
-	digester.addCallMethod(    PUT_TAG, "setBody", 0);
+    digester.addObjectCreate(  PUT_TAG, putAttributeHandlerClass);
+    digester.addSetNext(       PUT_TAG, "addAttribute", putAttributeHandlerClass);
+    digester.addSetProperties( PUT_TAG);
+    digester.addCallMethod(    PUT_TAG, "setBody", 0);
     // list rules
-	digester.addObjectCreate(  LIST_TAG, listHandlerClass);
-	digester.addSetProperties( LIST_TAG);
-	digester.addSetNext(       LIST_TAG, "addAttribute", putAttributeHandlerClass);
+    digester.addObjectCreate(  LIST_TAG, listHandlerClass);
+    digester.addSetProperties( LIST_TAG);
+    digester.addSetNext(       LIST_TAG, "addAttribute", putAttributeHandlerClass);
     // list elements rules
     // We use Attribute class to avoid rewriting a new class.
     // Name part can't be used in listElement attribute.
-	digester.addObjectCreate(  ADD_LIST_ELE_TAG, putAttributeHandlerClass);
-	digester.addSetNext(       ADD_LIST_ELE_TAG, "add", putAttributeHandlerClass);
-	digester.addSetProperties( ADD_LIST_ELE_TAG);
-	digester.addCallMethod(    ADD_LIST_ELE_TAG, "setBody", 0);
+    digester.addObjectCreate(  ADD_LIST_ELE_TAG, putAttributeHandlerClass);
+    digester.addSetNext(       ADD_LIST_ELE_TAG, "add", putAttributeHandlerClass);
+    digester.addSetProperties( ADD_LIST_ELE_TAG);
+    digester.addCallMethod(    ADD_LIST_ELE_TAG, "setBody", 0);
   }
 
    /**
@@ -133,7 +135,7 @@
     */
   private void initDigesterForTilesDefinitionsSyntax( Digester digester )
   {
-	 // Common constants
+     // Common constants
   String PACKAGE_NAME = "org.apache.struts.tiles.xmlDefinition";
   String DEFINITION_TAG = "tiles-definitions/definition";
   String definitionHandlerClass = PACKAGE_NAME + ".XmlDefinition";
@@ -150,37 +152,37 @@
   String ADD_LIST_ELE_TAG = "*/" + LIST_TAG + "/add";
 
     // syntax rules
-	digester.addObjectCreate(  DEFINITION_TAG, definitionHandlerClass );
-	digester.addSetProperties( DEFINITION_TAG);
-	digester.addSetNext(       DEFINITION_TAG, "putDefinition", definitionHandlerClass);
+    digester.addObjectCreate(  DEFINITION_TAG, definitionHandlerClass );
+    digester.addSetProperties( DEFINITION_TAG);
+    digester.addSetNext(       DEFINITION_TAG, "putDefinition", definitionHandlerClass);
     // put / putAttribute rules
     // Rules for a same pattern are called in order, but rule.end() are called
     // in reverse order.
     // SetNext and CallMethod use rule.end() method. So, placing SetNext in
     // first position ensure it will be called last (sic).
-	digester.addObjectCreate(  PUT_TAG, putAttributeHandlerClass);
-	digester.addSetNext(       PUT_TAG, "addAttribute", putAttributeHandlerClass);
-	digester.addSetProperties( PUT_TAG);
-	digester.addCallMethod(    PUT_TAG, "setBody", 0);
+    digester.addObjectCreate(  PUT_TAG, putAttributeHandlerClass);
+    digester.addSetNext(       PUT_TAG, "addAttribute", putAttributeHandlerClass);
+    digester.addSetProperties( PUT_TAG);
+    digester.addCallMethod(    PUT_TAG, "setBody", 0);
     // Definition level list rules
     // This is rules for lists nested in a definition
-	digester.addObjectCreate(  DEF_LIST_TAG, listHandlerClass);
-	digester.addSetProperties( DEF_LIST_TAG);
-	digester.addSetNext(       DEF_LIST_TAG, "addAttribute", putAttributeHandlerClass);
+    digester.addObjectCreate(  DEF_LIST_TAG, listHandlerClass);
+    digester.addSetProperties( DEF_LIST_TAG);
+    digester.addSetNext(       DEF_LIST_TAG, "addAttribute", putAttributeHandlerClass);
     // list elements rules
     // We use Attribute class to avoid rewriting a new class.
     // Name part can't be used in listElement attribute.
-	digester.addObjectCreate(  ADD_LIST_ELE_TAG, putAttributeHandlerClass);
-	digester.addSetNext(       ADD_LIST_ELE_TAG, "add", putAttributeHandlerClass);
-	digester.addSetProperties( ADD_LIST_ELE_TAG);
-	digester.addCallMethod(    ADD_LIST_ELE_TAG, "setBody", 0);
+    digester.addObjectCreate(  ADD_LIST_ELE_TAG, putAttributeHandlerClass);
+    digester.addSetNext(       ADD_LIST_ELE_TAG, "add", putAttributeHandlerClass);
+    digester.addSetProperties( ADD_LIST_ELE_TAG);
+    digester.addCallMethod(    ADD_LIST_ELE_TAG, "setBody", 0);
 
     // nested list elements rules
     // Create a list handler, and add it to parent list
   String NESTED_LIST = "*/" + LIST_TAG + "/" + LIST_TAG;
-	digester.addObjectCreate(  NESTED_LIST, listHandlerClass);
-	digester.addSetProperties( NESTED_LIST);
-	digester.addSetNext(       NESTED_LIST, "add", putAttributeHandlerClass);
+    digester.addObjectCreate(  NESTED_LIST, listHandlerClass);
+    digester.addSetProperties( NESTED_LIST);
+    digester.addSetNext(       NESTED_LIST, "add", putAttributeHandlerClass);
 
     // item elements rules
     // We use Attribute class to avoid rewriting a new class.
@@ -189,16 +191,16 @@
   // non String ADD_WILDCARD = LIST_TAG + "/addx*";
   String ADD_WILDCARD = "*/item";
   String menuItemDefaultClass = "org.apache.struts.tiles.beans.SimpleMenuItem";
-	digester.addObjectCreate(  ADD_WILDCARD, menuItemDefaultClass, "classtype");
-	digester.addSetNext(       ADD_WILDCARD, "add", "java.lang.Object");
-	digester.addSetProperties( ADD_WILDCARD);
+    digester.addObjectCreate(  ADD_WILDCARD, menuItemDefaultClass, "classtype");
+    digester.addSetNext(       ADD_WILDCARD, "add", "java.lang.Object");
+    digester.addSetProperties( ADD_WILDCARD);
 
     // bean elements rules
   String BEAN_TAG = "*/bean";
   String beanDefaultClass = "org.apache.struts.tiles.beans.SimpleMenuItem";
-	digester.addObjectCreate(  BEAN_TAG, beanDefaultClass, "classtype");
-	digester.addSetNext(       BEAN_TAG, "add", "java.lang.Object");
-	digester.addSetProperties( BEAN_TAG);
+    digester.addObjectCreate(  BEAN_TAG, beanDefaultClass, "classtype");
+    digester.addSetNext(       BEAN_TAG, "add", "java.lang.Object");
+    digester.addSetProperties( BEAN_TAG);
 
     // Set properties to surrounding element
   digester.addSetProperty(BEAN_TAG+ "/set-property", "property", "value");
@@ -212,7 +214,7 @@
     */
   private void initDigesterForInstancesSyntax( Digester digester )
   {
-    	// Build a digester to process our configuration resource
+        // Build a digester to process our configuration resource
   String PACKAGE_NAME = "org.apache.struts.tiles.xmlDefinition";
   String INSTANCE_TAG = "component-instances/instance";
   String instanceHandlerClass = PACKAGE_NAME + ".XmlDefinition";
@@ -227,27 +229,27 @@
   String ADD_LIST_ELE_TAG = LIST_TAG + "/add";
 
     // component instance rules
-	digester.addObjectCreate(  INSTANCE_TAG, instanceHandlerClass );
-	digester.addSetProperties( INSTANCE_TAG);
-	digester.addSetNext(       INSTANCE_TAG, "putDefinition", instanceHandlerClass);
+    digester.addObjectCreate(  INSTANCE_TAG, instanceHandlerClass );
+    digester.addSetProperties( INSTANCE_TAG);
+    digester.addSetNext(       INSTANCE_TAG, "putDefinition", instanceHandlerClass);
     // put / putAttribute rules
-	digester.addObjectCreate(  PUTATTRIBUTE_TAG, putAttributeHandlerClass);
-	digester.addSetProperties( PUTATTRIBUTE_TAG);
-	digester.addSetNext(       PUTATTRIBUTE_TAG, "addAttribute", putAttributeHandlerClass);
+    digester.addObjectCreate(  PUTATTRIBUTE_TAG, putAttributeHandlerClass);
+    digester.addSetProperties( PUTATTRIBUTE_TAG);
+    digester.addSetNext(       PUTATTRIBUTE_TAG, "addAttribute", putAttributeHandlerClass);
     // put / putAttribute rules
-	digester.addObjectCreate(  PUT_TAG, putAttributeHandlerClass);
-	digester.addSetProperties( PUT_TAG);
-	digester.addSetNext(       PUT_TAG, "addAttribute", putAttributeHandlerClass);
+    digester.addObjectCreate(  PUT_TAG, putAttributeHandlerClass);
+    digester.addSetProperties( PUT_TAG);
+    digester.addSetNext(       PUT_TAG, "addAttribute", putAttributeHandlerClass);
     // list rules
-	digester.addObjectCreate(  LIST_TAG, listHandlerClass);
-	digester.addSetProperties( LIST_TAG);
-	digester.addSetNext(       LIST_TAG, "addAttribute", putAttributeHandlerClass);
+    digester.addObjectCreate(  LIST_TAG, listHandlerClass);
+    digester.addSetProperties( LIST_TAG);
+    digester.addSetNext(       LIST_TAG, "addAttribute", putAttributeHandlerClass);
     // list elements rules
     // We use Attribute class to avoid rewriting a new class.
     // Name part can't be used in listElement attribute.
-	digester.addObjectCreate(  ADD_LIST_ELE_TAG, putAttributeHandlerClass);
-	digester.addSetProperties( ADD_LIST_ELE_TAG);
-	digester.addSetNext(       ADD_LIST_ELE_TAG, "add", putAttributeHandlerClass);
+    digester.addObjectCreate(  ADD_LIST_ELE_TAG, putAttributeHandlerClass);
+    digester.addSetProperties( ADD_LIST_ELE_TAG);
+    digester.addSetNext(       ADD_LIST_ELE_TAG, "add", putAttributeHandlerClass);
   }
 
    /**
@@ -270,20 +272,20 @@
    */
   public void parse( InputStream in, XmlDefinitionsSet definitions ) throws IOException, SAXException
   {
-	try
+    try
     {
       // set first object in stack
     //digester.clear();
     digester.push(definitions);
       // parse
-	  digester.parse(in);
-	  in.close();
-	  }
+      digester.parse(in);
+      in.close();
+      }
   catch (SAXException e)
     {
-	  //throw new ServletException( "Error while parsing " + mappingConfig, e);
+      //throw new ServletException( "Error while parsing " + mappingConfig, e);
     throw e;
-	  }
+      }
 
   }
 
@@ -311,9 +313,9 @@
     // Open file
     try
       {
-	    input = new BufferedInputStream(
+        input = new BufferedInputStream(
                              new FileInputStream( filename) );
-	//    input2 = new BufferedInputStream(
+    //    input2 = new BufferedInputStream(
           //                   new FileInputStream( filename2) );
       }
      catch( IOException ex )
@@ -323,7 +325,7 @@
     // Check file syntax
     try
       {
-	    XmlParser parser = new XmlParser();
+        XmlParser parser = new XmlParser();
       parser.setValidating(true);
       XmlDefinitionsSet definitions = new XmlDefinitionsSet();
         System.out.println( "  Parse file" );

Modified: struts/struts1/trunk/tiles/src/test/java/org/apache/struts/tiles/CustomI18nFactorySet.java
URL: http://svn.apache.org/viewvc/struts/struts1/trunk/tiles/src/test/java/org/apache/struts/tiles/CustomI18nFactorySet.java?view=diff&rev=471754&r1=471753&r2=471754
==============================================================================
--- struts/struts1/trunk/tiles/src/test/java/org/apache/struts/tiles/CustomI18nFactorySet.java (original)
+++ struts/struts1/trunk/tiles/src/test/java/org/apache/struts/tiles/CustomI18nFactorySet.java Mon Nov  6 06:55:09 2006
@@ -1,21 +1,23 @@
 /*
  * $Id$
  *
- * Copyright 2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
- * 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
  *
- *      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.
+ * 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.struts.tiles;
 

Modified: struts/struts1/trunk/tiles/src/test/java/org/apache/struts/tiles/TestTilesPlugin.java
URL: http://svn.apache.org/viewvc/struts/struts1/trunk/tiles/src/test/java/org/apache/struts/tiles/TestTilesPlugin.java?view=diff&rev=471754&r1=471753&r2=471754
==============================================================================
--- struts/struts1/trunk/tiles/src/test/java/org/apache/struts/tiles/TestTilesPlugin.java (original)
+++ struts/struts1/trunk/tiles/src/test/java/org/apache/struts/tiles/TestTilesPlugin.java Mon Nov  6 06:55:09 2006
@@ -1,50 +1,43 @@
 /*
- * $Id$ 
+ * $Id$
  *
- * Copyright 1999-2005 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.
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
 
-
 package org.apache.struts.tiles;
 
-
-import javax.servlet.ServletException;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Locale;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletRequest;
-import org.apache.commons.beanutils.BeanUtils;
-import org.apache.struts.Globals;
-import org.apache.struts.action.PlugIn;
 import org.apache.struts.config.ModuleConfig;
 import org.apache.struts.config.ModuleConfigFactory;
 import org.apache.struts.config.PlugInConfig;
 import org.apache.struts.mock.MockActionServlet;
 import org.apache.struts.mock.TestMockBase;
-import org.apache.struts.util.RequestUtils;
+import org.apache.struts.Globals;
 import org.apache.struts.tiles.xmlDefinition.I18nFactorySet;
+import org.apache.struts.util.RequestUtils;
+import org.apache.struts.action.PlugIn;
+import org.apache.commons.beanutils.BeanUtils;
+import junit.framework.Test;
+import junit.framework.TestSuite;
 
-/**
- * <p>Unit tests for <code>org.apache.struts.tiles.*</code>.</p>
- *
- * @version $Rev$ $Date$
- */
+import javax.servlet.ServletException;
+import java.util.Locale;
+import java.util.Map;
+import java.util.HashMap;
 
 public class TestTilesPlugin extends TestMockBase {
 
@@ -103,34 +96,34 @@
      * @param moduleName
      */
     public ModuleConfig createModuleConfig(
-    	String moduleName,
-    	String configFileName,
-    	boolean moduleAware) {
-            
-    	ModuleConfig moduleConfig =
-    		ModuleConfigFactory.createFactory().createModuleConfig(moduleName);
-            
-    	context.setAttribute(Globals.MODULE_KEY + moduleName, moduleConfig);
-    
-    	// Set tiles plugin
-    	PlugInConfig pluginConfig = new PlugInConfig();
-    	pluginConfig.setClassName("org.apache.struts.tiles.TilesPlugin");
-        
-    	pluginConfig.addProperty(
-    		"moduleAware",
-    		(moduleAware == true ? "true" : "false"));
-            
-    	pluginConfig.addProperty(
-    		"definitions-config",
-    		"/org/apache/struts/tiles/config/" + configFileName);
-            
-    	moduleConfig.addPlugInConfig(pluginConfig);
-    	return moduleConfig;
+        String moduleName,
+        String configFileName,
+        boolean moduleAware) {
+
+        ModuleConfig moduleConfig =
+            ModuleConfigFactory.createFactory().createModuleConfig(moduleName);
+
+        context.setAttribute(Globals.MODULE_KEY + moduleName, moduleConfig);
+
+        // Set tiles plugin
+        PlugInConfig pluginConfig = new PlugInConfig();
+        pluginConfig.setClassName("org.apache.struts.tiles.TilesPlugin");
+
+        pluginConfig.addProperty(
+            "moduleAware",
+            (moduleAware == true ? "true" : "false"));
+
+        pluginConfig.addProperty(
+            "definitions-config",
+            "/org/apache/struts/tiles/config/" + configFileName);
+
+        moduleConfig.addPlugInConfig(pluginConfig);
+        return moduleConfig;
     }
 
     /**
      * Fake call to init module plugins
-     * @param config
+     * @param moduleConfig
      */
   public void initModulePlugIns( ModuleConfig moduleConfig)
   {
@@ -141,7 +134,7 @@
   for (int i = 0; i < plugIns.length; i++) {
       try {
           plugIns[i] =
-              (PlugIn)RequestUtils.applicationInstance(plugInConfigs[i].getClassName());
+              (PlugIn) RequestUtils.applicationInstance(plugInConfigs[i].getClassName());
           BeanUtils.populate(plugIns[i], plugInConfigs[i].getProperties());
             // Pass the current plugIn config object to the PlugIn.
             // The property is set only if the plugin declares it.
@@ -166,39 +159,39 @@
      * Test multi factory creation when moduleAware=true.
      */
     public void testMultiFactory() {
-    	// init TilesPlugin
-    	module1 = createModuleConfig("/module1", "tiles-defs.xml", true);
-    	module2 = createModuleConfig("/module2", "tiles-defs.xml", true);
-    	initModulePlugIns(module1);
-    	initModulePlugIns(module2);
-    
-    	// mock request context
-    	request.setAttribute(Globals.MODULE_KEY, module1);
-    	request.setPathElements("/myapp", "/module1/foo.do", null, null);
-    	// Retrieve factory for module1
-    	DefinitionsFactory factory1 =
-    		TilesUtil.getDefinitionsFactory(request, context);
-            
-    	assertNotNull("factory found", factory1);
-    	assertEquals(
-    		"factory name",
-    		"/module1",
-    		factory1.getConfig().getFactoryName());
-    
-    	// mock request context
-    	request.setAttribute(Globals.MODULE_KEY, module2);
-    	request.setPathElements("/myapp", "/module2/foo.do", null, null);
-    	// Retrieve factory for module2
-    	DefinitionsFactory factory2 =
-    		TilesUtil.getDefinitionsFactory(request, context);
-    	assertNotNull("factory found", factory2);
-    	assertEquals(
-    		"factory name",
-    		"/module2",
-    		factory2.getConfig().getFactoryName());
-    
-    	// Check that factory are different
-    	assertNotSame("Factory from different modules", factory1, factory2);
+        // init TilesPlugin
+        module1 = createModuleConfig("/module1", "tiles-defs.xml", true);
+        module2 = createModuleConfig("/module2", "tiles-defs.xml", true);
+        initModulePlugIns(module1);
+        initModulePlugIns(module2);
+
+        // mock request context
+        request.setAttribute(Globals.MODULE_KEY, module1);
+        request.setPathElements("/myapp", "/module1/foo.do", null, null);
+        // Retrieve factory for module1
+        DefinitionsFactory factory1 =
+            TilesUtil.getDefinitionsFactory(request, context);
+
+        assertNotNull("factory found", factory1);
+        assertEquals(
+            "factory name",
+            "/module1",
+            factory1.getConfig().getFactoryName());
+
+        // mock request context
+        request.setAttribute(Globals.MODULE_KEY, module2);
+        request.setPathElements("/myapp", "/module2/foo.do", null, null);
+        // Retrieve factory for module2
+        DefinitionsFactory factory2 =
+            TilesUtil.getDefinitionsFactory(request, context);
+        assertNotNull("factory found", factory2);
+        assertEquals(
+            "factory name",
+            "/module2",
+            factory2.getConfig().getFactoryName());
+
+        // Check that factory are different
+        assertNotSame("Factory from different modules", factory1, factory2);
     }
 
     /**
@@ -379,7 +372,7 @@
    * just a variant being incorrectly displayed.
    */
   private String print(Locale locale) {
-         
+
       return locale.getLanguage() + "_" +
                 locale.getCountry() + "_" +
                 locale.getVariant();