Author: jmcconnell
Date: Wed May 23 13:33:54 2007
New Revision: 541057

URL: http://svn.apache.org/viewvc?view=rev&rev=541057
Log:
add repository roles from the configuration

Modified:
    
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ConfigurationSynchronization.java

Modified: 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ConfigurationSynchronization.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ConfigurationSynchronization.java?view=diff&rev=541057&r1=541056&r2=541057
==============================================================================
--- 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ConfigurationSynchronization.java
 (original)
+++ 
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/startup/ConfigurationSynchronization.java
 Wed May 23 13:33:54 2007
@@ -30,6 +30,8 @@
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import 
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.redback.role.RoleManager;
+import org.codehaus.plexus.redback.role.RoleManagerException;
 import org.codehaus.plexus.registry.Registry;
 import org.codehaus.plexus.registry.RegistryListener;
 
@@ -55,6 +57,11 @@
     private ArchivaDAO dao;
 
     /**
+     * @plexus.requirement role-hint="default"
+     */
+    RoleManager roleManager;
+    
+    /**
      * @plexus.requirement
      */
     private ArchivaConfiguration archivaConfiguration;
@@ -102,13 +109,33 @@
                     ArchivaRepository drepo = 
ArchivaConfigurationAdaptor.toArchivaRepository( repoConfig );
                     drepo.getModel().setCreationSource( "configuration" );
                     dao.getRepositoryDAO().saveRepository( drepo );
-                }
+                }                                               
             }
             catch ( ArchivaDatabaseException e )
             {
                 // Log error.
                 getLogger().error( "Unable to add configured repositories to 
the database: " + e.getMessage(), e );
             }
+            
+            // manage roles for repositories
+            try 
+            {
+                if ( !roleManager.templatedRoleExists( 
"archiva-repository-observer", repoConfig.getId() ) )
+                {
+                    roleManager.createTemplatedRole( 
"archiva-repository-observer", repoConfig.getId() );
+                }              
+                
+                if ( !roleManager.templatedRoleExists( 
"archiva-repository-manager", repoConfig.getId() ) );
+                {
+                    roleManager.createTemplatedRole( 
"archiva-repository-manager", repoConfig.getId() );
+                }                                     
+            }
+            catch ( RoleManagerException e )
+            {
+                // Log error.
+                getLogger().error( "Unable to create roles for configured 
repositories: " + e.getMessage(), e );
+            }
+            
         }
     }
 


Reply via email to