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 2006/07/11 14:23:34 UTC

svn commit: r420816 - in /cocoon/trunk/core/cocoon-core/src/main: java/org/apache/cocoon/processing/ java/org/apache/cocoon/processing/impl/ resources/org/apache/cocoon/

Author: cziegeler
Date: Tue Jul 11 05:23:34 2006
New Revision: 420816

URL: http://svn.apache.org/viewvc?rev=420816&view=rev
Log:
Add new processing info provider component

Added:
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/ProcessInfoProvider.java   (with props)
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/impl/
    cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/impl/ProcessInfoProviderImpl.java   (with props)
Modified:
    cocoon/trunk/core/cocoon-core/src/main/resources/org/apache/cocoon/cocoon.roles

Added: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/ProcessInfoProvider.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/ProcessInfoProvider.java?rev=420816&view=auto
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/ProcessInfoProvider.java (added)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/ProcessInfoProvider.java Tue Jul 11 05:23:34 2006
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.processing;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * This component can be used to retrieve information about the current
+ * process.
+ *
+ * @version $Id$
+ * @since 2.2
+ */
+public interface ProcessInfoProvider {
+
+    HttpServletRequest getRequest();
+
+    HttpServletResponse getResponse();
+
+    ServletContext getServletContext();
+}

Propchange: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/ProcessInfoProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/ProcessInfoProvider.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/impl/ProcessInfoProviderImpl.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/impl/ProcessInfoProviderImpl.java?rev=420816&view=auto
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/impl/ProcessInfoProviderImpl.java (added)
+++ cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/impl/ProcessInfoProviderImpl.java Tue Jul 11 05:23:34 2006
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.processing.impl;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.context.ContextException;
+import org.apache.avalon.framework.context.Contextualizable;
+import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.cocoon.Constants;
+import org.apache.cocoon.components.ContextHelper;
+import org.apache.cocoon.environment.http.HttpEnvironment;
+import org.apache.cocoon.processing.ProcessInfoProvider;
+
+/**
+ * Default implementation of the process info provider.
+ *
+ * For a simpler implementation we currently use Avalon functionality.
+ *
+ * @version $Id$
+ * @since 2.2
+ */
+public class ProcessInfoProviderImpl
+    implements ProcessInfoProvider, ThreadSafe, Contextualizable {
+
+    protected Context context;
+
+    protected ServletContext servletContext;
+
+    /**
+     * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
+     */
+    public void contextualize(Context context) throws ContextException {
+        this.context = context;
+        this.servletContext = (ServletContext) this.context.get(Constants.CONTEXT_ENVIRONMENT_CONTEXT);
+    }
+
+    /**
+     * @see org.apache.cocoon.processing.ProcessInfoProvider#getRequest()
+     */
+    public HttpServletRequest getRequest() {
+        return (HttpServletRequest) ContextHelper.getObjectModel(this.context).get(HttpEnvironment.HTTP_REQUEST_OBJECT);
+    }
+
+    /**
+     * @see org.apache.cocoon.processing.ProcessInfoProvider#getResponse()
+     */
+    public HttpServletResponse getResponse() {
+        return (HttpServletResponse) ContextHelper.getObjectModel(this.context).get(HttpEnvironment.HTTP_RESPONSE_OBJECT);
+    }
+
+    /**
+     * @see org.apache.cocoon.processing.ProcessInfoProvider#getServletContext()
+     */
+    public ServletContext getServletContext() {
+        return this.servletContext;
+    }
+}

Propchange: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/impl/ProcessInfoProviderImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/core/cocoon-core/src/main/java/org/apache/cocoon/processing/impl/ProcessInfoProviderImpl.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: cocoon/trunk/core/cocoon-core/src/main/resources/org/apache/cocoon/cocoon.roles
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-core/src/main/resources/org/apache/cocoon/cocoon.roles?rev=420816&r1=420815&r2=420816&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-core/src/main/resources/org/apache/cocoon/cocoon.roles (original)
+++ cocoon/trunk/core/cocoon-core/src/main/resources/org/apache/cocoon/cocoon.roles Tue Jul 11 05:23:34 2006
@@ -45,6 +45,10 @@
         shorthand="source-resolver"
         default-class="org.apache.cocoon.components.source.CocoonSourceResolver"/>
 
+  <role name="org.apache.cocoon.processing.ProcessInfoProvider"
+        shorthand="process-info-provider"
+        default-class="org.apache.cocoon.processing.impl.ProcessInfoProviderImpl"/>
+
   <!-- The entity resolver used by most parsers -->
   <role name="org.apache.excalibur.xml.EntityResolver"
         shorthand="entity-resolver"