Author: cziegeler
Date: Mon Oct 25 05:53:02 2004
New Revision: 55493
Modified:
cocoon/trunk/src/core/test/org/apache/cocoon/core/container/ContainerTestCase.java
cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java
Log:
Add some helper methods - not sure if they really help
Modified:
cocoon/trunk/src/core/test/org/apache/cocoon/core/container/ContainerTestCase.java
==============================================================================
---
cocoon/trunk/src/core/test/org/apache/cocoon/core/container/ContainerTestCase.java
(original)
+++
cocoon/trunk/src/core/test/org/apache/cocoon/core/container/ContainerTestCase.java
Mon Oct 25 05:53:02 2004
@@ -30,6 +30,7 @@
import org.apache.avalon.framework.context.DefaultContext;
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
@@ -121,6 +122,9 @@
/** The service manager to use */
private ServiceManager manager;
+ /** The context */
+ private Context context;
+
/** Return the logger */
protected Logger getLogger() {
return logger;
@@ -184,11 +188,10 @@
conf = new DefaultConfiguration("", "-");
}
- final Context context = this.setupContext( conf.getChild( "context" )
);
+ this.context = this.setupContext( conf.getChild( "context" ) );
this.setupManagers( conf.getChild( "components" ),
- conf.getChild( "roles" ),
- context );
+ conf.getChild( "roles" ));
}
/* (non-Javadoc)
@@ -259,8 +262,7 @@
}
final private void setupManagers( final Configuration confCM,
- final Configuration confRM,
- final Context context )
+ final Configuration confRM)
throws Exception {
// Setup the RoleManager
RoleManager roleManager = new RoleManager();
@@ -270,7 +272,7 @@
// Set up the ComponentLocator
CocoonServiceManager ecManager = new CocoonServiceManager(null, null);
ecManager.enableLogging( this.getLogger() );
- ecManager.contextualize( context );
+ ecManager.contextualize( this.context );
ecManager.setRoleManager( roleManager );
ecManager.setLoggerManager( new DefaultLoggerManager(this.logger));
ecManager.configure( confCM );
@@ -288,6 +290,35 @@
manager.release( object );
}
+ private Object getComponent(String classname,
+ Configuration conf,
+ Parameters p)
+ throws Exception {
+ final Object instance = Class.forName(classname).newInstance();
+ ContainerUtil.enableLogging(instance, getLogger());
+ ContainerUtil.contextualize(instance, this.context);
+ ContainerUtil.service(instance, getManager());
+ ContainerUtil.configure(instance, conf);
+ ContainerUtil.parameterize(instance, p);
+ ContainerUtil.initialize(instance);
+ return instance;
+ }
+
+ protected Object getComponent(String classname,
+ Configuration conf)
+ throws Exception {
+ return this.getComponent(classname, conf, null);
+ }
+
+ protected Object getComponent(String classname,
+ Parameters p)
+ throws Exception {
+ return this.getComponent(classname, null, p);
+ }
+
+ /**
+ * We use this simple logger manager that sends all output to the console
(logger)
+ */
protected static class DefaultLoggerManager implements LoggerManager {
private Logger logger;
Modified: cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java
==============================================================================
--- cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java
(original)
+++ cocoon/trunk/src/test/org/apache/cocoon/SitemapComponentTestCase.java
Mon Oct 25 05:53:02 2004
@@ -29,6 +29,7 @@
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
+import org.apache.avalon.framework.configuration.DefaultConfiguration;
import org.apache.avalon.framework.context.DefaultContext;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.service.ServiceException;
@@ -39,6 +40,8 @@
import org.apache.cocoon.components.flow.FlowHelper;
import org.apache.cocoon.components.flow.Interpreter;
import org.apache.cocoon.components.source.SourceResolverAdapter;
+import org.apache.cocoon.core.container.CocoonServiceManager;
+import org.apache.cocoon.core.container.CocoonServiceSelector;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.mock.MockContext;
import org.apache.cocoon.environment.mock.MockRedirector;
@@ -103,6 +106,9 @@
context.put(ContextHelper.CONTEXT_OBJECT_MODEL, objectmodel);
}
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
public void setUp() throws Exception {
super.setUp();
objectmodel.clear();
@@ -117,6 +123,38 @@
objectmodel.put(ObjectModelHelper.CONTEXT_OBJECT, context);
redirector.reset();
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.cocoon.core.container.ContainerTestCase#addComponents(org.apache.cocoon.core.container.CocoonServiceManager)
+ */
+ protected void addComponents(CocoonServiceManager manager)
+ throws ServiceException {
+ super.addComponents(manager);
+ final String[] o = this.getSitemapComponentInfo();
+ if ( o != null ) {
+ final String typeClassName = o[0];
+ final String componentClassName = o[1];
+ final String key = o[2];
+
+ // Create configuration for selector
+ final DefaultConfiguration df = new
DefaultConfiguration("transformers");
+ final DefaultConfiguration factory = new
DefaultConfiguration("component-instance");
+ factory.setAttribute("class", componentClassName);
+ factory.setAttribute("name", key);
+ df.addChild(factory);
+ manager.addComponent(typeClassName + "Selector",
+ CocoonServiceSelector.class,
+ df);
+ }
+ }
+
+ /**
+ * This triple can be used to add a sitemap component to the service
manager
+ * @return A triple of strings: class name of the type, class name of the
component, key
+ */
+ protected String[] getSitemapComponentInfo() {
+ return null;
}
/**