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