Author: ivol37 at gmail.com
Date: Thu Feb  3 08:57:11 2011
New Revision: 751

Log:
[AMDATU-84] Small refactoring and javadoc improvements


Modified:
   
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/TenantManagementService.java
   
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/osgi/Activator.java
   
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/service/TenantManagementServiceImpl.java
   
branches/amdatu-dispatcher/amdatu-core/tenantuseradmindecorator/src/main/java/org/amdatu/core/tenantuseradmindecorator/osgi/Activator.java
   
branches/amdatu-dispatcher/amdatu-core/tenantuseradmindecorator/src/main/java/org/amdatu/core/tenantuseradmindecorator/service/TenantUserAdminDecorator.java
   
branches/amdatu-dispatcher/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/osgi/FSUserAdminStorageProviderActivator.java
   
branches/amdatu-dispatcher/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProvider.java
   
branches/amdatu-dispatcher/amdatu-opensocial/profile/src/main/java/org/amdatu/opensocial/profile/service/PersonServiceImpl.java
   
branches/amdatu-dispatcher/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRegistrationServiceImpl.java
   
branches/amdatu-dispatcher/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRestServlet.java

Modified: 
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/TenantManagementService.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/TenantManagementService.java
     (original)
+++ 
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/TenantManagementService.java
     Thu Feb  3 08:57:11 2011
@@ -70,5 +70,10 @@
      */
     void updateTenant(TenantEntity tenant) throws TenantException;
 
+    /**
+     * Deletes an existing tenant
+     * @param tenant the tenant to be deleted
+     * @throws TenantException
+     */
     void deleteTenant(TenantEntity tenant) throws TenantException;
 }

Modified: 
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/osgi/Activator.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/osgi/Activator.java
      (original)
+++ 
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/osgi/Activator.java
      Thu Feb  3 08:57:11 2011
@@ -33,7 +33,6 @@
 public class Activator extends DependencyActivatorBase {
     @Override
     public void init(BundleContext context, DependencyManager manager) throws 
Exception {
-
         // Create and register the Tenant management service
         manager.add(
             createComponent()

Modified: 
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/service/TenantManagementServiceImpl.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/service/TenantManagementServiceImpl.java
 (original)
+++ 
branches/amdatu-dispatcher/amdatu-core/tenant/src/main/java/org/amdatu/core/tenant/service/TenantManagementServiceImpl.java
 Thu Feb  3 08:57:11 2011
@@ -38,6 +38,13 @@
 import org.osgi.service.cm.ManagedService;
 import org.osgi.service.log.LogService;
 
+/**
+ * This class implements the Tenant management service. It provides CRUD 
operations on tenants and ensures
+ * that tenants are not only persisted (using the TenantStorageProvider) but 
that Tenants are also registered
+ * as a service such that tenant aware services can become tenant adaptors.
+ * 
+ * @author ivol
+ */
 public class TenantManagementServiceImpl implements TenantManagementService, 
ManagedService {
        private volatile LogService m_logService;
        private volatile DependencyManager m_manager;

Modified: 
branches/amdatu-dispatcher/amdatu-core/tenantuseradmindecorator/src/main/java/org/amdatu/core/tenantuseradmindecorator/osgi/Activator.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-core/tenantuseradmindecorator/src/main/java/org/amdatu/core/tenantuseradmindecorator/osgi/Activator.java
  (original)
+++ 
branches/amdatu-dispatcher/amdatu-core/tenantuseradmindecorator/src/main/java/org/amdatu/core/tenantuseradmindecorator/osgi/Activator.java
  Thu Feb  3 08:57:11 2011
@@ -28,13 +28,11 @@
 
 /**
  * This class represents the OSGi activator for the Tenant UserAdmin decorator 
service
+ * 
  * @author ivol
- *
  */
 public class Activator extends DependencyActivatorBase {
-    @Override
     public void init(BundleContext context, DependencyManager manager) throws 
Exception {
-
         // Create and register the Tenant UserAdmin decorator service
         //org.ops4j.pax.useradmin.storageprovider.type
         String filter = "(&(org.ops4j.pax.useradmin.storageprovider.type=*)(" 
+ Constants.OBJECTCLASS
@@ -47,7 +45,6 @@
             
.add(createServiceDependency().setService(TenantManagementService.class).setRequired(true)));
     }
 
-    @Override
     public void destroy(BundleContext context, DependencyManager manager) 
throws Exception {
     }
 }

Modified: 
branches/amdatu-dispatcher/amdatu-core/tenantuseradmindecorator/src/main/java/org/amdatu/core/tenantuseradmindecorator/service/TenantUserAdminDecorator.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-core/tenantuseradmindecorator/src/main/java/org/amdatu/core/tenantuseradmindecorator/service/TenantUserAdminDecorator.java
        (original)
+++ 
branches/amdatu-dispatcher/amdatu-core/tenantuseradmindecorator/src/main/java/org/amdatu/core/tenantuseradmindecorator/service/TenantUserAdminDecorator.java
        Thu Feb  3 08:57:11 2011
@@ -29,6 +29,20 @@
 import org.osgi.service.useradmin.User;
 import org.osgi.service.useradmin.UserAdmin;
 
+/**
+ * This class decorated UserAdmin services with tenant service properties. The 
UserAdmin service is tenant 
+ * aware since we register a UserAdmin service for each tenant. But the 
UserAdmin implementation itself is 
+ * not aware of that fact (Amdatu currently uses the Pax implementation which 
obviously is not tenant aware).
+ * So the UserAdmin service does not set the Amdatu-specific tenant properties 
(tenant_id and tenant_name)
+ * used by services to define the proper service dependencies on UserAdmin. 
This decorator service is an aspect
+ * of UserAdmin appending those properties. 
+ * Note that effectively, this aspect will double the amount of registered 
UserAdmin services; for each tenant
+ * the 'normal' UserAdmin and one TenantUserAdminDecorator aspect. When using 
UserAdmin in a multi-tenant 
+ * environment, you must ensure defining the proper service dependencies in 
order to get the proper UserAdmin
+ * service injected.
+ * 
+ * @author ivol
+ */
 public class TenantUserAdminDecorator implements UserAdmin {
        // Service dependencies injected by the dependency manager
     private volatile UserAdmin m_userAdmin;

Modified: 
branches/amdatu-dispatcher/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/osgi/FSUserAdminStorageProviderActivator.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/osgi/FSUserAdminStorageProviderActivator.java
      (original)
+++ 
branches/amdatu-dispatcher/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/osgi/FSUserAdminStorageProviderActivator.java
      Thu Feb  3 08:57:11 2011
@@ -30,8 +30,7 @@
 import org.osgi.service.log.LogService;
 
 /**
- * This class represents the OSGi activator for the tenant service
- *
+ * This class represents the OSGi activator for the FS UserAdmin storage 
provider service.
  */
 public class FSUserAdminStorageProviderActivator extends 
DependencyActivatorBase {
 

Modified: 
branches/amdatu-dispatcher/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProvider.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProvider.java
    (original)
+++ 
branches/amdatu-dispatcher/amdatu-core/useradminstore-fs/src/main/java/org/amdatu/core/useradminstore/fs/service/FSUserAdminStorageProvider.java
    Thu Feb  3 08:57:11 2011
@@ -33,6 +33,7 @@
 
 /**
  * Filesystem backed implementation of the PAX <code>StorageProvider</code> 
service interface.
+ * This service is tenant aware.
  */
 public final class FSUserAdminStorageProvider implements StorageProvider {
 

Modified: 
branches/amdatu-dispatcher/amdatu-opensocial/profile/src/main/java/org/amdatu/opensocial/profile/service/PersonServiceImpl.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-opensocial/profile/src/main/java/org/amdatu/opensocial/profile/service/PersonServiceImpl.java
     (original)
+++ 
branches/amdatu-dispatcher/amdatu-opensocial/profile/src/main/java/org/amdatu/opensocial/profile/service/PersonServiceImpl.java
     Thu Feb  3 08:57:11 2011
@@ -73,7 +73,6 @@
     }
 
     public Future<Person> getPerson(UserId id, Set<String> fields, 
SecurityToken token) throws ProtocolException {
-        // TODO: determine tenant from user profile. For now we just take the 
first available tenant
         if (!"".equals(id.getUserId(token))) {
             Person person = getPerson(id.getUserId(token));
             if (person != null) {

Modified: 
branches/amdatu-dispatcher/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRegistrationServiceImpl.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRegistrationServiceImpl.java
     (original)
+++ 
branches/amdatu-dispatcher/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRegistrationServiceImpl.java
     Thu Feb  3 08:57:11 2011
@@ -45,12 +45,11 @@
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
-import org.osgi.service.http.HttpContext;
 import org.osgi.service.http.HttpService;
 import org.osgi.service.log.LogService;
 
 /**
- * This class is responsible for booting Wink as well as registration of 
dynamic resources.
+ * This class is responsible for booting Wink as well as registration of new 
REST services as servlets.
  *
  * @author ivol
  */
@@ -65,12 +64,11 @@
     private volatile BundleContext m_bundleContext;
     private volatile HttpContextServiceFactory m_httpContextServiceFactory;
 
-    // List of registered servlets, stored to be sure the servlet is registerd 
before unregistering it
+    // List of registered servlets, stored to be sure the servlet is 
registered before unregistering it
     private List<String> m_registeredServlets = new ArrayList<String>();
 
     // Our HTTP context
     private Component m_httpContextComponent;
-    private HttpContext m_httpContext;
     private Component m_spiComponent;
 
     /**
@@ -79,14 +77,12 @@
     public void init() {
         // Create our own http context and register resources
         m_httpContextComponent = 
m_httpContextServiceFactory.create(m_bundleContext, this);
-        m_httpContext = (HttpContext) m_httpContextComponent.getService();
 
         // Set the runtime delegate
         setRuntimeDelegate();
         registerSpiService();
 
         // Register REST dispatcher servlet
-
         m_logService.log(LogService.LOG_INFO, getClass().getName() + " service 
initialized");
     }
 
@@ -184,42 +180,29 @@
 
     private void addRestServlet(ServiceReference ref, Object service) {
         synchronized (m_registeredServlets) {
-            //try {
-            // Initialize the servlet
+               // Prepare init parameter used internally by Wink. Note that we 
must prefix the parameters
+               // by "init." according to the whiteboard style of servlet 
registration.
             Dictionary<String, String> initParams = new Hashtable<String, 
String>();
-            initParams.put("applicationConfigLocation", APP_RPOPS);
+            initParams.put("init.applicationConfigLocation", APP_RPOPS);
+            
+            // Create the Wink REST servlet
             String restPath = 
service.getClass().getAnnotation(Path.class).value();
             if (restPath.startsWith("/")) {
                 restPath = restPath.substring(1);
             }
-
             String tenantId = getTenantId(ref);
-
             WinkRestServlet restServlet = new WinkRestServlet(restPath, 
service, tenantId);
-            String servletUrl = "/" + RESOURCE_ID + "/" + restPath;
 
             // Register servlet whiteboard style
+            String servletUrl = "/" + RESOURCE_ID + "/" + restPath;
             registerServlet(tenantId, servletUrl, restServlet, initParams);
-            //m_httpService.registerServlet(servletUrl, restServlet, 
initParams, m_httpContext);
-            String reqProcAttr = restPath;
-            
//RegistrationUtils.registerInstances(restServlet.getServletContext(), 
reqProcAttr, service);
             m_registeredServlets.add(servletUrl);
             m_logService.log(LogService.LOG_DEBUG, "Wink application 
registered REST servlet '" + servletUrl + "'");
 
-            // Register a Wink servlet filter to forward requests from 
/rest/path to
-            // /rest/path/path
+            // Register a Wink servlet filter to forward requests from 
/rest/path to /rest/path/path
             WinkServletFilter filter = new WinkServletFilter(servletUrl, 
servletUrl + "/" + restPath);
             registerFilter(servletUrl, filter);
             m_logService.log(LogService.LOG_DEBUG, "Wink application 
registered REST servlet filter on '" + servletUrl + "'");
-
-            /*catch (ServletException e) {
-                m_logService.log(LogService.LOG_ERROR, "Failed to register 
servlet for REST service '"
-                    + service.getClass() + "'", e);
-            }
-            catch (NamespaceException e) {
-                m_logService.log(LogService.LOG_ERROR, "Failed to register 
servlet for REST service '"
-                    + service.getClass() + "'", e);
-            }*/
         }
     }
 

Modified: 
branches/amdatu-dispatcher/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRestServlet.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRestServlet.java
 (original)
+++ 
branches/amdatu-dispatcher/amdatu-web/rest-wink/src/main/java/org/amdatu/web/rest/wink/service/WinkRestServlet.java
 Thu Feb  3 08:57:11 2011
@@ -100,18 +100,8 @@
         
requestProcessor.storeRequestProcessorOnServletContext(getServletContext(), 
m_requestProcessorId);
     }
 
-    /*  public void init() throws ServletException {
-        if (getServletConfig() != null) {
-            super.init();
-        }
-    }*/
-
-    @Override
     public void init(ServletConfig config) throws ServletException {
-        // TODO Auto-generated method stub
         super.init(config);
-
-
         RegistrationUtils.registerInstances(getServletContext(), 
m_requestProcessorId, m_service);
     }
 }

Reply via email to