Author: reto
Date: Mon Nov 29 12:43:43 2010
New Revision: 1040089
URL: http://svn.apache.org/viewvc?rev=1040089&view=rev
Log:
CLEREZZA-356: added support for WebRenderingServices
Added:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/SomeContentWebRenderingService.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/FelixClerezzaPlatformTest.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/RDFListRootResource.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/RenderedPage.scala
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/
(props changed)
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/RendererImpl.java
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
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/RenderletRendererFactoryImpl.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.ontologies/
(props changed)
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml?rev=1040089&r1=1040088&r2=1040089&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/pom.xml
Mon Nov 29 12:43:43 2010
@@ -262,6 +262,11 @@
</dependency>
<dependency>
<groupId>org.apache.clerezza</groupId>
+
<artifactId>org.apache.clerezza.platform.typerendering.scala</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.clerezza</groupId>
<artifactId>org.apache.clerezza.platform.typerendering.ontologies</artifactId>
<scope>provided</scope>
</dependency>
@@ -358,6 +363,12 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.ops4j.pax.swissbox</groupId>
+ <artifactId>pax-swissbox-tinybundles</artifactId>
+ <version>1.3.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit</artifactId>
<scope>test</scope>
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/FelixClerezzaPlatformTest.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/FelixClerezzaPlatformTest.java?rev=1040089&r1=1040088&r2=1040089&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/FelixClerezzaPlatformTest.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/FelixClerezzaPlatformTest.java
Mon Nov 29 12:43:43 2010
@@ -18,6 +18,7 @@
*/
package org.apache.clerezza.platform.testing.blackbox.osgi;
+import java.io.ByteArrayOutputStream;
import static org.ops4j.pax.exam.CoreOptions.felix;
import static org.ops4j.pax.exam.CoreOptions.frameworks;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
@@ -28,11 +29,13 @@ import static org.ops4j.pax.exam.contain
import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.webProfile;
import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.dsProfile;
+import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.profile;
import static org.ops4j.pax.exam.junit.JUnitOptions.junitBundles;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.io.StringWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
@@ -40,19 +43,29 @@ import java.util.Dictionary;
import java.util.Hashtable;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.ws.rs.core.MediaType;
import junit.framework.Assert;
+import org.apache.clerezza.platform.typerendering.RenderletManager;
+import
org.apache.clerezza.platform.typerendering.scalaserverpages.ScalaServerPagesRenderlet;
+import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.access.TcManager;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.swissbox.tinybundles.core.TinyBundles;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.framework.Constants;
+
+
/**
*
@@ -179,6 +192,8 @@ public class FelixClerezzaPlatformTest {
mavenBundle().groupId("org.apache.clerezza").artifactId(
"org.apache.clerezza.platform.typerendering.manager").versionAsInProject(),
mavenBundle().groupId("org.apache.clerezza").artifactId(
+
"org.apache.clerezza.platform.typerendering.scala").versionAsInProject(),
+
mavenBundle().groupId("org.apache.clerezza").artifactId(
"org.apache.clerezza.platform.scripting.scriptmanager").versionAsInProject(),
mavenBundle().groupId("org.apache.clerezza").artifactId(
"org.apache.clerezza.platform.xhtml2html").versionAsInProject(),
@@ -197,13 +212,23 @@ public class FelixClerezzaPlatformTest {
mavenBundle().groupId("org.mortbay.jetty").artifactId(
"servlet-api-2.5").version("6.1.12"),
dsProfile(),
+ profile("felix.webconsole"),
configProfile(),
webProfile(),
junitBundles(),
vmOption("-XX:MaxPermSize=200m"),
frameworks(felix()),
systemProperty("org.osgi.service.http.port").value(
- Integer.toString(testHttpPort)));
+ Integer.toString(testHttpPort)),
+ new Customizer() {
+
+ @Override
+ public InputStream
customizeTestProbe(InputStream testProbe)
+ throws IOException {
+ return
TinyBundles.modifyBundle(testProbe).
+
set(Constants.EXPORT_PACKAGE,
"org.apache.clerezza.platform.testing.blackbox.osgi").build();
+ }
+ });
}
protected final static int testHttpPort = 8976;
@Inject
@@ -227,6 +252,7 @@ public class FelixClerezzaPlatformTest {
public void multi() throws Exception {
checkTcManagerService();
testJaxRsRegistration();
+ testWithScalaServerPage();
}
private void testJaxRsRegistration() throws InterruptedException,
IOException {
@@ -243,6 +269,26 @@ public class FelixClerezzaPlatformTest {
runRequestThreads(url);
}
+ private void testWithScalaServerPage() throws InterruptedException,
IOException {
+ registerRDFListRootResource();
+ final Dictionary<String, Object> webRenderingServiceProperty =
new Hashtable<String, Object>();
+ {
+ webRenderingServiceProperty.put("service.pid",
SomeContentWebRenderingService.class.getName());
+ }
+
bundleContext.registerService(SomeContentWebRenderingService.class.getName(),
+ new SomeContentWebRenderingService(),
webRenderingServiceProperty);
+ ServiceReference serviceReference =
bundleContext.getServiceReference(RenderletManager.class.getName());
+ RenderletManager renderletManager = (RenderletManager)
bundleContext.getService(serviceReference);
+
renderletManager.registerRenderlet(ScalaServerPagesRenderlet.class.getName(),
+ new
UriRef(getClass().getResource("renderingServiceTest.ssp").toString()),
+ RDFListRootResource.testType, null,
MediaType.TEXT_PLAIN_TYPE, false);
+ URL url = new URL("http://localhost:" + testHttpPort + "/list");
+ Thread.sleep(4000);
+ String returnedString = new String(requestUrl(url), "utf-8");
+ Assert.assertEquals("some content\n", returnedString);
+
+ }
+
private void checkTcManagerService() throws Exception {
Object service = waitFor(TcManager.class, 20000);
Assert.assertTrue(service != null);
@@ -301,6 +347,16 @@ public class FelixClerezzaPlatformTest {
successfulRequests);
}
+ private void registerRDFListRootResource() {
+ final Dictionary<String, Object> jaxRsResourceProperty = new
Hashtable<String, Object>();
+ {
+ jaxRsResourceProperty.put("javax.ws.rs", Boolean.TRUE);
+ jaxRsResourceProperty.put("service.pid",
RDFListRootResource.class.getName());
+ }
+ bundleContext.registerService(Object.class.getName(),
+ new RDFListRootResource(),
jaxRsResourceProperty);
+ }
+
static class RequestThread extends Thread {
private URL url;
@@ -325,11 +381,13 @@ public class FelixClerezzaPlatformTest {
}
}
- private static void requestUrl(URL url) throws IOException {
+ private static byte[] requestUrl(URL url) throws IOException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
URLConnection urlConnection = url.openConnection();
InputStream in = urlConnection.getInputStream();
for (int ch = in.read(); ch != -1; ch = in.read()) {
- System.out.print((char) ch);
+ baos.write(ch);
}
+ return baos.toByteArray();
}
}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/RDFListRootResource.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/RDFListRootResource.java?rev=1040089&r1=1040088&r2=1040089&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/RDFListRootResource.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/RDFListRootResource.java
Mon Nov 29 12:43:43 2010
@@ -24,8 +24,10 @@ import javax.ws.rs.Produces;
import org.apache.clerezza.rdf.core.BNode;
import org.apache.clerezza.rdf.core.TripleCollection;
+import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.impl.PlainLiteralImpl;
import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
+import org.apache.clerezza.rdf.ontologies.RDF;
import org.apache.clerezza.rdf.utils.GraphNode;
import org.apache.clerezza.rdf.utils.RdfList;
@@ -36,13 +38,14 @@ import org.apache.clerezza.rdf.utils.Rdf
@Path("/list")
public class RDFListRootResource {
- static final public String greeting = "hello";
+ static final public UriRef testType = new
UriRef("http://example.org/foo");
+
@GET
- @Produces("text/plain")
public GraphNode sayHello() {
TripleCollection resultGraph = new SimpleMGraph();
GraphNode result = new GraphNode(new BNode(), resultGraph);
+ result.addProperty(RDF.type, testType);
RdfList list = new RdfList(result);
for (int i = 0; i < 10 ; i++) {
list.add(new PlainLiteralImpl("number "+i));
Added:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/SomeContentWebRenderingService.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/SomeContentWebRenderingService.java?rev=1040089&view=auto
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/SomeContentWebRenderingService.java
(added)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.testing/src/test/java/org/apache/clerezza/platform/testing/blackbox/osgi/SomeContentWebRenderingService.java
Mon Nov 29 12:43:43 2010
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2010 reto.
+ *
+ * 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.
+ * under the License.
+ */
+
+package org.apache.clerezza.platform.testing.blackbox.osgi;
+
+import org.apache.clerezza.platform.typerendering.WebRenderingService;
+
+/**
+ *
+ * @author reto
+ */
+...@webrenderingservice
+public class SomeContentWebRenderingService {
+
+ public String getSomeContent() {
+ return "some content";
+ }
+}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/RenderedPage.scala
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/RenderedPage.scala?rev=1040089&r1=1040088&r2=1040089&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/RenderedPage.scala
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scala/src/main/scala/org/apache/clerezza/platform/typerendering/scala/RenderedPage.scala
Mon Nov 29 12:43:43 2010
@@ -4,6 +4,7 @@ import java.io.OutputStream
import java.io.PrintWriter
import java.net.URI
import javax.ws.rs.core.MediaType
+import org.osgi.framework.BundleContext
import scala.xml._
import org.apache.clerezza.platform.typerendering._
import org.apache.clerezza.platform.typerendering.Renderlet.RequestProperties
@@ -17,7 +18,7 @@ import org.apache.clerezza.rdf.scala.uti
/**
* PageRenderlet.renderedPage returns an instance of this class, implementing
* the content method to produce an XML Elmenet suitable as response to the
- * request yieldingto the arguments passed to the constructor.
+ * request yielding to the arguments passed to the constructor.
*/
abstract class RenderedPage(arguments: RenderedPage.Arguments) {
val RenderedPage.Arguments(
@@ -56,6 +57,10 @@ abstract class RenderedPage(arguments: R
object $ {
def apply(key: String) = sharedRenderingValues.get(key)
def update(key: String, value: Object) =
sharedRenderingValues.put(key, value)
+ def apply[T](implicit m: Manifest[T]): T = {
+ val clazz = m.erasure.asInstanceOf[Class[T]]
+ requestProperties.getRenderingService(clazz)
+ }
}
def ifx[T](con: => Boolean)(f: => T) : T = {
Propchange:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Nov 29 12:43:43 2010
@@ -2,3 +2,4 @@
.settings
target
.project
+.externalToolBuilders
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/RendererImpl.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/RendererImpl.java?rev=1040089&r1=1040088&r2=1040089&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/RendererImpl.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/RendererImpl.java
Mon Nov 29 12:43:43 2010
@@ -30,6 +30,7 @@ import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.utils.GraphNode;
+import org.osgi.framework.BundleContext;
/**
*
@@ -45,10 +46,12 @@ class RendererImpl implements Renderer,
private boolean builtIn;
private String mode;
private final RenderletRendererFactoryImpl renderletRendererFactoryImpl;
+ private final BundleContext bundleContext;
RendererImpl(UriRef renderingSpecification,
Renderlet renderlet, String mode, MediaType mediaType,
int prio,
- RenderletRendererFactoryImpl
renderletRendererFactoryImpl, boolean builtIn) {
+ RenderletRendererFactoryImpl
renderletRendererFactoryImpl, boolean builtIn,
+ BundleContext bundleContext) {
this.renderlet = renderlet;
this.mediaType = mediaType;
this.mode = mode;
@@ -62,7 +65,7 @@ class RendererImpl implements Renderer,
throw new WebApplicationException(ex);
}
}
-
+ this.bundleContext = bundleContext;
}
@Override
@@ -94,7 +97,7 @@ class RendererImpl implements Renderer,
uriInfo, httpHeaders, mediaType,
sharedRenderingValues);
renderlet.render(resource, context, sharedRenderingValues,
callbackRenderer,
renderSpecUri, mode, mediaType,
- new Renderlet.RequestProperties(uriInfo, httpHeaders),
+ new Renderlet.RequestProperties(uriInfo, httpHeaders,
bundleContext),
entityStream);
}
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=1040089&r1=1040088&r2=1040089&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
Mon Nov 29 12:43:43 2010
@@ -27,6 +27,8 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
import org.apache.clerezza.rdf.utils.GraphNode;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
/**
* A renderlet renders a <code>GraphNode</code> with the optionally specified
@@ -38,16 +40,19 @@ public interface Renderlet {
/**
* A class repressing properties of the http request within which the
- * Renderlet is used
+ * Renderlet is used, it also allows access to contextual rendering
services.
*/
static class RequestProperties {
private UriInfo uriInfo;
private MultivaluedMap<String, Object> httpHeaders;
+ private final BundleContext bundleContext;
public RequestProperties(UriInfo uriInfo,
- MultivaluedMap<String, Object> httpHeaders) {
+ MultivaluedMap<String, Object> httpHeaders,
+ BundleContext bundleContext) {
this.uriInfo = uriInfo;
this.httpHeaders = httpHeaders;
+ this.bundleContext = bundleContext;
}
public MultivaluedMap<String, Object> getHttpHeaders() {
@@ -58,6 +63,26 @@ public interface Renderlet {
return uriInfo;
}
+ /**
+ * Rendering services
+ *
+ * @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;
+ }
+ }
+
}
/**
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/RenderletRendererFactoryImpl.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/RenderletRendererFactoryImpl.java?rev=1040089&r1=1040088&r2=1040089&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/RenderletRendererFactoryImpl.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/RenderletRendererFactoryImpl.java
Mon Nov 29 12:43:43 2010
@@ -60,6 +60,7 @@ import org.apache.clerezza.rdf.utils.Rdf
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.clerezza.rdf.ontologies.RDFS;
+import org.osgi.framework.BundleContext;
/**
*
@@ -95,6 +96,7 @@ public class RenderletRendererFactoryImp
private final Set<ServiceReference> renderletRefStore =
Collections.synchronizedSet(new
HashSet<ServiceReference>());
List<Resource> rdfTypePrioList;
+ private BundleContext bundleContext;
@Override
public Renderer createRenderer(GraphNode resource, String mode,
List<MediaType> acceptableMediaTypes) {
@@ -154,7 +156,7 @@ public class RenderletRendererFactoryImp
mode,
getMostConcreteMediaType(mediaTypeRequested, mediaTypeInGraph),
prio,
RenderletRendererFactoryImpl.this,
-
renderletDef.isBuiltIn()));
+
renderletDef.isBuiltIn(), bundleContext));
}
}
if (!configurationList.isEmpty()) {
@@ -360,6 +362,7 @@ public class RenderletRendererFactoryImp
* @param componentContext
*/
protected void activate(ComponentContext componentContext) {
+ bundleContext = componentContext.getBundleContext();
graphChanged(null);
configGraph.addGraphListener(this,
new FilterTriple(null, RDF.first, null), 1000);
@@ -411,6 +414,7 @@ public class RenderletRendererFactoryImp
*/
protected void deactivate(ComponentContext componentContext) {
configGraph.removeGraphListener(this);
+ bundleContext = null;
}
@Override
Propchange:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.ontologies/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Nov 29 12:43:43 2010
@@ -2,3 +2,4 @@
.settings
target
.project
+.externalToolBuilders