You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by it...@apache.org on 2011/03/31 19:04:24 UTC
svn commit: r1087373 -
/incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletManagerImpl.java
Author: ito
Date: Thu Mar 31 17:04:24 2011
New Revision: 1087373
URL: http://svn.apache.org/viewvc?rev=1087373&view=rev
Log:
CLEREZZA-460: Applied Daniel's Patch: Deprecated renderletmanager checks if a renderlet is already registered with the same rendering specification
Modified:
incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletManagerImpl.java
Modified: incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletManagerImpl.java?rev=1087373&r1=1087372&r2=1087373&view=diff
==============================================================================
--- incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletManagerImpl.java (original)
+++ incubator/clerezza/trunk/parent/platform.typerendering/platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletManagerImpl.java Thu Mar 31 17:04:24 2011
@@ -290,9 +290,39 @@ public class RenderletManagerImpl implem
};
+
+ ServiceRegistration oldServiceRegistration =
+ getAlreadyRegisteredServiceReg(rdfType, mediaType, modePattern);
+ if(oldServiceRegistration != null) {
+ oldServiceRegistration.unregister();
+ registeredTypeRenderlets.remove(oldServiceRegistration);
+ }
+
ServiceRegistration registration = bundleContext.registerService(TypeRenderlet.class.getName(), typeRenderlet,
new Hashtable());
registeredTypeRenderlets.add(registration);
return true;
}
+
+ private ServiceRegistration getAlreadyRegisteredServiceReg(UriRef rdfType,
+ MediaType mediaType, String modePattern) {
+
+ for (ServiceRegistration serviceRegistration : registeredTypeRenderlets) {
+ TypeRenderlet registeredRenderlet = (TypeRenderlet)
+ bundleContext.getService(serviceRegistration.getReference());
+ if (registeredRenderlet != null
+ && registeredRenderlet.getRdfType().equals(rdfType)
+ && registeredRenderlet.getMediaType().equals(mediaType)) {
+
+ if(modePattern == null && registeredRenderlet.getModePattern() == null) {
+ return serviceRegistration;
+ } else if(modePattern != null && registeredRenderlet.getModePattern() != null) {
+ if(registeredRenderlet.getModePattern().equals(modePattern)) {
+ return serviceRegistration;
+ }
+ }
+ }
+ }
+ return null;
+ }
}