Author: ito
Date: Wed Dec 22 13:37:52 2010
New Revision: 1051892
URL: http://svn.apache.org/viewvc?rev=1051892&view=rev
Log:
CLEREZZA-371: retrieve webrendering functions is in doPrivileged block
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java?rev=1051892&r1=1051891&r2=1051892&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
Wed Dec 22 13:37:52 2010
@@ -22,6 +22,8 @@ import java.io.IOException;
import java.io.OutputStream;
import java.net.URI;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.Map;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
@@ -69,22 +71,29 @@ public interface Renderlet {
* @param type
* @return a intsance of the requested rendering services
*/
- public <T> T getRenderingService(Class<T> type) {
- ServiceReference serviceReference =
bundleContext.getServiceReference(type.getName());
- if (serviceReference != null) {
- T resultCandidate = (T)
bundleContext.getService(serviceReference);
- if
(resultCandidate.getClass().getAnnotation(WebRenderingService.class) != null) {
- return resultCandidate;
- } else {
- return null;
- }
- } else {
- return null;
- }
+ public <T> T getRenderingService(final Class<T> type) {
+ return AccessController.doPrivileged(
+ new PrivilegedAction<T>() {
+
+ @Override
+ public T run() {
+ ServiceReference
serviceReference = bundleContext.getServiceReference(type.getName());
+ if (serviceReference !=
null) {
+ T
resultCandidate = (T) bundleContext.getService(serviceReference);
+ if
(resultCandidate.getClass().getAnnotation(WebRenderingService.class) != null) {
+ return
resultCandidate;
+ } else {
+ return
null;
+ }
+ } else {
+ return null;
+ }
+ }
+ });
}
-
}
+
/**
* Renders the data from <code>res</code> with a appropriate rendering
* engine.