You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2009/05/20 21:36:56 UTC
svn commit: r776818 - in /incubator/sling/trunk/bundles/engine: ./
src/main/java/org/apache/sling/engine/impl/
src/main/java/org/apache/sling/engine/impl/request/
Author: fmeschbe
Date: Wed May 20 19:36:56 2009
New Revision: 776818
URL: http://svn.apache.org/viewvc?rev=776818&view=rev
Log:
SLING-979 Implement the Adaptable interface in the request and
response implementations based on the AdapterManager service
bound to the SlingMainServlet
Modified:
incubator/sling/trunk/bundles/engine/pom.xml
incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletRequestImpl.java
incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java
incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java
incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java
Modified: incubator/sling/trunk/bundles/engine/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/bundles/engine/pom.xml?rev=776818&r1=776817&r2=776818&view=diff
==============================================================================
--- incubator/sling/trunk/bundles/engine/pom.xml (original)
+++ incubator/sling/trunk/bundles/engine/pom.xml Wed May 20 19:36:56 2009
@@ -96,7 +96,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.api</artifactId>
- <version>2.0.4-incubator</version>
+ <version>2.0.5-incubator-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
Modified: incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletRequestImpl.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletRequestImpl.java?rev=776818&r1=776817&r2=776818&view=diff
==============================================================================
--- incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletRequestImpl.java (original)
+++ incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletRequestImpl.java Wed May 20 19:36:56 2009
@@ -38,6 +38,7 @@
import javax.servlet.http.HttpServletRequestWrapper;
import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.adapter.AdapterManager;
import org.apache.sling.api.request.RequestDispatcherOptions;
import org.apache.sling.api.request.RequestParameter;
import org.apache.sling.api.request.RequestParameterMap;
@@ -82,6 +83,20 @@
return this.requestData;
}
+ //---------- Adaptable interface
+
+ public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
+ AdapterManager adapterManager = getRequestData().getAdapterManager();
+ if (adapterManager != null) {
+ return adapterManager.getAdapter(this, type);
+ }
+
+ // no adapter manager, nothing to adapt to
+ return null;
+ }
+
+ //---------- SlingHttpServletRequest interface
+
ParameterSupport getParameterSupport() {
return this.getRequestData().getParameterSupport();
}
Modified: incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java?rev=776818&r1=776817&r2=776818&view=diff
==============================================================================
--- incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java (original)
+++ incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingHttpServletResponseImpl.java Wed May 20 19:36:56 2009
@@ -35,6 +35,7 @@
import javax.servlet.http.HttpServletResponseWrapper;
import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.adapter.AdapterManager;
import org.apache.sling.engine.impl.request.RequestData;
import org.apache.sling.engine.servlets.ErrorHandler;
@@ -119,6 +120,20 @@
return requestData;
}
+ //---------- Adaptable interface
+
+ public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
+ AdapterManager adapterManager = getRequestData().getAdapterManager();
+ if (adapterManager != null) {
+ return adapterManager.getAdapter(this, type);
+ }
+
+ // no adapter manager, nothing to adapt to
+ return null;
+ }
+
+ //---------- SlingHttpServletResponse interface
+
@Override
public void flushBuffer() throws IOException {
getRequestData().getContentData().flushBuffer();
Modified: incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java?rev=776818&r1=776817&r2=776818&view=diff
==============================================================================
--- incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java (original)
+++ incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java Wed May 20 19:36:56 2009
@@ -50,6 +50,7 @@
import org.apache.sling.api.SlingException;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.adapter.AdapterManager;
import org.apache.sling.api.request.RequestPathInfo;
import org.apache.sling.api.request.RequestProgressTracker;
import org.apache.sling.api.resource.Resource;
@@ -157,6 +158,9 @@
/** @scr.reference cardinality="0..1" policy="dynamic" */
private RequestLogger requestLogger;
+
+ /** @scr.reference cardinality="0..1" policy="dynamic" */
+ private AdapterManager adapterManager;
private SlingFilterChainHelper requestFilterChain = new SlingFilterChainHelper();
@@ -525,6 +529,14 @@
ErrorHandler eh = errorHandler;
return (eh != null) ? eh : this;
}
+
+ /**
+ * Returns the {@link AdapterManager} bound to this instance or
+ * <code>null</code> if no adapter manager is bound to this instance.
+ */
+ public AdapterManager getAdapterManager() {
+ return adapterManager;
+ }
// ---------- Property Setter for SCR --------------------------------------
@@ -608,6 +620,7 @@
}
}
+ @SuppressWarnings("unused")
protected void deactivate(ComponentContext componentContext) {
// first of all, we have to unregister
Modified: incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java?rev=776818&r1=776817&r2=776818&view=diff
==============================================================================
--- incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java (original)
+++ incubator/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java Wed May 20 19:36:56 2009
@@ -42,6 +42,7 @@
import org.apache.sling.api.SlingConstants;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.adapter.AdapterManager;
import org.apache.sling.api.request.RecursionTooDeepException;
import org.apache.sling.api.request.RequestPathInfo;
import org.apache.sling.api.request.RequestProgressTracker;
@@ -636,6 +637,15 @@
return activeServletName;
}
+ /**
+ * Returns the <code>AdapterManager</code> instance bound to the
+ * {@link SlingMainServlet} of this request data instance. This may be
+ * <code>null</code> if no adapter manager is bound to the SlingMainServlet.
+ */
+ public AdapterManager getAdapterManager() {
+ return slingMainServlet.getAdapterManager();
+ }
+
// ---------- BufferProvider -----------------------------------------
public BufferProvider getBufferProvider() {