<?xml version="1.0" ?>
<component-set>
  <components>
  
  	<component>
      <role>org.apache.maven.archiva.security.ServletAuthenticator</role>
      <role-hint>default</role-hint>
      <implementation>org.apache.maven.archiva.security.ArchivaServletAuthenticator</implementation>
      <description>ArchivaServletAuthenticator</description>
      <requirements>
        <requirement>
          <role>org.codehaus.plexus.redback.system.SecuritySystem</role>
          <role-hint>testable</role-hint>
          <field-name>securitySystem</field-name>
        </requirement>
      </requirements>
    </component>
    
    <component>
      <role>org.apache.maven.archiva.security.UserRepositories</role>
      <role-hint>default</role-hint>
      <implementation>org.apache.maven.archiva.security.DefaultUserRepositories</implementation>
      <description>DefaultUserRepositories</description>
      <requirements>
        <requirement>
          <role>org.codehaus.plexus.redback.system.SecuritySystem</role>
          <role-hint>testable</role-hint>
          <field-name>securitySystem</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.rbac.RBACManager</role>
          <role-hint>memory</role-hint>
          <field-name>rbacManager</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.role.RoleManager</role>
          <role-hint>default</role-hint>
          <field-name>roleManager</field-name>
        </requirement>
        <requirement>
          <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
          <field-name>archivaConfiguration</field-name>
        </requirement>
      </requirements>
    </component>
    
    <component>
      <role>org.codehaus.plexus.redback.system.SecuritySystem</role>
      <role-hint>testable</role-hint>
      <implementation>org.codehaus.plexus.redback.system.DefaultSecuritySystem</implementation>
      <description>DefaultSecuritySystem:</description>
      <requirements>
        <requirement>
          <role>org.codehaus.plexus.redback.authentication.AuthenticationManager</role>
          <field-name>authnManager</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.authorization.Authorizer</role>
          <role-hint>rbac</role-hint>
          <field-name>authorizer</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.users.UserManager</role>
          <role-hint>memory</role-hint>
          <field-name>userManager</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.keys.KeyManager</role>
          <role-hint>memory</role-hint>
          <field-name>keyManager</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.policy.UserSecurityPolicy</role>
          <field-name>policy</field-name>
        </requirement>
      </requirements>
    </component>
    
    <component>
      <role>org.codehaus.plexus.redback.authorization.Authorizer</role>
      <role-hint>rbac</role-hint>
      <implementation>org.codehaus.plexus.redback.authorization.rbac.RbacAuthorizer</implementation>
      <description>RbacAuthorizer:</description>
      <requirements>
        <requirement>
          <role>org.codehaus.plexus.redback.rbac.RBACManager</role>
          <role-hint>memory</role-hint>
          <field-name>manager</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.users.UserManager</role>
          <role-hint>memory</role-hint>
          <field-name>userManager</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.authorization.rbac.evaluator.PermissionEvaluator</role>
          <role-hint>default</role-hint>
          <field-name>evaluator</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.configuration.UserConfiguration</role>
          <role-hint>default</role-hint>
          <field-name>config</field-name>
        </requirement>
      </requirements>
    </component>
    
    <component>
      <role>org.codehaus.plexus.redback.authorization.rbac.evaluator.PermissionEvaluator</role>
      <role-hint>default</role-hint>
      <implementation>org.codehaus.plexus.redback.authorization.rbac.evaluator.DefaultPermissionEvaluator</implementation>
      <requirements>
        <requirement>
          <role>org.codehaus.plexus.redback.users.UserManager</role>
          <role-hint>memory</role-hint>
          <field-name>userManager</field-name>
        </requirement>
      </requirements>
    </component>
    
    <component>
      <role>org.codehaus.plexus.redback.role.RoleManager</role>
      <role-hint>default</role-hint>
      <implementation>org.codehaus.plexus.redback.role.DefaultRoleManager</implementation>
      <description>RoleProfileManager:</description>
      <requirements>
        <requirement>
          <role>org.codehaus.plexus.redback.role.validator.RoleModelValidator</role>
          <role-hint>default</role-hint>
          <field-name>modelValidator</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.role.processor.RoleModelProcessor</role>
          <role-hint>default</role-hint>
          <field-name>modelProcessor</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.role.template.RoleTemplateProcessor</role>
          <role-hint>default</role-hint>
          <field-name>templateProcessor</field-name>
        </requirement>
        <requirement>
          <role>org.codehaus.plexus.redback.rbac.RBACManager</role>
          <role-hint>memory</role-hint>
          <field-name>rbacManager</field-name>
        </requirement>
      </requirements>
    </component>
    
    <component>
      <role>org.codehaus.plexus.redback.role.processor.RoleModelProcessor</role>
      <role-hint>default</role-hint>
      <implementation>org.codehaus.plexus.redback.role.processor.DefaultRoleModelProcessor</implementation>
      <description>DefaultRoleModelProcessor: inserts the components of the model that can be populated into the rbac manager</description>
      <requirements>
        <requirement>
          <role>org.codehaus.plexus.redback.rbac.RBACManager</role>
          <role-hint>memory</role-hint>
          <field-name>rbacManager</field-name>
        </requirement>
      </requirements>
    </component>
    
    <component>
      <role>org.codehaus.plexus.redback.role.template.RoleTemplateProcessor</role>
      <role-hint>default</role-hint>
      <implementation>org.codehaus.plexus.redback.role.template.DefaultRoleTemplateProcessor</implementation>
      <description>DefaultRoleTemplateProcessor: inserts the components of a template into the rbac manager</description>
      <requirements>
        <requirement>
          <role>org.codehaus.plexus.redback.rbac.RBACManager</role>
          <role-hint>memory</role-hint>
          <field-name>rbacManager</field-name>
        </requirement>
      </requirements>
    </component>
    
    <component>
      <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
      <implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
      <requirements>
        <requirement>
          <role>org.codehaus.plexus.registry.Registry</role>
          <role-hint>configured</role-hint>
        </requirement>
      </requirements>
    </component>
    <component>
      <role>org.codehaus.plexus.registry.Registry</role>
      <role-hint>configured</role-hint>
      <implementation>org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry</implementation>
      <configuration>
        <properties>
          <system/>
          <xml fileName="${basedir}/target/test-conf/archiva.xml"
               config-name="org.apache.maven.archiva.base" config-at="org.apache.maven.archiva"/>
        </properties>
      </configuration>
    </component>
    
  </components>
</component-set>
