Author: [email protected]
Date: Tue Oct 4 15:50:51 2011
New Revision: 1434
Log:
[AMDATUOPENSOCIAL-117] Refactored registration of dynamic service dependencies
Modified:
trunk/amdatu-opensocial/opensocial-gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/BaseRESTServiceImpl.java
trunk/amdatu-opensocial/opensocial-gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/InternalGadgetStoreImpl.java
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/persistence/OAuthTenantAwareStoreImpl.java
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigOpenSocialContainerImpl.java
Modified:
trunk/amdatu-opensocial/opensocial-gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/BaseRESTServiceImpl.java
==============================================================================
---
trunk/amdatu-opensocial/opensocial-gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/BaseRESTServiceImpl.java
(original)
+++
trunk/amdatu-opensocial/opensocial-gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/BaseRESTServiceImpl.java
Tue Oct 4 15:50:51 2011
@@ -18,6 +18,8 @@
import static
org.amdatu.opensocial.gadgetmanagement.OpenSocialContainer.APP_DATA;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -37,6 +39,7 @@
import org.amdatu.web.rest.jaxrs.RESTService;
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.ServiceDependency;
import org.osgi.service.log.LogService;
import org.osgi.service.useradmin.Role;
import org.osgi.service.useradmin.User;
@@ -74,18 +77,21 @@
// Create tenant specific dependencies with UserAdmin and
OpenSocialContainer
String tenantFilter = "(" + Tenant.TENANT_ID_SERVICEPROPERTY + "=" +
m_tenant.getId() + ")";
- m_component.add(m_dependencyManager.createServiceDependency()
+ List<ServiceDependency> dependencies = new
ArrayList<ServiceDependency>();
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(GadgetManagement.class,
tenantFilter).setRequired(true).setInstanceBound(true));
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(OpenSocialContainer.class,
tenantFilter).setRequired(true).setInstanceBound(true));
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(UserAdmin.class,
tenantFilter).setRequired(true).setInstanceBound(true));
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(TokenProvider.class,
tenantFilter).setRequired(true).setInstanceBound(true));
+ m_component.add(dependencies);
+
m_logService.log(LogService.LOG_INFO, getClass().getName() + " service
initialized");
}
Modified:
trunk/amdatu-opensocial/opensocial-gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/InternalGadgetStoreImpl.java
==============================================================================
---
trunk/amdatu-opensocial/opensocial-gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/InternalGadgetStoreImpl.java
(original)
+++
trunk/amdatu-opensocial/opensocial-gadgetmanagement/src/main/java/org/amdatu/opensocial/gadgetmanagement/service/InternalGadgetStoreImpl.java
Tue Oct 4 15:50:51 2011
@@ -24,6 +24,7 @@
import org.amdatu.opensocial.gadgetmanagement.GadgetDefinitionProvider;
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.ServiceDependency;
import org.osgi.framework.Constants;
/**
@@ -45,9 +46,13 @@
public void init(final Component component) {
// Add tenant specific service dependencies
- component.add(m_dependencyManager.createServiceDependency()
+ List<ServiceDependency> dependencies = new
ArrayList<ServiceDependency>();
+
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(GadgetDefinitionProvider.class,
getTenantFilter(GadgetDefinitionProvider.class))
.setCallbacks("onAdded", "onRemoved"));
+
+ component.add(dependencies);
}
private String getTenantFilter(Class<?> clazz) {
Modified:
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/persistence/OAuthTenantAwareStoreImpl.java
==============================================================================
---
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/persistence/OAuthTenantAwareStoreImpl.java
(original)
+++
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/persistence/OAuthTenantAwareStoreImpl.java
Tue Oct 4 15:50:51 2011
@@ -18,7 +18,9 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import net.oauth.OAuth;
@@ -33,6 +35,7 @@
import org.apache.commons.io.IOUtils;
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.ServiceDependency;
import org.apache.shindig.auth.SecurityToken;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.oauth.BasicOAuthStore;
@@ -89,9 +92,13 @@
* Init() is invoked by the dependency manager.
*/
public void init(final Component component) {
- component.add(m_dependencyManager.createServiceDependency()
+ List<ServiceDependency> dependencies = new
ArrayList<ServiceDependency>();
+
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(GadgetManagement.class,
getTenantFilter(GadgetManagement.class))
.setInstanceBound(true).setRequired(true));
+
+ component.add(dependencies);
}
private String getTenantFilter(Class<?> clazz) {
Modified:
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigOpenSocialContainerImpl.java
==============================================================================
---
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigOpenSocialContainerImpl.java
(original)
+++
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigOpenSocialContainerImpl.java
Tue Oct 4 15:50:51 2011
@@ -16,7 +16,9 @@
package org.amdatu.opensocial.shindig.service;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.Callable;
@@ -36,6 +38,7 @@
import org.amdatu.opensocial.shindig.osgi.Activator;
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.ServiceDependency;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
@@ -88,20 +91,24 @@
/**
* The init() method is invoked by the Felix dependency manager.
*/
- public void init() {
+ public void init() {
+ List<ServiceDependency> dependencies = new
ArrayList<ServiceDependency>();
+
// Create a service dependency on the token provider for 'our' tenant
String tenantFilter =
"(&(" + Tenant.TENANT_ID_SERVICEPROPERTY + "=" + m_tenant.getId()
+ ")(" + Constants.OBJECTCLASS
+ "=" + TokenProvider.class.getName() + "))";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(TokenProvider.class,
tenantFilter).setRequired(true).setInstanceBound(true));
String tenantFilter2 =
"(&(" + Tenant.TENANT_ID_SERVICEPROPERTY + "=" + m_tenant.getId()
+ ")(" + Constants.OBJECTCLASS
+ "=" + UserAdmin.class.getName() + "))";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(UserAdmin.class,
tenantFilter2).setRequired(true).setInstanceBound(true));
-
+
+ m_component.add(dependencies);
+
m_logService.log(LogService.LOG_INFO, getClass().getName() + " service
initialized");
}
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits