Author: ate
Date: Thu Sep 25 13:17:23 2008
New Revision: 699072

URL: http://svn.apache.org/viewvc?rev=699072&view=rev
Log:
Yet untested generalization and improved managing of already processed entities 
when synchronizing all.
Not sure this actually is correct (will verify tomorrow), but logically it 
should like this.

Modified:
    
portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/DefaultJetspeedSecuritySynchronizer.java

Modified: 
portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/DefaultJetspeedSecuritySynchronizer.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/DefaultJetspeedSecuritySynchronizer.java?rev=699072&r1=699071&r2=699072&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/DefaultJetspeedSecuritySynchronizer.java
 (original)
+++ 
portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/DefaultJetspeedSecuritySynchronizer.java
 Thu Sep 25 13:17:23 2008
@@ -69,12 +69,20 @@
 
     public void synchronizeAll()
     {
+        setSynchronizing(true);
         try
         {
-            setSynchronizing(true);
-            synchronizePrincipalsByType(JetspeedPrincipalType.GROUP);
-            synchronizePrincipalsByType(JetspeedPrincipalType.ROLE);
-            synchronizePrincipalsByType(JetspeedPrincipalType.USER);
+            // don't skip any entity type when synchronizing all
+            Collection<String> skipEntities = new ArrayList<String>();
+            InternalSynchronizationState synchronizationState = new 
InternalSynchronizationState(skipEntities);
+            
+            for (String type : securityEntityManager.getSupportedEntityTypes())
+            {
+                for (Entity entity : 
securityEntityManager.getAllEntities(type))
+                {
+                    recursiveSynchronizeEntity(entity, synchronizationState);
+                }
+            }
         }
         finally
         {
@@ -82,24 +90,22 @@
         }
     }
 
-    public void synchronizePrincipalsByType(String principalTypeName)
+    public void synchronizePrincipalsByType(String type)
     {
+        setSynchronizing(true);
         try
         {
-            if (principalTypeName.equalsIgnoreCase(JetspeedPrincipalType.USER))
-            {
-                setSynchronizing(true);
-                synchronizePrincipals(JetspeedPrincipalType.USER);
-            }
-            else if 
(principalTypeName.equalsIgnoreCase(JetspeedPrincipalType.GROUP))
+            Collection<Entity> entites = 
securityEntityManager.getAllEntities(type);
+            Collection<String> skipEntities = new ArrayList<String>();
+            if (!type.equals(JetspeedPrincipalType.USER))
             {
-                setSynchronizing(true);
-                synchronizePrincipals(JetspeedPrincipalType.GROUP);
+                // skip synchronizing users when not synchronizing the USER 
type itself
+                skipEntities.add(JetspeedPrincipalType.USER);
             }
-            else if 
(principalTypeName.equalsIgnoreCase(JetspeedPrincipalType.ROLE))
+            InternalSynchronizationState synchronizationState = new 
InternalSynchronizationState(skipEntities);
+            for (Entity entity : entites)
             {
-                setSynchronizing(true);
-                synchronizePrincipals(JetspeedPrincipalType.ROLE);
+                recursiveSynchronizeEntity(entity, synchronizationState);
             }
         }
         finally
@@ -108,17 +114,6 @@
         }
     }
 
-    private void synchronizePrincipals(String type)
-    {
-        Collection<Entity> entites = 
securityEntityManager.getAllEntities(type);
-        Collection<String> skipEntities = new ArrayList<String>();
-        InternalSynchronizationState synchronizationState = new 
InternalSynchronizationState(skipEntities);
-        for (Entity entity : entites)
-        {
-            recursiveSynchronizeEntity(entity, synchronizationState);
-        }
-    }
-
     private void recursiveSynchronizeEntity(Entity entity, 
InternalSynchronizationState syncState)
     {
         JetspeedPrincipal updatedPrincipal = null;
@@ -138,9 +133,9 @@
 
     public void synchronizeUserPrincipal(String name)
     {
+        setSynchronizing(true);
         try
         {
-            setSynchronizing(true);
             // don't process relations going towards users to avoid sync'ing 
huge
             // amounts of data.
             // TODO: allow processing of required relations towards users.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to