You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2004/10/21 22:36:34 UTC
svn commit: rev 55257 - in cocoon/trunk: src/blocks/python/java/org/apache/cocoon/components/language/markup/xsp src/blocks/python/java/org/apache/cocoon/components/language/programming/python src/blocks/xsp/java/org/apache/cocoon/acting src/blocks/xsp/java/org/apache/cocoon/components/language/generator src/blocks/xsp/java/org/apache/cocoon/components/language/markup src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp src/blocks/xsp/java/org/apache/cocoon/components/language/programming src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript src/blocks/xsp/java/org/apache/cocoon/components/xscript src/blocks/xsp/java/org/apache/cocoon/generation src/core/java/org/apache/cocoon/components src/core/java/org/apache/cocoon/components/container src/core/java/org/apache/cocoon/core/container src/java/org/apache/cocoon src/java/org/apache/cocoon/components src/java/org/apache/cocoon/components/container src/java/org/apache/cocoon/components/treeprocessor/sitemap src/java/org/apache/cocoon/generation tools/targets
Author: cziegeler
Date: Thu Oct 21 13:36:33 2004
New Revision: 55257
Added:
cocoon/trunk/src/java/org/apache/cocoon/components/ChainedConfiguration.java
- copied unchanged from rev 55255, cocoon/trunk/src/core/java/org/apache/cocoon/components/ChainedConfiguration.java
cocoon/trunk/src/java/org/apache/cocoon/components/SitemapConfigurable.java
- copied unchanged from rev 55255, cocoon/trunk/src/core/java/org/apache/cocoon/components/SitemapConfigurable.java
cocoon/trunk/src/java/org/apache/cocoon/components/SitemapConfigurationHolder.java
- copied unchanged from rev 55255, cocoon/trunk/src/core/java/org/apache/cocoon/components/SitemapConfigurationHolder.java
cocoon/trunk/src/java/org/apache/cocoon/components/container/CocoonServiceManager.java
cocoon/trunk/src/java/org/apache/cocoon/components/container/DefaultSitemapConfigurationHolder.java
- copied unchanged from rev 55255, cocoon/trunk/src/core/java/org/apache/cocoon/components/container/DefaultSitemapConfigurationHolder.java
Removed:
cocoon/trunk/src/core/java/org/apache/cocoon/components/ChainedConfiguration.java
cocoon/trunk/src/core/java/org/apache/cocoon/components/SitemapConfigurable.java
cocoon/trunk/src/core/java/org/apache/cocoon/components/SitemapConfigurationHolder.java
cocoon/trunk/src/core/java/org/apache/cocoon/components/container/
Modified:
cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/markup/xsp/PythonGenerator.java
cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/CompiledComponent.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/ProgramGenerator.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/MarkupLanguage.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/SOAPHelper.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPGenerator.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPUtil.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/LanguageCompiler.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/Program.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/ProgrammingLanguage.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/xscript/XScriptManagerImpl.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/generation/AbstractServerPage.java
cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/generation/ServerPagesGenerator.java
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java
cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java
cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java
cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
cocoon/trunk/src/java/org/apache/cocoon/generation/ServletGenerator.java
cocoon/trunk/tools/targets/compile-build.xml
Log:
Make compilable standalone
Start refactoring XSP - at least it compiles
Modified: cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/markup/xsp/PythonGenerator.java
==============================================================================
--- cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/markup/xsp/PythonGenerator.java (original)
+++ cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/markup/xsp/PythonGenerator.java Thu Oct 21 13:36:33 2004
@@ -43,7 +43,7 @@
* written in Python language
*
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
- * @version CVS $Id: PythonGenerator.java,v 1.4 2004/03/05 13:02:20 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class PythonGenerator extends XSPGenerator
implements Configurable, Initializable {
@@ -59,6 +59,9 @@
private Exception compileError;
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
+ */
public void configure(Configuration configuration) throws ConfigurationException {
this.file = new File(configuration.getChild("file").getValue());
@@ -89,6 +92,9 @@
return false;
}
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.activity.Initializable#initialize()
+ */
public void initialize() throws Exception {
try {
Properties properties = new Properties();
@@ -116,6 +122,9 @@
}
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.sitemap.SitemapModelComponent#setup(org.apache.cocoon.environment.SourceResolver, java.util.Map, java.lang.String, org.apache.avalon.framework.parameters.Parameters)
+ */
public void setup(SourceResolver resolver, Map objectModel, String src, Parameters par)
throws ProcessingException, SAXException, IOException {
super.setup(resolver, objectModel, src, par);
@@ -132,6 +141,9 @@
python.set("parameters", this.parameters);
}
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.generation.Generator#generate()
+ */
public void generate() throws IOException, ProcessingException {
try {
python.set("contentHandler", this.contentHandler);
@@ -145,6 +157,9 @@
}
}
+ /* (non-Javadoc)
+ * @see org.apache.avalon.excalibur.pool.Recyclable#recycle()
+ */
public void recycle() {
python.set("contentHandler", null);
@@ -158,6 +173,9 @@
super.recycle();
}
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.activity.Disposable#dispose()
+ */
public void dispose() {
python.set("page", null);
python.set("logger", null);
Modified: cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java
==============================================================================
--- cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java (original)
+++ cocoon/trunk/src/blocks/python/java/org/apache/cocoon/components/language/programming/python/PythonProgram.java Thu Oct 21 13:36:33 2004
@@ -17,15 +17,12 @@
import org.apache.avalon.framework.configuration.DefaultConfiguration;
import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.context.Context;
-
-import org.apache.avalon.excalibur.component.ComponentHandler;
-import org.apache.avalon.excalibur.component.RoleManager;
-import org.apache.avalon.excalibur.component.LogkitLoggerManager;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.components.language.programming.Program;
import org.apache.cocoon.components.language.generator.CompiledComponent;
+import org.apache.cocoon.core.container.AbstractComponentHandler;
import java.io.File;
import java.util.Collection;
@@ -35,7 +32,7 @@
* This class represents program in the Python language.
*
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
- * @version CVS $Id: PythonProgram.java,v 1.4 2004/03/05 13:02:20 bdelacretaz Exp $
+ * @version CVS $Id$
*/
public class PythonProgram implements Program {
@@ -63,14 +60,12 @@
return file.toString();
}
- public ComponentHandler getHandler(ComponentManager manager,
- Context context,
- RoleManager roles,
- LogkitLoggerManager logKitManager)
+ public AbstractComponentHandler getHandler(ServiceManager manager,
+ Context context)
throws Exception {
- return ComponentHandler.getComponentHandler(
- clazz, config, manager, context, roles, logKitManager, null, "N/A");
+ return AbstractComponentHandler.getComponentHandler(
+ clazz, config, manager, context, null, null, null);
}
public CompiledComponent newInstance() throws Exception {
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/acting/ServerPagesAction.java Thu Oct 21 13:36:33 2004
@@ -19,19 +19,15 @@
import java.util.Map;
import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.avalon.excalibur.component.ComponentHandler;
-
import org.apache.cocoon.components.sax.XMLByteStreamCompiler;
import org.apache.cocoon.components.sax.XMLByteStreamFragment;
+import org.apache.cocoon.core.container.AbstractComponentHandler;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Redirector;
import org.apache.cocoon.environment.Request;
@@ -76,43 +72,31 @@
* @version CVS $Id$
*/
public class ServerPagesAction
- extends AbstractAction
- implements Disposable, ThreadSafe, Configurable, Composable {
+ extends ServiceableAction
+ implements Disposable, ThreadSafe, Configurable {
public static final String REDIRECTOR_OBJECT = "xsp-action:redirector";
public static final String ACTION_RESULT_OBJECT = "xsp-action:result";
public static final String ACTION_SUCCESS_OBJECT = "xsp-action:success";
- private ComponentHandler generatorHandler;
-
- /** The component manager instance */
- private ComponentManager manager;
+ private AbstractComponentHandler generatorHandler;
/* (non-Javadoc)
- * @see org.apache.avalon.framework.component.Composable#compose(org.apache.avalon.framework.component.ComponentManager)
- */
- public void compose(ComponentManager manager) throws ComponentException {
- this.manager=manager;
- }
-
- /* (non-Javadoc)
* @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
*/
public void configure(Configuration conf)
throws ConfigurationException {
try {
- this.generatorHandler = ComponentHandler.getComponentHandler(
+ this.generatorHandler = AbstractComponentHandler.getComponentHandler(
ServerPagesGenerator.class,
conf,
this.manager,
- null, // Context
- null, // RoleManager
- null, // LogkitLoggerManager
- null, // InstrumentManager
- "N/A" // instrumentableName
+ null, // Context
+ this.getLogger(),
+ null, // LoggerManager
+ null // RoleManager
);
- this.generatorHandler.enableLogging(getLogger());
this.generatorHandler.initialize();
} catch(Exception e) {
@@ -152,8 +136,6 @@
XMLByteStreamCompiler compiler = null;
try {
- generator.enableLogging(getLogger());
- generator.compose(this.manager);
generator.setup(resolver, objectModel, source, parameters);
// Setup generator output
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/CompiledComponent.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/CompiledComponent.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/CompiledComponent.java Thu Oct 21 13:36:33 2004
@@ -15,16 +15,13 @@
*/
package org.apache.cocoon.components.language.generator;
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.component.Composable;
import org.apache.cocoon.Modifiable;
/**
- * This interface is the common base of all Compiled Components. This
- * includes Sitemaps and XSP Pages
+ * This interface is the common base of all XSP Pages
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
- * @version CVS $Id: CompiledComponent.java,v 1.1 2004/03/10 12:58:04 stephan Exp $
+ * @version CVS $Id$
*/
-public interface CompiledComponent extends Component, Composable, Modifiable {
+public interface CompiledComponent extends Modifiable {
}
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/GeneratorSelector.java Thu Oct 21 13:36:33 2004
@@ -15,27 +15,18 @@
*/
package org.apache.cocoon.components.language.generator;
-import org.apache.avalon.excalibur.component.ComponentHandler;
-import org.apache.avalon.excalibur.component.ExcaliburComponentSelector;
-import org.apache.avalon.excalibur.component.LogkitLoggerManager;
-import org.apache.avalon.excalibur.component.RoleManager;
-import org.apache.avalon.excalibur.logger.LogKitManager;
-import org.apache.avalon.excalibur.logger.LoggerManager;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.Constants;
import org.apache.cocoon.components.classloader.ClassLoaderManager;
import org.apache.cocoon.components.language.programming.Program;
+import org.apache.cocoon.core.container.AbstractComponentHandler;
+import org.apache.cocoon.core.container.CocoonServiceSelector;
import java.io.File;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
/**
* This interface is the common base of all Compiled Components. This
@@ -43,96 +34,58 @@
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
- * @version CVS $Id: GeneratorSelector.java,v 1.2 2004/06/03 12:38:54 vgritsenko Exp $
+ * @version CVS $Id$
*/
-public class GeneratorSelector extends ExcaliburComponentSelector implements Disposable {
+public class GeneratorSelector
+extends CocoonServiceSelector {
public static String ROLE = "org.apache.cocoon.components.language.generator.ServerPages";
- private ClassLoaderManager classManager;
-
- /** The component manager */
- protected ComponentManager manager;
-
- private LogkitLoggerManager logKitManager;
-
- protected Context context;
-
- protected RoleManager roles;
-
- protected Map componentHandlers = new HashMap();
-
- /** Dynamic component handlers mapping. */
- private Map componentMapping = new HashMap();
-
-
- public void contextualize(Context context) {
- super.contextualize(context);
- this.context = context;
- }
-
- public void setRoleManager(RoleManager roleMgr) {
- super.setRoleManager(roleMgr);
- this.roles = roleMgr;
- }
-
- /**
- * Configure the LogKitManager
- */
- public void setLogKitManager( final LogKitManager logkit ) {
- super.setLogKitManager(logkit);
- if (null == this.logKitManager) {
- this.logKitManager = new LogkitLoggerManager( null, logkit );
- }
- }
-
- /**
- * Configure the LoggerManager.
+ protected ClassLoaderManager classManager;
+
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
*/
- public void setLoggerManager( final LoggerManager logkit ) {
- super.setLoggerManager(logkit);
- if (null == this.logKitManager) {
- this.logKitManager = new LogkitLoggerManager( logkit, null );
- }
- }
+ public void service(ServiceManager manager)
+ throws ServiceException {
+ super.service(manager);
- public void compose (ComponentManager manager) throws ComponentException {
- super.compose(manager);
- this.manager = manager;
+ this.classManager = (ClassLoaderManager) manager.lookup(ClassLoaderManager.ROLE);
try {
- this.classManager = (ClassLoaderManager) manager.lookup(ClassLoaderManager.ROLE);
- } catch (ComponentException cme) {
- throw new ComponentException(ClassLoaderManager.ROLE, "GeneratorSelector", cme);
- }
-
- try {
- this.classManager.addDirectory((File) this.m_context.get(Constants.CONTEXT_WORK_DIR));
+ this.classManager.addDirectory((File) this.context.get(Constants.CONTEXT_WORK_DIR));
} catch (Exception e) {
- throw new ComponentException(ROLE, "Could not add repository to ClassLoaderManager", e);
+ throw new ServiceException(ROLE, "Could not add repository to ClassLoaderManager", e);
}
}
- public Component select(Object hint) throws ComponentException {
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.service.ServiceSelector#select(java.lang.Object)
+ */
+ public Object select(Object hint) throws ServiceException {
- ComponentHandler handler = (ComponentHandler) this.componentHandlers.get(hint);
+ AbstractComponentHandler handler = (AbstractComponentHandler) this.componentHandlers.get(hint);
if (handler == null) {
- throw new ComponentException(ROLE, "Could not find component for hint: " + hint);
+ throw new ServiceException(ROLE, "Could not find component for hint: " + hint);
}
try {
- Component component = handler.get();
+ Object component = handler.get();
componentMapping.put(component, handler);
return component;
} catch (Exception ce) {
- if (getLogger().isDebugEnabled())
+ if (getLogger().isDebugEnabled()) {
getLogger().debug("Could not access component for hint: " + hint, ce);
- throw new ComponentException(ROLE, "Could not access component for hint: " + hint, ce);
+ }
+ throw new ServiceException(ROLE, "Could not access component for hint: " + hint, ce);
}
}
- public void release(Component component) {
- ComponentHandler handler = (ComponentHandler)componentMapping.remove(component);
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.service.ServiceSelector#release(java.lang.Object)
+ */
+ public void release(Object component) {
+ AbstractComponentHandler handler = (AbstractComponentHandler)componentMapping.remove(component);
if (handler != null) {
try {
handler.put(component);
@@ -142,13 +95,12 @@
}
}
- public void addGenerator(ComponentManager newManager,
+ public void addGenerator(ServiceManager newManager,
Object hint, Program generator)
- throws Exception {
+ throws Exception {
try {
- final ComponentHandler handler =
- generator.getHandler(newManager, this.context, this.roles, this.logKitManager);
- handler.enableLogging(getLogger());
+ final AbstractComponentHandler handler =
+ generator.getHandler(newManager, this.context );
handler.initialize();
this.componentHandlers.put(hint, handler);
if (getLogger().isDebugEnabled()) {
@@ -164,7 +116,7 @@
}
public void removeGenerator(Object hint) {
- ComponentHandler handler = (ComponentHandler) this.componentHandlers.remove(hint);
+ AbstractComponentHandler handler = (AbstractComponentHandler) this.componentHandlers.remove(hint);
if (handler != null) {
handler.dispose();
this.classManager.reinstantiate();
@@ -174,8 +126,11 @@
}
}
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.activity.Disposable#dispose()
+ */
public void dispose() {
- this.manager.release(this.classManager);
+ this.serviceManager.release(this.classManager);
synchronized(this) {
Iterator keys = this.componentHandlers.keySet().iterator();
@@ -183,8 +138,8 @@
while(keys.hasNext()) {
Object key = keys.next();
- ComponentHandler handler =
- (ComponentHandler)this.componentHandlers.get(key);
+ AbstractComponentHandler handler =
+ (AbstractComponentHandler)this.componentHandlers.get(key);
handler.dispose();
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/ProgramGenerator.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/ProgramGenerator.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/ProgramGenerator.java Thu Oct 21 13:36:33 2004
@@ -15,10 +15,9 @@
*/
package org.apache.cocoon.components.language.generator;
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.component.ComponentManager;
import org.apache.excalibur.source.Source;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.environment.SourceResolver;
/**
@@ -26,9 +25,9 @@
* documents written in a <code>MarkupLanguage</code>
*
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
- * @version CVS $Id: ProgramGenerator.java,v 1.1 2004/03/10 12:58:04 stephan Exp $
+ * @version CVS $Id$
*/
-public interface ProgramGenerator extends Component {
+public interface ProgramGenerator {
String ROLE = ProgramGenerator.class.getName();
@@ -47,7 +46,7 @@
* @deprecated Pass Source object instead of file name.
*/
CompiledComponent load(
- ComponentManager newManager,
+ ServiceManager newManager,
String fileName,
String markupLanguage,
String programmingLanguage,
@@ -67,7 +66,7 @@
* @exception Exception If an error occurs during generation or loading
*/
CompiledComponent load(
- ComponentManager newManager,
+ ServiceManager newManager,
Source source,
String markupLanguage,
String programmingLanguage,
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java Thu Oct 21 13:36:33 2004
@@ -16,11 +16,6 @@
package org.apache.cocoon.components.language.generator;
import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.ComponentSelector;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.component.Recomposable;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
@@ -28,6 +23,10 @@
import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.parameters.Parameterizable;
import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.ServiceSelector;
+import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.Constants;
import org.apache.cocoon.ProcessingException;
@@ -53,10 +52,10 @@
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
* @author <a href="mailto:tcurdt@apache.org">Torsten Curdt</a>
- * @version CVS $Id: ProgramGeneratorImpl.java,v 1.3 2004/07/12 13:29:57 antonio Exp $
+ * @version CVS $Id$
*/
public class ProgramGeneratorImpl extends AbstractLogEnabled
- implements ProgramGenerator, Contextualizable, Composable, Parameterizable,
+ implements ProgramGenerator, Contextualizable, Serviceable, Parameterizable,
Disposable, ThreadSafe {
/** The auto-reloading option */
@@ -75,13 +74,13 @@
protected GeneratorSelector cache;
/** The component manager */
- protected ComponentManager manager;
+ protected ServiceManager manager;
/** The markup language component selector */
- protected ComponentSelector markupSelector;
+ protected ServiceSelector markupSelector;
/** The programming language component selector */
- protected ComponentSelector languageSelector;
+ protected ServiceSelector languageSelector;
/** The working directory */
protected File workDir;
@@ -133,12 +132,12 @@
* and programming languages.
* @param manager The global component manager
*/
- public void compose(ComponentManager manager) throws ComponentException {
+ public void service(ServiceManager manager) throws ServiceException {
if (this.manager == null && manager != null) {
this.manager = manager;
this.cache = (GeneratorSelector) this.manager.lookup(GeneratorSelector.ROLE + "Selector");
- this.markupSelector = (ComponentSelector)this.manager.lookup(MarkupLanguage.ROLE + "Selector");
- this.languageSelector = (ComponentSelector)this.manager.lookup(ProgrammingLanguage.ROLE + "Selector");
+ this.markupSelector = (ServiceSelector)this.manager.lookup(MarkupLanguage.ROLE + "Selector");
+ this.languageSelector = (ServiceSelector)this.manager.lookup(ProgrammingLanguage.ROLE + "Selector");
this.classManager = (ClassLoaderManager)this.manager.lookup(ClassLoaderManager.ROLE);
}
}
@@ -182,7 +181,7 @@
* @exception Exception If an error occurs during generation or loading
* @deprecated Pass Source object instead of file name.
*/
- public CompiledComponent load(ComponentManager newManager,
+ public CompiledComponent load(ServiceManager newManager,
String fileName,
String markupLanguageName,
String programmingLanguageName,
@@ -209,7 +208,7 @@
* @return The loaded program instance
* @exception Exception If an error occurs during generation or loading
*/
- public CompiledComponent load(ComponentManager newManager,
+ public CompiledComponent load(ServiceManager newManager,
Source source,
String markupLanguageName,
String programmingLanguageName,
@@ -367,22 +366,14 @@
}
}
- // Recompose with the new manager if program needs it.
- // This is required to provide XSP with manager from the correct
- // sitemap so it will be able to find all components declared in
- // the sitemap.
- if (programInstance instanceof Recomposable) {
- ((Recomposable) programInstance).recompose(newManager);
- }
-
- return (programInstance);
+ return programInstance;
} finally {
this.markupSelector.release(markupLanguage);
this.languageSelector.release(programmingLanguage);
}
}
- private CompiledComponent loadProgram(ComponentManager newManager,
+ private CompiledComponent loadProgram(ServiceManager newManager,
String normalizedName,
MarkupLanguage markupLanguage,
ProgrammingLanguage programmingLanguage)
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/MarkupLanguage.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/MarkupLanguage.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/MarkupLanguage.java Thu Oct 21 13:36:33 2004
@@ -15,7 +15,6 @@
*/
package org.apache.cocoon.components.language.markup;
-import org.apache.avalon.framework.component.Component;
import org.apache.cocoon.components.language.programming.ProgrammingLanguage;
import org.apache.excalibur.source.Source;
@@ -26,9 +25,9 @@
*
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
- * @version CVS $Id: MarkupLanguage.java,v 1.1 2004/03/10 12:58:04 stephan Exp $
+ * @version CVS $Id$
*/
-public interface MarkupLanguage extends Component {
+public interface MarkupLanguage {
String ROLE = MarkupLanguage.class.getName();
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/SOAPHelper.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/SOAPHelper.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/SOAPHelper.java Thu Oct 21 13:36:33 2004
@@ -15,8 +15,8 @@
*/
package org.apache.cocoon.components.language.markup.xsp;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.components.xscript.XScriptManager;
import org.apache.cocoon.components.xscript.XScriptObject;
@@ -38,7 +38,7 @@
*
* @author <a href="mailto:ovidiu@cup.hp.com">Ovidiu Predescu</a>
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
- * @version CVS $Id: SOAPHelper.java,v 1.1 2004/03/10 12:58:05 stephan Exp $
+ * @version CVS $Id$
* @since July 16, 2001
*/
public class SOAPHelper {
@@ -48,9 +48,9 @@
XScriptObject xscriptObject;
String authorization = "";
- public SOAPHelper(ComponentManager manager, String urlContext, String url,
+ public SOAPHelper(ServiceManager manager, String urlContext, String url,
String action, String authorization, XScriptObject xscriptObject)
- throws MalformedURLException, ComponentException
+ throws MalformedURLException, ServiceException
{
this.xscriptManager = (XScriptManager) manager.lookup(XScriptManager.ROLE);
URL context = new URL(urlContext);
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPGenerator.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPGenerator.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPGenerator.java Thu Oct 21 13:36:33 2004
@@ -15,7 +15,6 @@
*/
package org.apache.cocoon.components.language.markup.xsp;
-import org.apache.avalon.excalibur.pool.Recyclable;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
@@ -27,10 +26,13 @@
* Base class for XSP-generated <code>ServerPagesGenerator</code> classes
*
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
- * @version CVS $Id: XSPGenerator.java,v 1.2 2004/05/24 12:37:52 cziegeler Exp $
+ * @version CVS $Id$
*/
-public abstract class XSPGenerator extends AbstractServerPage implements CompiledComponent, Contextualizable, Recyclable {
- protected Context avalonContext = null;
+public abstract class XSPGenerator
+extends AbstractServerPage
+implements CompiledComponent, Contextualizable {
+
+ protected Context avalonContext;
/** Contextualize this class */
public void contextualize(Context context) throws ContextException {
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPUtil.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPUtil.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/markup/xsp/XSPUtil.java Thu Oct 21 13:36:33 2004
@@ -16,8 +16,7 @@
package org.apache.cocoon.components.language.markup.xsp;
import org.apache.avalon.framework.CascadingRuntimeException;
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.components.source.SourceUtil;
import org.apache.cocoon.environment.Context;
import org.apache.cocoon.environment.ObjectModelHelper;
@@ -52,7 +51,7 @@
* The XSP <code>Utility</code> object helper
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
- * @version CVS $Id: XSPUtil.java,v 1.2 2004/03/28 14:28:04 antonio Exp $
+ * @version CVS $Id$
*/
public class XSPUtil {
@@ -250,13 +249,13 @@
}
}
- public static void includeString(String string, ComponentManager manager, ContentHandler contentHandler)
+ public static void includeString(String string, ServiceManager manager, ContentHandler contentHandler)
throws RuntimeException {
XSPUtil.includeInputSource(new InputSource(new StringReader(String.valueOf(string))), manager,
contentHandler);
}
- public static void includeFile(String name, ComponentManager manager, ContentHandler contentHandler, Map objectModel)
+ public static void includeFile(String name, ServiceManager manager, ContentHandler contentHandler, Map objectModel)
throws RuntimeException {
try {
XSPUtil.includeInputSource(new InputSource(new FileReader(XSPUtil.relativeFilename(name, objectModel))),
@@ -266,7 +265,7 @@
}
}
- public static void includeInputSource(InputSource source, ComponentManager manager, ContentHandler contentHandler)
+ public static void includeInputSource(InputSource source, ServiceManager manager, ContentHandler contentHandler)
throws RuntimeException {
SAXParser parser = null;
try {
@@ -277,7 +276,7 @@
throw new CascadingRuntimeException("Could not include page", e);
} finally {
if (parser != null) {
- manager.release((Component)parser);
+ manager.release(parser);
}
}
}
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/LanguageCompiler.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/LanguageCompiler.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/LanguageCompiler.java Thu Oct 21 13:36:33 2004
@@ -15,8 +15,6 @@
*/
package org.apache.cocoon.components.language.programming;
-import org.apache.avalon.framework.component.Component;
-
import java.io.IOException;
import java.util.List;
@@ -25,10 +23,10 @@
* (Java-based) compiled languages
*
* @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
- * @version CVS $Id: LanguageCompiler.java,v 1.1 2004/03/10 12:58:07 stephan Exp $
+ * @version CVS $Id$
* @since 2.0
*/
-public interface LanguageCompiler extends Component {
+public interface LanguageCompiler {
/**
* Set the name of the file containing the source program
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/Program.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/Program.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/Program.java Thu Oct 21 13:36:33 2004
@@ -15,21 +15,18 @@
*/
package org.apache.cocoon.components.language.programming;
-import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.context.Context;
-
-import org.apache.avalon.excalibur.component.ComponentHandler;
-import org.apache.avalon.excalibur.component.RoleManager;
-import org.apache.avalon.excalibur.component.LogkitLoggerManager;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.components.language.generator.CompiledComponent;
+import org.apache.cocoon.core.container.AbstractComponentHandler;
/**
* This interface states the functionality of a program.
* For compilable languages this is the wrapper for a Java Class object.
*
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
- * @version CVS $Id: Program.java,v 1.1 2004/03/10 12:58:07 stephan Exp $
+ * @version CVS $Id$
*/
public interface Program {
@@ -41,10 +38,8 @@
/**
* Get ComponentHandler which holds instances of this program.
*/
- ComponentHandler getHandler(ComponentManager manager,
- Context context,
- RoleManager roles,
- LogkitLoggerManager logKitManager) throws Exception;
+ AbstractComponentHandler getHandler(ServiceManager manager,
+ Context context) throws Exception;
/**
* Create new instance of the program.
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/ProgrammingLanguage.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/ProgrammingLanguage.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/ProgrammingLanguage.java Thu Oct 21 13:36:33 2004
@@ -15,8 +15,6 @@
*/
package org.apache.cocoon.components.language.programming;
-import org.apache.avalon.framework.component.Component;
-
import org.apache.cocoon.components.language.LanguageException;
import org.apache.cocoon.components.language.generator.CompiledComponent;
@@ -26,9 +24,9 @@
* This interface states the functionality of a programming language processor
*
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
- * @version CVS $Id: ProgrammingLanguage.java,v 1.1 2004/03/10 12:58:07 stephan Exp $
+ * @version CVS $Id$
*/
-public interface ProgrammingLanguage extends Component {
+public interface ProgrammingLanguage {
String ROLE = ProgrammingLanguage.class.getName();
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/java/JavaProgram.java Thu Oct 21 13:36:33 2004
@@ -16,22 +16,19 @@
package org.apache.cocoon.components.language.programming.java;
import org.apache.avalon.framework.configuration.DefaultConfiguration;
-import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.context.Context;
-
-import org.apache.avalon.excalibur.component.ComponentHandler;
-import org.apache.avalon.excalibur.component.RoleManager;
-import org.apache.avalon.excalibur.component.LogkitLoggerManager;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.components.language.generator.CompiledComponent;
import org.apache.cocoon.components.language.programming.Program;
+import org.apache.cocoon.core.container.AbstractComponentHandler;
/**
* This represents program in Java language.
* It wraps Java Class object.
*
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
- * @version CVS $Id: JavaProgram.java,v 1.1 2004/03/10 12:58:07 stephan Exp $
+ * @version CVS $Id$
*/
public class JavaProgram implements Program {
@@ -45,16 +42,14 @@
return program.getName();
}
- public ComponentHandler getHandler(ComponentManager manager,
- Context context,
- RoleManager roles,
- LogkitLoggerManager logKitManager)
- throws Exception {
+ public AbstractComponentHandler getHandler(ServiceManager manager,
+ Context context)
+ throws Exception {
- return ComponentHandler.getComponentHandler(
+ return AbstractComponentHandler.getComponentHandler(
program,
new DefaultConfiguration("", "GeneratorSelector"),
- manager, context, roles, logKitManager, null, "N/A");
+ manager, context, null, null, null);
}
public CompiledComponent newInstance() throws Exception {
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java Thu Oct 21 13:36:33 2004
@@ -15,17 +15,14 @@
*/
package org.apache.cocoon.components.language.programming.javascript;
-import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.DefaultConfiguration;
import org.apache.avalon.framework.context.Context;
-
-import org.apache.avalon.excalibur.component.ComponentHandler;
-import org.apache.avalon.excalibur.component.RoleManager;
-import org.apache.avalon.excalibur.component.LogkitLoggerManager;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.components.language.generator.CompiledComponent;
import org.apache.cocoon.components.language.programming.Program;
+import org.apache.cocoon.core.container.AbstractComponentHandler;
import java.io.File;
import java.util.Collection;
@@ -35,7 +32,7 @@
* This class represents program in the Javascript language.
*
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
- * @version CVS $Id: JavascriptProgram.java,v 1.1 2004/03/10 12:58:08 stephan Exp $
+ * @version CVS $Id$
*/
public class JavascriptProgram implements Program {
@@ -65,14 +62,12 @@
return file.toString();
}
- public ComponentHandler getHandler(ComponentManager manager,
- Context context,
- RoleManager roles,
- LogkitLoggerManager logKitManager)
- throws Exception {
+ public AbstractComponentHandler getHandler(ServiceManager manager,
+ Context context)
+ throws Exception {
- return ComponentHandler.getComponentHandler(
- clazz, config, manager, context, roles, logKitManager, null, "N/A");
+ return AbstractComponentHandler.getComponentHandler(
+ clazz, config, manager, context, null, null, null);
}
public CompiledComponent newInstance() throws Exception {
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/xscript/XScriptManagerImpl.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/xscript/XScriptManagerImpl.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/components/xscript/XScriptManagerImpl.java Thu Oct 21 13:36:33 2004
@@ -16,7 +16,6 @@
package org.apache.cocoon.components.xscript;
import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.component.Component;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.parameters.Parameterizable;
@@ -45,7 +44,7 @@
*/
public class XScriptManagerImpl
extends AbstractLogEnabled
- implements XScriptManager, Serviceable, Component, Parameterizable, Contextualizable, ThreadSafe, Disposable
+ implements XScriptManager, Serviceable, Parameterizable, Contextualizable, ThreadSafe, Disposable
{
public static final String CONTEXT = "org.apache.cocoon.components.xscript.scope";
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/generation/AbstractServerPage.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/generation/AbstractServerPage.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/generation/AbstractServerPage.java Thu Oct 21 13:36:33 2004
@@ -15,10 +15,6 @@
*/
package org.apache.cocoon.generation;
-import org.apache.avalon.framework.component.Recomposable;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.ComponentException;
-
import org.apache.cocoon.caching.CacheableProcessingComponent;
import org.apache.cocoon.components.language.generator.CompiledComponent;
import org.apache.cocoon.environment.Request;
@@ -37,11 +33,12 @@
* declares variables that must be explicitly initialized by code generators.
*
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
- * @version CVS $Id: AbstractServerPage.java,v 1.2 2004/05/24 11:58:06 cziegeler Exp $
+ * @version CVS $Id$
*/
public abstract class AbstractServerPage
extends ServletGenerator
- implements CompiledComponent, CacheableProcessingComponent, Recomposable {
+ implements CompiledComponent, CacheableProcessingComponent {
+
/**
* Code generators should produce a constructor
* block that initializes the generator's
@@ -61,14 +58,6 @@
protected long dateCreated = -1L;
/** The dependency file list */
protected File[] dependencies = null;
-
- /**
- * Recompose with the actual <code>ComponentManager</code> that should
- * be used.
- */
- public void recompose(ComponentManager manager) throws ComponentException {
- this.manager = manager;
- }
/**
* Determines whether this generator's source files have changed
Modified: cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/generation/ServerPagesGenerator.java
==============================================================================
--- cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/generation/ServerPagesGenerator.java (original)
+++ cocoon/trunk/src/blocks/xsp/java/org/apache/cocoon/generation/ServerPagesGenerator.java Thu Oct 21 13:36:33 2004
@@ -16,13 +16,12 @@
package org.apache.cocoon.generation;
import org.apache.commons.collections.ArrayStack;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.ResourceNotFoundException;
import org.apache.cocoon.caching.CacheableProcessingComponent;
@@ -56,10 +55,10 @@
*
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
* @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
- * @version CVS $Id: ServerPagesGenerator.java,v 1.1 2004/03/10 15:20:51 unico Exp $
+ * @version CVS $Id$
*/
public class ServerPagesGenerator extends ServletGenerator
- implements Disposable, CacheableProcessingComponent, Configurable {
+ implements CacheableProcessingComponent, Configurable {
/**
* The sitemap-defined server pages program generator
*/
@@ -73,13 +72,13 @@
private CompletionPipe completionPipe;
/**
- * Set the global component manager. This method sets the sitemap-defined
+ * Set the global service manager. This method sets the sitemap-defined
* program generator
*
- * @param manager The global component manager
+ * @param manager The global service manager
*/
- public void compose(ComponentManager manager) throws ComponentException {
- super.compose(manager);
+ public void service(ServiceManager manager) throws ServiceException {
+ super.service(manager);
if (programGenerator == null) {
this.programGenerator =
@@ -87,6 +86,9 @@
}
}
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
+ */
public void configure(Configuration config) throws ConfigurationException {
boolean autoComplete = config.getChild("autocomplete-documents").getValueAsBoolean(false);
@@ -149,6 +151,9 @@
*/
public final static String DEFAULT_PROGRAMMING_LANGUAGE = "java";
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.sitemap.SitemapModelComponent#setup(org.apache.cocoon.environment.SourceResolver, java.util.Map, java.lang.String, org.apache.avalon.framework.parameters.Parameters)
+ */
public void setup(SourceResolver resolver, Map objectModel, String src, Parameters par)
throws ProcessingException, SAXException, IOException {
@@ -273,9 +278,11 @@
* dispose
*/
public void dispose() {
- this.manager.release(this.programGenerator);
- this.programGenerator = null;
- this.manager = null;
+ if ( this.manager != null ) {
+ this.manager.release(this.programGenerator);
+ this.programGenerator = null;
+ this.manager = null;
+ }
}
/* Completion pipe */
Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java
==============================================================================
--- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java (original)
+++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceManager.java Thu Oct 21 13:36:33 2004
@@ -17,10 +17,8 @@
package org.apache.cocoon.core.container;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
@@ -29,9 +27,6 @@
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.cocoon.components.SitemapConfigurable;
-import org.apache.cocoon.components.SitemapConfigurationHolder;
-import org.apache.cocoon.components.container.DefaultSitemapConfigurationHolder;
/**
* Default service manager for Cocoon's components.
@@ -43,20 +38,13 @@
implements ServiceManager, Configurable {
/** The parent ServiceManager */
- private final ServiceManager parentManager;
+ protected ServiceManager parentManager;
/** added component handlers before initialization to maintain
* the order of initialization
*/
private final List newComponentHandlers = new ArrayList();
- /** The {@link SitemapConfigurationHolder}s */
- private Map sitemapConfigurationHolders = new HashMap(15);
-
- /** Temporary list of parent-aware components. Will be null for most of
- * our lifecycle. */
- private ArrayList parentAwareComponents = new ArrayList();
-
/** Create the ServiceManager with a Classloader and parent ServiceManager */
public CocoonServiceManager( final ServiceManager parent,
final ClassLoader loader ) {
@@ -168,6 +156,8 @@
try {
handler.initialize();
component = handler.get();
+
+ this.initialize( role, component );
} catch( final ServiceException ce ) {
// Rethrow instead of wrapping a ComponentException with another one
throw ce;
@@ -196,27 +186,18 @@
// problem. Checking to see if the put has already been done would be slower.
this.componentMapping.put( component, handler );
- if ( null != component && component instanceof SitemapConfigurable) {
-
- // FIXME: how can we prevent that this is called over and over again?
- SitemapConfigurationHolder holder;
-
- holder = (SitemapConfigurationHolder)this.sitemapConfigurationHolders.get( role );
- if ( null == holder ) {
- // create new holder
- holder = new DefaultSitemapConfigurationHolder( role, this.roleManager );
- this.sitemapConfigurationHolders.put( role, holder );
- }
-
- try {
- ((SitemapConfigurable)component).configure(holder);
- } catch (ConfigurationException ce) {
- throw new ServiceException(role, "Exception during setup of SitemapConfigurable.", ce);
- }
- }
return component;
}
+ /**
+ * Initialize the component
+ * @throws ServiceException
+ */
+ protected void initialize(String role, Object component)
+ throws ServiceException {
+ // we do nothing here, can be used in subclasses
+ }
+
/* (non-Javadoc)
* @see org.apache.avalon.framework.service.ServiceManager#hasService(java.lang.String)
*/
@@ -330,8 +311,7 @@
throws Exception {
super.initialize();
- for( int i = 0; i < this.newComponentHandlers.size(); i++ )
- {
+ for( int i = 0; i < this.newComponentHandlers.size(); i++ ) {
final AbstractComponentHandler handler =
(AbstractComponentHandler)this.newComponentHandlers.get( i );
try {
@@ -371,28 +351,6 @@
}
}
this.newComponentHandlers.clear();
-
- if (parentAwareComponents == null) {
- throw new ServiceException(null, "CocoonServiceManager already initialized");
- }
- // Set parents for parentAware components
- Iterator iter = parentAwareComponents.iterator();
- while (iter.hasNext()) {
- String role = (String)iter.next();
- if ( parentManager != null && parentManager.hasService( role ) ) {
- // lookup new component
- Object component = null;
- try {
- component = this.lookup( role );
- ((CocoonServiceSelector)component).setParentLocator( this.parentManager, role );
- } catch (ServiceException ignore) {
- // we don't set the parent then
- } finally {
- this.release( component );
- }
- }
- }
- parentAwareComponents = null; // null to save memory, and catch logic bugs.
}
/* (non-Javadoc)
@@ -472,11 +430,6 @@
throw se;
} catch( final Exception e ) {
throw new ServiceException( role.toString(), "Could not set up component handler.", e );
- }
- // Note that at this point, we're not initialized and cannot do
- // lookups, so defer parental introductions to initialize().
- if ( CocoonServiceSelector.class.isAssignableFrom( component ) ) {
- this.parentAwareComponents.add(role);
}
}
Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java
==============================================================================
--- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java (original)
+++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CocoonServiceSelector.java Thu Oct 21 13:36:33 2004
@@ -41,7 +41,7 @@
/** The application context for components
*/
- private ServiceManager serviceManager;
+ protected ServiceManager serviceManager;
/** The parent selector, if any */
protected CocoonServiceSelector parentSelector;
Modified: cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java Thu Oct 21 13:36:33 2004
@@ -44,10 +44,10 @@
import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.components.ContextHelper;
+import org.apache.cocoon.components.container.CocoonServiceManager;
import org.apache.cocoon.components.container.ComponentContext;
import org.apache.cocoon.components.source.SourceUtil;
import org.apache.cocoon.components.source.impl.DelayedRefreshSourceWrapper;
-import org.apache.cocoon.core.container.CocoonServiceManager;
import org.apache.cocoon.core.container.RoleManager;
import org.apache.cocoon.environment.Environment;
import org.apache.cocoon.environment.ObjectModelHelper;
Added: cocoon/trunk/src/java/org/apache/cocoon/components/container/CocoonServiceManager.java
==============================================================================
--- (empty file)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/container/CocoonServiceManager.java Thu Oct 21 13:36:33 2004
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2002-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.
+ */
+package org.apache.cocoon.components.container;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.cocoon.components.SitemapConfigurable;
+import org.apache.cocoon.components.SitemapConfigurationHolder;
+import org.apache.cocoon.core.container.CocoonServiceSelector;
+
+/**
+ * Default service manager for Cocoon's components.
+ *
+ * @version CVS $Revision: 1.6 $Id: CocoonServiceManager.java 55165 2004-10-20 16:51:50Z cziegeler $
+ */
+public class CocoonServiceManager
+extends org.apache.cocoon.core.container.CocoonServiceManager {
+
+ /** The {@link SitemapConfigurationHolder}s */
+ private Map sitemapConfigurationHolders = new HashMap(15);
+
+ /** Temporary list of parent-aware components. Will be null for most of
+ * our lifecycle. */
+ private ArrayList parentAwareComponents = new ArrayList();
+
+ /** Create the ServiceManager with a Classloader and parent ServiceManager */
+ public CocoonServiceManager( final ServiceManager parent,
+ final ClassLoader loader ) {
+ super( parent, loader);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.cocoon.core.container.CocoonServiceManager#initialize(java.lang.String, java.lang.Object)
+ */
+ protected void initialize(String role, Object component) throws ServiceException {
+ super.initialize(role, component);
+ if ( null != component && component instanceof SitemapConfigurable) {
+
+ // FIXME: how can we prevent that this is called over and over again?
+ SitemapConfigurationHolder holder;
+
+ holder = (SitemapConfigurationHolder)this.sitemapConfigurationHolders.get( role );
+ if ( null == holder ) {
+ // create new holder
+ holder = new DefaultSitemapConfigurationHolder( role, this.roleManager );
+ this.sitemapConfigurationHolders.put( role, holder );
+ }
+
+ try {
+ ((SitemapConfigurable)component).configure(holder);
+ } catch (ConfigurationException ce) {
+ throw new ServiceException(role, "Exception during setup of SitemapConfigurable.", ce);
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.activity.Initializable#initialize()
+ */
+ public void initialize()
+ throws Exception {
+ super.initialize();
+
+ if (this.parentAwareComponents == null) {
+ throw new ServiceException(null, "CocoonServiceManager already initialized");
+ }
+
+ // Set parents for parentAware components
+ Iterator iter = this.parentAwareComponents.iterator();
+ while (iter.hasNext()) {
+ String role = (String)iter.next();
+ if ( this.parentManager != null && this.parentManager.hasService( role ) ) {
+ // lookup new component
+ Object component = null;
+ try {
+ component = this.lookup( role );
+ ((CocoonServiceSelector)component).setParentLocator( this.parentManager, role );
+ } catch (ServiceException ignore) {
+ // we don't set the parent then
+ } finally {
+ this.release( component );
+ }
+ }
+ }
+ this.parentAwareComponents = null; // null to save memory, and catch logic bugs.
+ }
+
+ /**
+ * Add a new component to the manager.
+ *
+ * @param role the role name for the new component.
+ * @param component the class of this component.
+ * @param configuration the configuration for this component.
+ */
+ public void addComponent( final Object role,
+ final Class component,
+ final Configuration configuration )
+ throws ServiceException {
+ super.addComponent( role, component, configuration );
+ // Note that at this point, we're not initialized and cannot do
+ // lookups, so defer parental introductions to initialize().
+ if ( CocoonServiceSelector.class.isAssignableFrom( component ) ) {
+ this.parentAwareComponents.add(role);
+ }
+ }
+
+}
Modified: cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java Thu Oct 21 13:36:33 2004
@@ -30,13 +30,13 @@
import org.apache.avalon.framework.configuration.DefaultConfiguration;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.acting.Action;
+import org.apache.cocoon.components.container.CocoonServiceManager;
import org.apache.cocoon.components.pipeline.ProcessingPipeline;
import org.apache.cocoon.components.treeprocessor.CategoryNode;
import org.apache.cocoon.components.treeprocessor.CategoryNodeBuilder;
import org.apache.cocoon.components.treeprocessor.DefaultTreeBuilder;
import org.apache.cocoon.components.treeprocessor.ProcessorComponentInfo;
import org.apache.cocoon.components.treeprocessor.variables.VariableResolverFactory;
-import org.apache.cocoon.core.container.CocoonServiceManager;
import org.apache.cocoon.generation.Generator;
import org.apache.cocoon.matching.Matcher;
import org.apache.cocoon.reading.Reader;
Modified: cocoon/trunk/src/java/org/apache/cocoon/generation/ServletGenerator.java
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/generation/ServletGenerator.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/generation/ServletGenerator.java Thu Oct 21 13:36:33 2004
@@ -16,10 +16,10 @@
package org.apache.cocoon.generation;
import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.environment.Context;
@@ -39,22 +39,25 @@
* @version CVS $Id$
*/
public abstract class ServletGenerator extends AbstractGenerator
-implements Composable, Disposable {
+implements Serviceable, Disposable {
protected Request request;
protected Response response;
protected Context context;
- /** The component manager instance */
- protected ComponentManager manager;
+ /** The service manager instance */
+ protected ServiceManager manager;
/* (non-Javadoc)
- * @see org.apache.avalon.framework.component.Composable#compose(org.apache.avalon.framework.component.ComponentManager)
+ * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
*/
- public void compose(ComponentManager manager) throws ComponentException {
+ public void service(ServiceManager manager) throws ServiceException {
this.manager = manager;
}
+ /* (non-Javadoc)
+ * @see org.apache.avalon.framework.activity.Disposable#dispose()
+ */
public void dispose() {
this.manager = null;
}
Modified: cocoon/trunk/tools/targets/compile-build.xml
==============================================================================
--- cocoon/trunk/tools/targets/compile-build.xml (original)
+++ cocoon/trunk/tools/targets/compile-build.xml Thu Oct 21 13:36:33 2004
@@ -36,7 +36,7 @@
</fileset>
</copy>
- <!-- compile core classes
+ <!-- compile core classes -->
<echo message="Compiling Cocoon Core"/>
<javac srcdir="${src.core}"
destdir="${build.dest}"
@@ -48,7 +48,6 @@
nowarn="${compiler.nowarn}"
compiler="${compiler}"
classpathref="classpath"/>
- -->
<!-- compile mock classes -->
<mkdir dir="${build.mocks}"/>
@@ -74,7 +73,6 @@
nowarn="${compiler.nowarn}"
compiler="${compiler}"
classpathref="classpath">
- <src path="${src.core}"/>
<src path="${java}"/>
</javac>