Author: olamy
Date: Tue Aug 30 15:23:55 2011
New Revision: 1163258
URL: http://svn.apache.org/viewvc?rev=1163258&view=rev
Log:
[MRM-1504] new repository admin module : start using it in webapp module for
add.
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdmin.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
Tue Aug 30 15:23:55 2011
@@ -415,6 +415,37 @@
<defaultValue>default</defaultValue>
</field>
</fields>
+ <codeSegments>
+ <codeSegment>
+ <version>1.0.0+</version>
+ <code><![CDATA[
+ public int hashCode()
+ {
+ int result = 17;
+ result = 37 * result + ( id != null ? id.hashCode() : 0 );
+ return result;
+ }
+
+ public boolean equals( Object other )
+ {
+ if ( this == other )
+ {
+ return true;
+ }
+
+ if ( !( other instanceof AbstractRepositoryConfiguration ) )
+ {
+ return false;
+ }
+
+ AbstractRepositoryConfiguration that =
(AbstractRepositoryConfiguration) other;
+ boolean result = true;
+ result = result && ( getId() == null ? that.getId() == null :
getId().equals( that.getId() ) );
+ return result;
+ }
+ ]]></code>
+ </codeSegment>
+ </codeSegments>
</class>
<class>
<name>RemoteRepositoryConfiguration</name>
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
Tue Aug 30 15:23:55 2011
@@ -108,7 +108,7 @@ public class DefaultManagedRepositoryAdm
for ( ManagedRepositoryConfiguration repoConfig : managedRepoConfigs )
{
- // TODO staging repo too
+ // TODO add staging repo too
ManagedRepository repo =
new ManagedRepository( repoConfig.getId(),
repoConfig.getName(), repoConfig.getLocation(),
repoConfig.getLayout(),
repoConfig.isSnapshots(), repoConfig.isReleases(),
@@ -179,7 +179,7 @@ public class DefaultManagedRepositoryAdm
}
}
- // FIXME checKid non empty
+ // FIXME checkId non empty
if ( !GenericValidator.matchRegexp( repoId,
REPOSITORY_ID_VALID_EXPRESSION ) )
{
@@ -583,4 +583,25 @@ public class DefaultManagedRepositoryAdm
log.debug( "removed user roles associated with repository {}", repoId
);
}
+
+
+ public ArchivaConfiguration getArchivaConfiguration()
+ {
+ return archivaConfiguration;
+ }
+
+ public void setArchivaConfiguration( ArchivaConfiguration
archivaConfiguration )
+ {
+ this.archivaConfiguration = archivaConfiguration;
+ }
+
+ public RoleManager getRoleManager()
+ {
+ return roleManager;
+ }
+
+ public void setRoleManager( RoleManager roleManager )
+ {
+ this.roleManager = roleManager;
+ }
}
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdmin.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdmin.java?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdmin.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdmin.java
Tue Aug 30 15:23:55 2011
@@ -21,6 +21,7 @@ package org.apache.archiva.admin.reposit
import org.apache.archiva.admin.AuditInformation;
import org.apache.archiva.admin.repository.RepositoryAdminException;
+import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import java.util.List;
@@ -48,5 +49,4 @@ public interface ManagedRepositoryAdmin
AuditInformation auditInformation )
throws RepositoryAdminException;
-
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml Tue Aug 30
15:23:55 2011
@@ -276,7 +276,6 @@
<dependency>
<groupId>org.codehaus.redback</groupId>
<artifactId>redback-rest-services</artifactId>
- <scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java
Tue Aug 30 15:23:55 2011
@@ -19,6 +19,8 @@ package org.apache.maven.archiva.web.act
* under the License.
*/
+import org.apache.archiva.admin.AuditInformation;
+import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin;
import org.apache.archiva.audit.Auditable;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.Configuration;
@@ -28,10 +30,13 @@ import org.apache.maven.archiva.configur
import org.apache.maven.archiva.security.ArchivaRoleConstants;
import org.apache.maven.archiva.web.action.AbstractActionSupport;
import org.codehaus.plexus.redback.rbac.Resource;
+import org.codehaus.plexus.redback.users.User;
import org.codehaus.plexus.registry.RegistryException;
import org.codehaus.redback.integration.interceptor.SecureAction;
import org.codehaus.redback.integration.interceptor.SecureActionBundle;
import org.codehaus.redback.integration.interceptor.SecureActionException;
+import org.codehaus.redback.rest.services.RedbackAuthenticationThreadLocal;
+import org.codehaus.redback.rest.services.RedbackRequestInformation;
import javax.inject.Inject;
import java.io.IOException;
@@ -56,6 +61,9 @@ public abstract class AbstractRepositori
@Inject
protected ArchivaConfiguration archivaConfiguration;
+ @Inject
+ private ManagedRepositoryAdmin managedRepositoryAdmin;
+
public ArchivaConfiguration getArchivaConfiguration()
{
return archivaConfiguration;
@@ -117,4 +125,25 @@ public abstract class AbstractRepositori
return new ArrayList<ProxyConnectorConfiguration>(
archivaConfiguration.getConfiguration().getProxyConnectors() );
}
+
+
+ protected AuditInformation getAuditInformation()
+ {
+ RedbackRequestInformation redbackRequestInformation =
RedbackAuthenticationThreadLocal.get();
+ User user = redbackRequestInformation == null ? null :
redbackRequestInformation.getUser();
+ String remoteAddr = redbackRequestInformation == null ? "null" :
redbackRequestInformation.getRemoteAddr();
+ AuditInformation auditInformation = new AuditInformation( user,
remoteAddr);
+
+ return auditInformation;
+ }
+
+ public ManagedRepositoryAdmin getManagedRepositoryAdmin()
+ {
+ return managedRepositoryAdmin;
+ }
+
+ public void setManagedRepositoryAdmin( ManagedRepositoryAdmin
managedRepositoryAdmin )
+ {
+ this.managedRepositoryAdmin = managedRepositoryAdmin;
+ }
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java
Tue Aug 30 15:23:55 2011
@@ -21,25 +21,23 @@ package org.apache.maven.archiva.web.act
import com.opensymphony.xwork2.Preparable;
import com.opensymphony.xwork2.Validateable;
-import org.apache.archiva.audit.AuditEvent;
+import org.apache.archiva.admin.repository.RepositoryAdminException;
+import org.apache.archiva.admin.repository.managed.ManagedRepository;
+import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin;
import org.apache.commons.lang.StringUtils;
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.codehaus.plexus.redback.role.RoleManagerException;
-import org.codehaus.plexus.taskqueue.TaskQueueException;
import org.codehaus.redback.components.scheduler.CronExpressionValidator;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
+import javax.inject.Inject;
import java.io.File;
-import java.io.IOException;
/**
* AddManagedRepositoryAction
*
* @version $Id$
- * <p/>
- * plexus.component role="com.opensymphony.xwork2.Action"
role-hint="addManagedRepositoryAction" instantiation-strategy="per-lookup"
*/
@Controller( "addManagedRepositoryAction" )
@Scope( "prototype" )
@@ -48,6 +46,7 @@ public class AddManagedRepositoryAction
implements Preparable, Validateable
{
/**
+ * FIXME we must manipulate beans from repo admin api
* The model for this action.
*/
private ManagedRepositoryConfiguration repository;
@@ -93,56 +92,18 @@ public class AddManagedRepositoryAction
private String save()
{
- Configuration configuration = archivaConfiguration.getConfiguration();
-
- String result;
+ String result = SUCCESS;
try
{
- addRepository( repository, configuration );
- triggerAuditEvent( repository.getId(), null,
AuditEvent.ADD_MANAGED_REPO );
- addRepositoryRoles( repository );
-
- if ( stageNeeded )
- {
- ManagedRepositoryConfiguration stagingRepository =
getStageRepoConfig();
-
- addRepository( stagingRepository, configuration );
- triggerAuditEvent( stagingRepository.getId(), null,
AuditEvent.ADD_MANAGED_REPO );
- addRepositoryRoles( stagingRepository );
-
- }
-
- result = saveConfiguration( configuration );
-
- //MRM-1342 Repository statistics report doesn't appear to be
working correctly
- //scan repository when adding of repository is successful
- if ( result.equals( SUCCESS ) )
- {
- try
- {
- executeRepositoryScanner( repository.getId() );
-
- if ( stageNeeded )
- {
- ManagedRepositoryConfiguration stagingRepository =
getStageRepoConfig();
- executeRepositoryScanner( stagingRepository.getId() );
- }
- }
- catch ( TaskQueueException e )
- {
- log.warn( new StringBuilder( "Unable to scan repository ["
).append( repository.getId() ).append( "]: " ).append(
- e.getMessage() ).toString(), e );
- }
- }
- }
- catch ( RoleManagerException e )
- {
- addActionError( "Role Manager Exception: " + e.getMessage() );
- result = INPUT;
+ ManagedRepository managedRepository =
+ new ManagedRepository( repository.getId(),
repository.getName(), repository.getLocation(),
+ repository.getLayout(),
repository.isSnapshots(), repository.isReleases(),
+ repository.isBlockRedeployments(),
repository.getRefreshCronExpression() );
+ getManagedRepositoryAdmin().addManagedRepository(
managedRepository, stageNeeded, getAuditInformation() );
}
- catch ( IOException e )
+ catch ( RepositoryAdminException e )
{
- addActionError( "Role Manager Exception: " + e.getMessage() );
+ addActionError( "Repository Administration Exception: " +
e.getMessage() );
result = INPUT;
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java
Tue Aug 30 15:23:55 2011
@@ -22,6 +22,7 @@ package org.apache.maven.archiva.web.act
import com.opensymphony.xwork2.validator.ActionValidatorManager;
import java.io.File;
+import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.struts2.StrutsSpringTestCase;
@@ -121,4 +122,9 @@ public abstract class AbstractManagedRep
return managedRepositoryConfiguration;
}
+
+ protected ManagedRepositoryAdmin getManagedRepositoryAdmin()
+ {
+ return applicationContext.getBean( ManagedRepositoryAdmin.class );
+ }
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
Tue Aug 30 15:23:55 2011
@@ -20,6 +20,7 @@ package org.apache.maven.archiva.web.act
*/
import com.opensymphony.xwork2.Action;
+import
org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin;
import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler;
import org.apache.archiva.scheduler.repository.RepositoryTask;
import org.apache.commons.io.FileUtils;
@@ -63,11 +64,12 @@ public class AddManagedRepositoryActionT
private MockControl registryControl;
private ArchivaConfiguration archivaConfiguration;
-
+
private MockControl repositoryTaskSchedulerControl;
-
+
private RepositoryArchivaTaskScheduler repositoryTaskScheduler;
+
@Override
protected void setUp()
throws Exception
@@ -89,10 +91,14 @@ public class AddManagedRepositoryActionT
action.setRegistry( registry );
repositoryTaskSchedulerControl = MockClassControl.createControl(
RepositoryArchivaTaskScheduler.class );
- repositoryTaskScheduler = ( RepositoryArchivaTaskScheduler )
repositoryTaskSchedulerControl.getMock();
+ repositoryTaskScheduler = (RepositoryArchivaTaskScheduler)
repositoryTaskSchedulerControl.getMock();
action.setRepositoryTaskScheduler( repositoryTaskScheduler );
-
+
location = new File( "target/test/location" );
+ ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin()
).setArchivaConfiguration( archivaConfiguration );
+ ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin()
).setRoleManager( roleManager );
+ action.setManagedRepositoryAdmin( getManagedRepositoryAdmin() );
+
}
public void testSecureActionBundle()
@@ -157,7 +163,7 @@ public class AddManagedRepositoryActionT
registryControl.setReturnValue( "target/test" );
registryControl.replay();
-
+
RepositoryTask task = new RepositoryTask();
task.setRepositoryId( REPO_ID );
repositoryTaskScheduler.isProcessingRepositoryTask( REPO_ID );