You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2008/12/21 14:55:17 UTC
svn commit: r728438 - in /cocoon/cocoon3/trunk:
cocoon-docs/src/changes/changes.xml
cocoon-rest/src/main/java/org/apache/cocoon/rest/controller/SpringRESTController.java
Author: reinhard
Date: Sun Dec 21 05:55:16 2008
New Revision: 728438
URL: http://svn.apache.org/viewvc?rev=728438&view=rev
Log:
<action dev="reinahrd" type="add">
[cocoon-rest] The @Inject annotation supports org.apache.cocoon.configuration.Settings and
javax.servlet.ServletContext injections.
</action>
Modified:
cocoon/cocoon3/trunk/cocoon-docs/src/changes/changes.xml
cocoon/cocoon3/trunk/cocoon-rest/src/main/java/org/apache/cocoon/rest/controller/SpringRESTController.java
Modified: cocoon/cocoon3/trunk/cocoon-docs/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-docs/src/changes/changes.xml?rev=728438&r1=728437&r2=728438&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-docs/src/changes/changes.xml (original)
+++ cocoon/cocoon3/trunk/cocoon-docs/src/changes/changes.xml Sun Dec 21 05:55:16 2008
@@ -25,6 +25,10 @@
<document>
<body>
<release version="3.0.0-alpha-2" date="2008-00-00" description="unreleased">
+ <action dev="reinahrd" type="add">
+ [cocoon-rest] The @Inject annotation supports org.apache.cocoon.configuration.Settings and
+ javax.servlet.ServletContext injections.
+ </action>
<action dev="steven" type="add">
[cocoon-pipeline] Support expires caching: CachingPipeline and AsyncCachingPipeline can be configured to
be valid for a particular period. This 'expires caching' doesn't check if any of the pipeline components
Modified: cocoon/cocoon3/trunk/cocoon-rest/src/main/java/org/apache/cocoon/rest/controller/SpringRESTController.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-rest/src/main/java/org/apache/cocoon/rest/controller/SpringRESTController.java?rev=728438&r1=728437&r2=728438&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-rest/src/main/java/org/apache/cocoon/rest/controller/SpringRESTController.java (original)
+++ cocoon/cocoon3/trunk/cocoon-rest/src/main/java/org/apache/cocoon/rest/controller/SpringRESTController.java Sun Dec 21 05:55:16 2008
@@ -25,11 +25,13 @@
import java.util.List;
import java.util.Map;
+import javax.servlet.ServletContext;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.cocoon.configuration.Settings;
import org.apache.cocoon.controller.Controller;
import org.apache.cocoon.pipeline.ProcessingException;
import org.apache.cocoon.rest.controller.annotation.BaseURL;
@@ -44,6 +46,7 @@
import org.apache.cocoon.rest.controller.util.AnnotationCollector;
import org.apache.cocoon.servlet.node.StatusCodeCollector;
import org.apache.cocoon.servlet.util.HttpContextHelper;
+import org.apache.cocoon.servlet.util.SettingsHelper;
import org.apache.cocoon.sitemap.util.ExceptionHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -158,6 +161,7 @@
HttpServletRequest request = HttpContextHelper.getRequest(parameters);
HttpServletResponse response = HttpContextHelper.getResponse(parameters);
+
for (Field field : injectFields) {
field.setAccessible(true);
@@ -172,6 +176,12 @@
field.set(controller, request.getInputStream());
} else if (fieldType == ServletOutputStream.class || fieldType == OutputStream.class) {
field.set(controller, response.getOutputStream());
+ } else if (fieldType == ServletContext.class) {
+ ServletContext servletContext = HttpContextHelper.getServletContext(parameters);
+ field.set(controller, servletContext);
+ } else if (fieldType == Settings.class) {
+ Settings settings = SettingsHelper.getSettings(parameters);
+ field.set(controller, settings);
} else {
throw new Exception("The annotation " + Inject.class.getName()
+ " doesn't support the injection of type " + fieldType.getName() + "." + " " + "(field="