You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by tv...@apache.org on 2008/04/08 15:13:47 UTC
svn commit: r645898 - in /turbine/core/trunk:
src/java/org/apache/turbine/services/rundata/
src/test/org/apache/turbine/modules/ src/test/org/apache/turbine/util/parser/
src/test/org/apache/turbine/util/uri/ xdocs/
Author: tv
Date: Tue Apr 8 06:13:46 2008
New Revision: 645898
URL: http://svn.apache.org/viewvc?rev=645898&view=rev
Log:
Make sure that Turbine uses the ParserService to get correctly initialized parser objects. Change test cases to reflect this. Fixes TRB-39
Modified:
turbine/core/trunk/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
turbine/core/trunk/src/test/org/apache/turbine/modules/ActionLoaderTest.java
turbine/core/trunk/src/test/org/apache/turbine/util/parser/BaseValueParserTest.java
turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java
turbine/core/trunk/xdocs/changes.xml
Modified: turbine/core/trunk/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java?rev=645898&r1=645897&r2=645898&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/rundata/TurbineRunDataService.java Tue Apr 8 06:13:46 2008
@@ -46,6 +46,7 @@
import org.apache.fulcrum.parser.DefaultCookieParser;
import org.apache.fulcrum.parser.DefaultParameterParser;
import org.apache.fulcrum.parser.ParameterParser;
+import org.apache.fulcrum.parser.ParserService;
/**
* The RunData Service provides the implementations for RunData and
@@ -81,6 +82,9 @@
/** Private reference to the pool service for object recycling */
private PoolService pool = null;
+ /** Private reference to the parser service for parser recycling */
+ private ParserService parserService = null;
+
/**
* Constructs a RunData Service.
*/
@@ -147,12 +151,26 @@
catch (ServiceException se) {
throw new InitializationException("Problem looking up Pool Service:" + se);
}
+
if (pool == null)
{
throw new InitializationException("RunData Service requires"
+ " configured Pool Service!");
}
+ try {
+ parserService = (ParserService)acs.lookup(ParserService.ROLE);
+ }
+ catch (ServiceException se) {
+ throw new InitializationException("Problem looking up Parser Service:" + se);
+ }
+
+ if (parserService == null)
+ {
+ throw new InitializationException("RunData Service requires"
+ + " configured Parser Service!");
+ }
+
setInit(true);
}
@@ -218,14 +236,14 @@
TurbineRunData data;
try
{
- Class runDataClazz = Class.forName(cfg[0]);
- Class parameterParserClazz = Class.forName(cfg[1]);
- Class cookieParserClazz = Class.forName(cfg[2]);
+ Class runDataClazz = Class.forName(cfg[0]);
+ Class parameterParserClazz = Class.forName(cfg[1]);
+ Class cookieParserClazz = Class.forName(cfg[2]);
data = (TurbineRunData) pool.getInstance(runDataClazz);
- ParameterParser pp = (ParameterParser) pool.getInstance(parameterParserClazz);
+ ParameterParser pp = (ParameterParser) parserService.getParser(parameterParserClazz);
data.setParameterParser(pp);
- CookieParser cp = (CookieParser) pool.getInstance(cookieParserClazz);
+ CookieParser cp = (CookieParser) parserService.getParser(cookieParserClazz);
data.setCookieParser(cp);
// also copy data directly into pipelineData
pipelineDataMap.put(ParameterParser.class, pp);
@@ -243,6 +261,10 @@
{
throw new TurbineException("RunData configuration '" + key + "' is illegal", x);
}
+ catch (InstantiationException e)
+ {
+ throw new TurbineException("RunData configuration '" + key + "' is illegal", e);
+ }
// Set the request and response.
data.setRequest(req);
@@ -277,8 +299,8 @@
{
if (data instanceof TurbineRunData)
{
- pool.putInstance(((TurbineRunData) data).getParameterParser());
- pool.putInstance(((TurbineRunData) data).getCookieParser());
+ parserService.putParser(((TurbineRunData) data).getParameterParser());
+ parserService.putParser(((TurbineRunData) data).getCookieParser());
return pool.putInstance(data);
}
Modified: turbine/core/trunk/src/test/org/apache/turbine/modules/ActionLoaderTest.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/modules/ActionLoaderTest.java?rev=645898&r1=645897&r2=645898&view=diff
==============================================================================
--- turbine/core/trunk/src/test/org/apache/turbine/modules/ActionLoaderTest.java (original)
+++ turbine/core/trunk/src/test/org/apache/turbine/modules/ActionLoaderTest.java Tue Apr 8 06:13:46 2008
@@ -24,7 +24,6 @@
import java.util.Map;
import java.util.Vector;
-import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletResponse;
import junit.framework.Assert;
@@ -34,7 +33,6 @@
import org.apache.turbine.om.security.User;
import org.apache.turbine.pipeline.DefaultPipelineData;
import org.apache.turbine.pipeline.PipelineData;
-import org.apache.turbine.services.template.TemplateService;
import org.apache.turbine.test.BaseTestCase;
import org.apache.turbine.test.EnhancedMockHttpServletRequest;
import org.apache.turbine.test.EnhancedMockHttpSession;
@@ -54,13 +52,12 @@
*/
public class ActionLoaderTest extends BaseTestCase {
private static TurbineConfig tc = null;
- private static TemplateService ts = null;
private MockServletConfig config = null;
private EnhancedMockHttpServletRequest request = null;
private EnhancedMockHttpSession session = null;
private HttpServletResponse response = null;
- private static ServletConfig sc = null;
- /*
+
+ /*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
@@ -83,7 +80,6 @@
response = new MockHttpServletResponse();
session.setupGetAttribute(User.SESSION_KEY, null);
request.setSession(session);
- sc = config;
tc =
new TurbineConfig(
".",
Modified: turbine/core/trunk/src/test/org/apache/turbine/util/parser/BaseValueParserTest.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/util/parser/BaseValueParserTest.java?rev=645898&r1=645897&r2=645898&view=diff
==============================================================================
--- turbine/core/trunk/src/test/org/apache/turbine/util/parser/BaseValueParserTest.java (original)
+++ turbine/core/trunk/src/test/org/apache/turbine/util/parser/BaseValueParserTest.java Tue Apr 8 06:13:46 2008
@@ -23,13 +23,13 @@
import java.math.BigDecimal;
-import org.apache.commons.configuration.BaseConfiguration;
-import org.apache.commons.configuration.Configuration;
-import org.apache.turbine.services.ServiceManager;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.fulcrum.parser.BaseValueParser;
+import org.apache.fulcrum.parser.ParserService;
import org.apache.turbine.services.TurbineServices;
+import org.apache.turbine.services.avaloncomponent.AvalonComponentService;
import org.apache.turbine.test.BaseTestCase;
-import org.apache.fulcrum.parser.BaseValueParser;
-import org.apache.turbine.util.parser.ParserUtils;
+import org.apache.turbine.util.TurbineConfig;
/**
* Testing of the Fulcrum BaseValueParser class
@@ -41,6 +41,10 @@
{
private org.apache.fulcrum.parser.BaseValueParser parser;
+ private ParserService parserService;
+
+ private static TurbineConfig tc = null;
+
/**
* Constructor for test.
*
@@ -52,13 +56,11 @@
super(testName);
// Setup configuration
- ServiceManager serviceManager = TurbineServices.getInstance();
- serviceManager.setApplicationRoot(".");
- Configuration cfg = new BaseConfiguration();
- cfg.setProperty(ParserUtils.URL_CASE_FOLDING_KEY,
- ParserUtils.URL_CASE_FOLDING_LOWER_VALUE );
- serviceManager.setConfiguration(cfg);
-
+ tc =
+ new TurbineConfig(
+ ".",
+ "/conf/test/CompleteTurbineResources.properties");
+ tc.initialize();
}
/**
@@ -66,7 +68,22 @@
*/
protected void setUp()
{
- parser = new BaseValueParser();
+ AvalonComponentService acs =
+ (AvalonComponentService)TurbineServices.getInstance().getService(AvalonComponentService.SERVICE_NAME);
+
+ try
+ {
+ parserService = (ParserService)acs.lookup(ParserService.ROLE);
+ parser = (BaseValueParser) parserService.getParser(BaseValueParser.class);
+ }
+ catch (ServiceException e)
+ {
+ fail(e.getMessage());
+ }
+ catch (InstantiationException e)
+ {
+ fail(e.getMessage());
+ }
}
/**
@@ -74,6 +91,11 @@
*/
protected void tearDown()
{
+ if (tc != null)
+ {
+ tc.dispose();
+ }
+
parser = null;
}
Modified: turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java?rev=645898&r1=645897&r2=645898&view=diff
==============================================================================
--- turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java (original)
+++ turbine/core/trunk/src/test/org/apache/turbine/util/uri/TurbineURITest.java Tue Apr 8 06:13:46 2008
@@ -19,21 +19,19 @@
* under the License.
*/
-import org.apache.commons.configuration.BaseConfiguration;
-import org.apache.commons.configuration.Configuration;
-//import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-//import org.apache.commons.fileupload.FileItem;
+import org.apache.avalon.framework.service.ServiceException;
import org.apache.fulcrum.parser.DefaultParameterParser;
import org.apache.fulcrum.parser.ParameterParser;
-import org.apache.turbine.services.ServiceManager;
+import org.apache.fulcrum.parser.ParserService;
import org.apache.turbine.services.TurbineServices;
+import org.apache.turbine.services.avaloncomponent.AvalonComponentService;
import org.apache.turbine.test.BaseTestCase;
import org.apache.turbine.util.ServerData;
-import org.apache.turbine.util.parser.ParserUtils;
+import org.apache.turbine.util.TurbineConfig;
/**
* Testing of the TurbineURI class
- *
+ *
* @author <a href="mailto:quintonm@bellsouth.net">Quinton McCombs</a>
* @author <a href="mailto:seade@backstagetech.com.au">Scott Eade</a>
* @version $Id$
@@ -42,24 +40,26 @@
{
private TurbineURI turi;
+ private ParserService parserService;
+
+ private static TurbineConfig tc = null;
+
/**
* Constructor for test.
- *
- * @param testName name of the test being executed
+ *
+ * @param testName
+ * name of the test being executed
*/
- public TurbineURITest(String testName)
- throws Exception
+ public TurbineURITest(String testName) throws Exception
{
super(testName);
// Setup configuration
- ServiceManager serviceManager = TurbineServices.getInstance();
- serviceManager.setApplicationRoot(".");
- Configuration cfg = new BaseConfiguration();
- cfg.setProperty(ParserUtils.URL_CASE_FOLDING_KEY,
- ParserUtils.URL_CASE_FOLDING_LOWER_VALUE );
- serviceManager.setConfiguration(cfg);
-
+ tc =
+ new TurbineConfig(
+ ".",
+ "/conf/test/CompleteTurbineResources.properties");
+ tc.initialize();
}
/**
@@ -68,9 +68,22 @@
protected void setUp()
{
ServerData sd = new ServerData("www.testserver.com",
- URIConstants.HTTP_PORT, URIConstants.HTTP,
- "/servlet/turbine", "/context");
+ URIConstants.HTTP_PORT, URIConstants.HTTP, "/servlet/turbine",
+ "/context");
turi = new TurbineURI(sd);
+
+ AvalonComponentService acs =
+ (AvalonComponentService)TurbineServices.getInstance().getService(AvalonComponentService.SERVICE_NAME);
+
+ try
+ {
+ parserService = (ParserService)acs.lookup(ParserService.ROLE);
+ }
+ catch (ServiceException e)
+ {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
}
/**
@@ -78,29 +91,45 @@
*/
protected void tearDown()
{
+ if (tc != null)
+ {
+ tc.dispose();
+ }
+
turi = null;
}
-
public void testAddRemove()
{
- assertEquals("TurbineURI should not have a pathInfo", false, turi.hasPathInfo());
- assertEquals("TurbineURI must not have a queryData", false, turi.hasQueryData());
- turi.addPathInfo("test","x");
- assertEquals("TurbineURI must have a pathInfo", true, turi.hasPathInfo());
- assertEquals("TurbineURI must not have a queryData", false, turi.hasQueryData());
+ assertEquals("TurbineURI should not have a pathInfo", false, turi
+ .hasPathInfo());
+ assertEquals("TurbineURI must not have a queryData", false, turi
+ .hasQueryData());
+ turi.addPathInfo("test", "x");
+ assertEquals("TurbineURI must have a pathInfo", true, turi
+ .hasPathInfo());
+ assertEquals("TurbineURI must not have a queryData", false, turi
+ .hasQueryData());
turi.removePathInfo("test");
- assertEquals("TurbineURI must not have a pathInfo", false, turi.hasPathInfo());
- assertEquals("TurbineURI must not have a queryData", false, turi.hasQueryData());
-
- assertEquals("TurbineURI should not have a queryData", false, turi.hasQueryData());
- assertEquals("TurbineURI must not have a pathInfo", false, turi.hasPathInfo());
- turi.addQueryData("test","x");
- assertEquals("TurbineURI must have a queryData", true, turi.hasQueryData());
- assertEquals("TurbineURI must not have a pathInfo", false, turi.hasPathInfo());
+ assertEquals("TurbineURI must not have a pathInfo", false, turi
+ .hasPathInfo());
+ assertEquals("TurbineURI must not have a queryData", false, turi
+ .hasQueryData());
+
+ assertEquals("TurbineURI should not have a queryData", false, turi
+ .hasQueryData());
+ assertEquals("TurbineURI must not have a pathInfo", false, turi
+ .hasPathInfo());
+ turi.addQueryData("test", "x");
+ assertEquals("TurbineURI must have a queryData", true, turi
+ .hasQueryData());
+ assertEquals("TurbineURI must not have a pathInfo", false, turi
+ .hasPathInfo());
turi.removeQueryData("test");
- assertEquals("TurbineURI must not have a queryData", false, turi.hasQueryData());
- assertEquals("TurbineURI must not have a pathInfo", false, turi.hasPathInfo());
+ assertEquals("TurbineURI must not have a queryData", false, turi
+ .hasQueryData());
+ assertEquals("TurbineURI must not have a pathInfo", false, turi
+ .hasPathInfo());
}
public void testEmptyAndNullQueryData()
@@ -114,7 +143,8 @@
// Check null
assertEquals("/context/servlet/turbine", turi.getRelativeLink());
turi.addQueryData("test", null);
- assertEquals("/context/servlet/turbine?test=null", turi.getRelativeLink());
+ assertEquals("/context/servlet/turbine?test=null", turi
+ .getRelativeLink());
turi.removeQueryData("test");
assertEquals("/context/servlet/turbine", turi.getRelativeLink());
}
@@ -131,7 +161,8 @@
// Check null
assertEquals("/context/servlet/turbine", turi.getRelativeLink());
turi.addPathInfo("test", null);
- assertEquals("/context/servlet/turbine/test/null", turi.getRelativeLink());
+ assertEquals("/context/servlet/turbine/test/null", turi
+ .getRelativeLink());
turi.removePathInfo("test");
assertEquals("/context/servlet/turbine", turi.getRelativeLink());
}
@@ -141,38 +172,46 @@
ParameterParser pp = new DefaultParameterParser();
turi.add(1, pp); // 1 = query data
assertEquals("/context/servlet/turbine", turi.getRelativeLink());
-}
- public void testAddParameterParser()
+ }
+
+ public void testAddParameterParser() throws InstantiationException
{
- ParameterParser pp = new DefaultParameterParser();
+ ParameterParser pp = (ParameterParser) parserService.getParser(DefaultParameterParser.class);
pp.add("test", "");
turi.add(1, pp); // 1 = query data
assertEquals("/context/servlet/turbine?test=", turi.getRelativeLink());
turi.removeQueryData("test");
assertEquals("/context/servlet/turbine", turi.getRelativeLink());
-
- pp = new DefaultParameterParser();
+
+ parserService.putParser(pp);
+ pp = (ParameterParser) parserService.getParser(DefaultParameterParser.class);
pp.add("test", (String) null);
turi.add(1, pp); // 1 = query data
- // Should make the following work so as to be consistent with directly added values.
- //assertEquals("/context/servlet/turbine?test=null", turi.getRelativeLink());
+ // Should make the following work so as to be consistent with directly
+ // added values.
+ // assertEquals("/context/servlet/turbine?test=null",
+ // turi.getRelativeLink());
turi.removeQueryData("test");
assertEquals("/context/servlet/turbine", turi.getRelativeLink());
// TRB-8
//
// This is commented out for now as it results in a ClassCastException.
- // The 2_3 branch parser changes need to be merged into the fulcrum code.
+ // The 2_3 branch parser changes need to be merged into the fulcrum
+ // code.
//
- //pp = new DefaultParameterParser();
- //DiskFileItemFactory factory = new DiskFileItemFactory(10240, null);
- //FileItem test = factory.createItem("upload-field", "application/octet-stream", false, null);
- //pp.append("upload-field", test);
- //// The following causes a ClassCastException with or without the TRB-8 fix.
- //turi.add(1, pp); // 1 = query data
- //assertEquals("/context/servlet/turbine?upload-field=", turi.getRelativeLink());
- //turi.removeQueryData("upload-field");
- //assertEquals("/context/servlet/turbine", turi.getRelativeLink());
+ // pp = new DefaultParameterParser();
+ // DiskFileItemFactory factory = new DiskFileItemFactory(10240, null);
+ // FileItem test = factory.createItem("upload-field",
+ // "application/octet-stream", false, null);
+ // pp.append("upload-field", test);
+ // // The following causes a ClassCastException with or without the
+ // TRB-8 fix.
+ // turi.add(1, pp); // 1 = query data
+ // assertEquals("/context/servlet/turbine?upload-field=",
+ // turi.getRelativeLink());
+ // turi.removeQueryData("upload-field");
+ // assertEquals("/context/servlet/turbine", turi.getRelativeLink());
}
}
Modified: turbine/core/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/turbine/core/trunk/xdocs/changes.xml?rev=645898&r1=645897&r2=645898&view=diff
==============================================================================
--- turbine/core/trunk/xdocs/changes.xml (original)
+++ turbine/core/trunk/xdocs/changes.xml Tue Apr 8 06:13:46 2008
@@ -25,6 +25,10 @@
<body>
<release version="2.4-M2" date="in Subversion">
+ <action type="update" dev="tv" issue="TRB-39">
+ Make sure that Turbine uses the ParserService to get
+ correctly initialized parser objects.
+ </action>
<action type="fix" dev="seade">
Added missing format() methods to LocalizationTool.
</action>