Return-Path: X-Original-To: apmail-archiva-commits-archive@www.apache.org Delivered-To: apmail-archiva-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D2DC4840B for ; Wed, 7 Sep 2011 20:34:13 +0000 (UTC) Received: (qmail 59290 invoked by uid 500); 7 Sep 2011 20:34:13 -0000 Delivered-To: apmail-archiva-commits-archive@archiva.apache.org Received: (qmail 59243 invoked by uid 500); 7 Sep 2011 20:34:13 -0000 Mailing-List: contact commits-help@archiva.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@archiva.apache.org Delivered-To: mailing list commits@archiva.apache.org Received: (qmail 59230 invoked by uid 99); 7 Sep 2011 20:34:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 07 Sep 2011 20:34:12 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 07 Sep 2011 20:34:10 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 2B36923889E7 for ; Wed, 7 Sep 2011 20:33:50 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1166391 - in /archiva/trunk: ./ archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ archiva-modules/archiva-base/archiva-repository-admin/ archiva-modules/archiva-base/archiva-r... Date: Wed, 07 Sep 2011 20:33:49 -0000 To: commits@archiva.apache.org From: olamy@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110907203350.2B36923889E7@eris.apache.org> Author: olamy Date: Wed Sep 7 20:33:48 2011 New Revision: 1166391 URL: http://svn.apache.org/viewvc?rev=1166391&view=rev Log: use beanlib for wrappers constructions Added: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorOrderComparator.java - copied, changed from r1166163, archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorSelectionPredicate.java - copied, changed from r1166163, archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java Modified: archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/pom.xml archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/DefaultProxyConnectorAdmin.java archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorAdmin.java archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/RemoteRepositoryAdmin.java archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorAdminTest.java archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.java archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java archiva/trunk/pom.xml Modified: archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java Wed Sep 7 20:33:48 2011 @@ -24,6 +24,7 @@ import org.apache.maven.archiva.configur import java.util.Comparator; /** + * @deprecated * ProxyConnectorConfigurationOrderComparator * * @version $Id$ Modified: archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java Wed Sep 7 20:33:48 2011 @@ -24,8 +24,7 @@ import org.apache.commons.lang.StringUti import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; /** - * ProxyConnectorPredicate - * + * ProxyConnectorPredicate * @version $Id$ */ public class ProxyConnectorSelectionPredicate Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/pom.xml URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/pom.xml?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/pom.xml (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/pom.xml Wed Sep 7 20:33:48 2011 @@ -47,7 +47,10 @@ javax.inject javax.inject - 1 + + + net.sf.beanlib + beanlib org.springframework Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/DefaultProxyConnectorAdmin.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/DefaultProxyConnectorAdmin.java?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/DefaultProxyConnectorAdmin.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/DefaultProxyConnectorAdmin.java Wed Sep 7 20:33:48 2011 @@ -18,6 +18,7 @@ package org.apache.archiva.admin.reposit * under the License. */ +import net.sf.beanlib.provider.replicator.BeanReplicator; import org.apache.archiva.admin.AuditInformation; import org.apache.archiva.admin.repository.AbstractRepositoryAdmin; import org.apache.archiva.admin.repository.RepositoryAdminException; @@ -33,8 +34,11 @@ import org.springframework.stereotype.Se import javax.inject.Inject; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; +import java.util.Iterator; import java.util.List; +import java.util.Map; /** * @author Olivier Lamy @@ -150,8 +154,42 @@ public class DefaultProxyConnectorAdmin return rawPatterns; } - protected ProxyConnectorConfiguration findProxyConnector( String sourceId, String targetId, - Configuration configuration ) + public Map> getProxyConnectorAsMap() + throws RepositoryAdminException + { + java.util.Map> proxyConnectorMap = + new HashMap>(); + + Iterator it = getProxyConnectors().iterator(); + while ( it.hasNext() ) + { + ProxyConnector proxyConfig = it.next(); + String key = proxyConfig.getSourceRepoId(); + + java.util.List connectors = proxyConnectorMap.get( key ); + if ( connectors == null ) + { + connectors = new ArrayList(); + proxyConnectorMap.put( key, connectors ); + } + + connectors.add( proxyConfig ); + + Collections.sort( connectors, ProxyConnectorOrderComparator.getInstance() ); + } + + return proxyConnectorMap; + } + + public ProxyConnector findProxyConnector( String sourceId, String targetId ) + throws RepositoryAdminException + { + return getProxyConnector( + findProxyConnector( sourceId, targetId, getArchivaConfiguration().getConfiguration() ) ); + } + + private ProxyConnectorConfiguration findProxyConnector( String sourceId, String targetId, + Configuration configuration ) { if ( StringUtils.isBlank( sourceId ) ) { @@ -169,6 +207,7 @@ public class DefaultProxyConnectorAdmin protected ProxyConnectorConfiguration getProxyConnectorConfiguration( ProxyConnector proxyConnector ) { + /* ProxyConnectorConfiguration proxyConnectorConfiguration = new ProxyConnectorConfiguration(); proxyConnectorConfiguration.setOrder( proxyConnector.getOrder() ); proxyConnectorConfiguration.setBlackListPatterns( @@ -181,7 +220,13 @@ public class DefaultProxyConnectorAdmin proxyConnectorConfiguration.setProxyId( proxyConnector.getProxyId() ); proxyConnectorConfiguration.setSourceRepoId( proxyConnector.getSourceRepoId() ); proxyConnectorConfiguration.setTargetRepoId( proxyConnector.getTargetRepoId() ); - return proxyConnectorConfiguration; + return proxyConnectorConfiguration;*/ + return new BeanReplicator().replicateBean( proxyConnector, ProxyConnectorConfiguration.class ); + } + + protected ProxyConnector getProxyConnector( ProxyConnectorConfiguration proxyConnectorConfiguration ) + { + return new BeanReplicator().replicateBean( proxyConnectorConfiguration, ProxyConnector.class ); } protected void validateProxyConnector( ProxyConnector proxyConnector ) Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorAdmin.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorAdmin.java?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorAdmin.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorAdmin.java Wed Sep 7 20:33:48 2011 @@ -22,6 +22,7 @@ import org.apache.archiva.admin.AuditInf import org.apache.archiva.admin.repository.RepositoryAdminException; import java.util.List; +import java.util.Map; /** * No update method here as id is : sourceRepoId and targetRepoId, use delete then add. @@ -43,4 +44,10 @@ public interface ProxyConnectorAdmin Boolean deleteProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation ) throws RepositoryAdminException; + Map> getProxyConnectorAsMap() + throws RepositoryAdminException; + + ProxyConnector findProxyConnector( String sourceId, String targetId ) + throws RepositoryAdminException; + } Copied: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorOrderComparator.java (from r1166163, archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java) URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorOrderComparator.java?p2=archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorOrderComparator.java&p1=archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java&r1=1166163&r2=1166391&rev=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorConfigurationOrderComparator.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorOrderComparator.java Wed Sep 7 20:33:48 2011 @@ -1,5 +1,4 @@ -package org.apache.maven.archiva.configuration.functors; - +package org.apache.archiva.admin.repository.proxyconnector; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -9,7 +8,7 @@ package org.apache.maven.archiva.configu * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an @@ -19,21 +18,18 @@ package org.apache.maven.archiva.configu * under the License. */ -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; - import java.util.Comparator; /** - * ProxyConnectorConfigurationOrderComparator - * - * @version $Id$ + * @author Olivier Lamy + * @since 1.4 */ -public class ProxyConnectorConfigurationOrderComparator - implements Comparator +public class ProxyConnectorOrderComparator + implements Comparator { - private static ProxyConnectorConfigurationOrderComparator INSTANCE = new ProxyConnectorConfigurationOrderComparator(); - - public int compare( ProxyConnectorConfiguration o1, ProxyConnectorConfiguration o2 ) + private static ProxyConnectorOrderComparator INSTANCE = new ProxyConnectorOrderComparator(); + + public int compare( ProxyConnector o1, ProxyConnector o2 ) { if ( o1 == null && o2 == null ) { @@ -56,7 +52,7 @@ public class ProxyConnectorConfiguration { return 1; } - + if ( o1.getOrder() != 0 && o2.getOrder() == 0 ) { return -1; @@ -65,7 +61,7 @@ public class ProxyConnectorConfiguration return o1.getOrder() - o2.getOrder(); } - public static ProxyConnectorConfigurationOrderComparator getInstance() + public static ProxyConnectorOrderComparator getInstance() { return INSTANCE; } Copied: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorSelectionPredicate.java (from r1166163, archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java) URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorSelectionPredicate.java?p2=archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorSelectionPredicate.java&p1=archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java&r1=1166163&r2=1166391&rev=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/functors/ProxyConnectorSelectionPredicate.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorSelectionPredicate.java Wed Sep 7 20:33:48 2011 @@ -1,5 +1,4 @@ -package org.apache.maven.archiva.configuration.functors; - +package org.apache.archiva.admin.repository.proxyconnector; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -9,7 +8,7 @@ package org.apache.maven.archiva.configu * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an @@ -21,12 +20,10 @@ package org.apache.maven.archiva.configu import org.apache.commons.collections.Predicate; import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; /** - * ProxyConnectorPredicate - * - * @version $Id$ + * @author Olivier Lamy + * @since 1.4 */ public class ProxyConnectorSelectionPredicate implements Predicate @@ -45,14 +42,13 @@ public class ProxyConnectorSelectionPred { boolean satisfies = false; - if ( object instanceof ProxyConnectorConfiguration ) + if ( object instanceof ProxyConnector ) { - ProxyConnectorConfiguration connector = (ProxyConnectorConfiguration) object; - return ( StringUtils.equals( sourceId, connector.getSourceRepoId() ) && StringUtils - .equals( targetId, connector.getTargetRepoId() ) ); + ProxyConnector connector = (ProxyConnector) object; + return ( StringUtils.equals( sourceId, connector.getSourceRepoId() ) && StringUtils.equals( targetId, + connector.getTargetRepoId() ) ); } return satisfies; } - } Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/DefaultRemoteRepositoryAdmin.java Wed Sep 7 20:33:48 2011 @@ -29,7 +29,9 @@ import org.apache.maven.archiva.configur import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author Olivier Lamy @@ -159,6 +161,19 @@ public class DefaultRemoteRepositoryAdmi return Boolean.TRUE; } + public Map getRemoteRepositoriesAsMap() + throws RepositoryAdminException + { + java.util.Map map = new HashMap(); + + for ( RemoteRepository repo : getRemoteRepositories() ) + { + map.put( repo.getId(), repo ); + } + + return map; + } + private RemoteRepositoryConfiguration getRemoteRepositoryConfiguration( RemoteRepository remoteRepository ) { RemoteRepositoryConfiguration remoteRepositoryConfiguration = new RemoteRepositoryConfiguration(); Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/RemoteRepositoryAdmin.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/RemoteRepositoryAdmin.java?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/RemoteRepositoryAdmin.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/remote/RemoteRepositoryAdmin.java Wed Sep 7 20:33:48 2011 @@ -23,6 +23,7 @@ import org.apache.archiva.admin.AuditInf import org.apache.archiva.admin.repository.RepositoryAdminException; import java.util.List; +import java.util.Map; /** * @author Olivier Lamy @@ -44,4 +45,7 @@ public interface RemoteRepositoryAdmin Boolean updateRemoteRepository( RemoteRepository remoteRepository, AuditInformation auditInformation ) throws RepositoryAdminException; + + Map getRemoteRepositoriesAsMap() + throws RepositoryAdminException; } Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorAdminTest.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorAdminTest.java?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorAdminTest.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/proxyconnector/ProxyConnectorAdminTest.java Wed Sep 7 20:33:48 2011 @@ -23,6 +23,8 @@ import org.apache.archiva.admin.reposito import org.apache.archiva.audit.AuditEvent; import org.junit.Test; +import java.util.Arrays; + /** * @author Olivier Lamy */ @@ -81,12 +83,15 @@ public class ProxyConnectorAdminTest ProxyConnector proxyConnector = new ProxyConnector(); proxyConnector.setSourceRepoId( "snapshots" ); proxyConnector.setTargetRepoId( "central" ); + proxyConnector.setWhiteListPatterns( Arrays.asList( "foo", "bar" ) ); proxyConnectorAdmin.addProxyConnector( proxyConnector, getFakeAuditInformation() ); assertFalse( proxyConnectorAdmin.getProxyConnectors().isEmpty() ); assertEquals( 3, proxyConnectorAdmin.getProxyConnectors().size() ); assertNotNull( proxyConnectorAdmin.getProxyConnector( "snapshots", "central" ) ); + assertEquals( Arrays.asList( "foo", "bar" ), + proxyConnectorAdmin.getProxyConnector( "snapshots", "central" ).getWhiteListPatterns() ); proxyConnectorAdmin.deleteProxyConnector( proxyConnector, getFakeAuditInformation() ); @@ -123,4 +128,12 @@ public class ProxyConnectorAdminTest mockAuditListener.clearEvents(); } + @Test + public void findProxyConnector() + throws Exception + { + ProxyConnector proxyConnector = proxyConnectorAdmin.findProxyConnector( "internal", "central" ); + assertNotNull( proxyConnector ); + } + } Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.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/connectors/proxy/AbstractProxyConnectorAction.java?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.java (original) +++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.java Wed Sep 7 20:33:48 2011 @@ -19,29 +19,25 @@ package org.apache.maven.archiva.web.act * under the License. */ +import org.apache.archiva.admin.repository.RepositoryAdminException; +import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin; +import org.apache.archiva.admin.repository.proxyconnector.ProxyConnector; +import org.apache.archiva.admin.repository.proxyconnector.ProxyConnectorAdmin; +import org.apache.archiva.admin.repository.remote.RemoteRepositoryAdmin; import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.functors.NotPredicate; import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.Configuration; -import org.apache.maven.archiva.configuration.IndeterminateConfigurationException; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.configuration.functors.ProxyConnectorSelectionPredicate; import org.apache.maven.archiva.web.action.AbstractActionSupport; import org.codehaus.plexus.redback.rbac.Resource; -import org.codehaus.plexus.registry.RegistryException; - -import java.util.List; -import java.util.Map; import org.codehaus.redback.integration.interceptor.SecureAction; import org.codehaus.redback.integration.interceptor.SecureActionBundle; import org.codehaus.redback.integration.interceptor.SecureActionException; import javax.inject.Inject; +import java.util.List; +import java.util.Map; /** - * AbstractProxyConnectorAction + * AbstractProxyConnectorAction * * @version $Id$ */ @@ -52,7 +48,13 @@ public abstract class AbstractProxyConne public static final String DIRECT_CONNECTION = "(direct connection)"; @Inject - protected ArchivaConfiguration archivaConfiguration; + private ProxyConnectorAdmin proxyConnectorAdmin; + + @Inject + private RemoteRepositoryAdmin remoteRepositoryAdmin; + + @Inject + private ManagedRepositoryAdmin managedRepositoryAdmin; public SecureActionBundle getSecureActionBundle() throws SecureActionException @@ -65,17 +67,15 @@ public abstract class AbstractProxyConne return bundle; } - public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration ) - { - this.archivaConfiguration = archivaConfiguration; - } - protected void addProxyConnector( ProxyConnectorConfiguration proxyConnector ) + protected void addProxyConnector( ProxyConnector proxyConnector ) + throws RepositoryAdminException { - getConfig().addProxyConnector( proxyConnector ); + getProxyConnectorAdmin().addProxyConnector( proxyConnector, getAuditInformation() ); } - protected ProxyConnectorConfiguration findProxyConnector( String sourceId, String targetId ) + protected ProxyConnector findProxyConnector( String sourceId, String targetId ) + throws RepositoryAdminException { if ( StringUtils.isBlank( sourceId ) ) { @@ -87,50 +87,59 @@ public abstract class AbstractProxyConne return null; } - ProxyConnectorSelectionPredicate selectedProxy = new ProxyConnectorSelectionPredicate( sourceId, targetId ); - return (ProxyConnectorConfiguration) CollectionUtils.find( getConfig().getProxyConnectors(), selectedProxy ); + return getProxyConnectorAdmin().findProxyConnector( sourceId, targetId ); } - protected Configuration getConfig() + protected Map> createProxyConnectorMap() + throws RepositoryAdminException { - return this.archivaConfiguration.getConfiguration(); + return getProxyConnectorAdmin().getProxyConnectorAsMap(); } - protected Map> createProxyConnectorMap() + protected void removeConnector( String sourceId, String targetId ) + throws RepositoryAdminException { - return getConfig().getProxyConnectorAsMap(); + ProxyConnector proxyConnector = findProxyConnector( sourceId, targetId ); + if ( proxyConnector != null ) + { + getProxyConnectorAdmin().deleteProxyConnector( proxyConnector, getAuditInformation() ); + } } - protected void removeConnector( String sourceId, String targetId ) + protected void removeProxyConnector( ProxyConnector connector ) + throws RepositoryAdminException { - ProxyConnectorSelectionPredicate selectedProxy = new ProxyConnectorSelectionPredicate( sourceId, targetId ); - NotPredicate notSelectedProxy = new NotPredicate( selectedProxy ); - CollectionUtils.filter( getConfig().getProxyConnectors(), notSelectedProxy ); + getProxyConnectorAdmin().deleteProxyConnector( connector, getAuditInformation() ); } - protected void removeProxyConnector( ProxyConnectorConfiguration connector ) + + public ProxyConnectorAdmin getProxyConnectorAdmin() { - getConfig().removeProxyConnector( connector ); + return proxyConnectorAdmin; } - protected String saveConfiguration() + public void setProxyConnectorAdmin( ProxyConnectorAdmin proxyConnectorAdmin ) { - try - { - archivaConfiguration.save( getConfig() ); - addActionMessage( "Successfully saved configuration" ); - } - catch ( RegistryException e ) - { - addActionError( "Unable to save configuration: " + e.getMessage() ); - return INPUT; - } - catch ( IndeterminateConfigurationException e ) - { - addActionError( e.getMessage() ); - return INPUT; - } + this.proxyConnectorAdmin = proxyConnectorAdmin; + } + + public RemoteRepositoryAdmin getRemoteRepositoryAdmin() + { + return remoteRepositoryAdmin; + } + + public void setRemoteRepositoryAdmin( RemoteRepositoryAdmin remoteRepositoryAdmin ) + { + this.remoteRepositoryAdmin = remoteRepositoryAdmin; + } - return SUCCESS; + 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/connectors/proxy/AbstractProxyConnectorFormAction.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/connectors/proxy/AbstractProxyConnectorFormAction.java?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java (original) +++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java Wed Sep 7 20:33:48 2011 @@ -19,27 +19,26 @@ package org.apache.maven.archiva.web.act * under the License. */ -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.google.common.collect.Lists; -import org.apache.archiva.audit.AuditListener; +import com.opensymphony.xwork2.Preparable; +import org.apache.archiva.admin.repository.RepositoryAdminException; +import org.apache.archiva.admin.repository.proxyconnector.ProxyConnector; import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; +import org.apache.maven.archiva.configuration.ArchivaConfiguration; import org.apache.maven.archiva.policies.DownloadErrorPolicy; import org.apache.maven.archiva.policies.Policy; import org.apache.maven.archiva.policies.PostDownloadPolicy; import org.apache.maven.archiva.policies.PreDownloadPolicy; -import com.opensymphony.xwork2.Preparable; - import javax.annotation.PostConstruct; +import javax.inject.Inject; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** - * AbstractProxyConnectorFormAction - generic fields and methods for either add or edit actions related with the - * Proxy Connector. + * AbstractProxyConnectorFormAction - generic fields and methods for either add or edit actions related with the + * Proxy Connector. * * @version $Id$ */ @@ -94,8 +93,10 @@ public abstract class AbstractProxyConne /** * The model for this action. */ - protected ProxyConnectorConfiguration connector; + protected ProxyConnector connector; + @Inject + private ArchivaConfiguration archivaConfiguration; @PostConstruct public void initialize() @@ -107,38 +108,38 @@ public abstract class AbstractProxyConne } protected List escapePatterns( List patterns ) - { + { List escapedPatterns = new ArrayList(); - if( patterns != null ) + if ( patterns != null ) { - for( String pattern : patterns ) + for ( String pattern : patterns ) { escapedPatterns.add( StringUtils.replace( pattern, "\\", "\\\\" ) ); } } - + return escapedPatterns; } - + protected List unescapePatterns( List patterns ) { List rawPatterns = new ArrayList(); - if( patterns != null ) + if ( patterns != null ) { - for( String pattern : patterns ) + for ( String pattern : patterns ) { rawPatterns.add( StringUtils.replace( pattern, "\\\\", "\\" ) ); } } - + return rawPatterns; } - + private String escapePattern( String pattern ) { return StringUtils.replace( pattern, "\\", "\\\\" ); } - + public String addBlackListPattern() { String pattern = getBlackListPattern(); @@ -147,17 +148,17 @@ public abstract class AbstractProxyConne { addActionError( "Cannot add a blank black list pattern." ); } - + if ( !hasActionErrors() ) { getConnector().getBlackListPatterns().add( escapePattern( pattern ) ); setBlackListPattern( null ); } - + return INPUT; } - @SuppressWarnings("unchecked") + @SuppressWarnings( "unchecked" ) public String addProperty() { String key = getPropertyKey(); @@ -197,7 +198,7 @@ public abstract class AbstractProxyConne getConnector().getWhiteListPatterns().add( escapePattern( pattern ) ); setWhiteListPattern( null ); } - + return INPUT; } @@ -206,7 +207,7 @@ public abstract class AbstractProxyConne return blackListPattern; } - public ProxyConnectorConfiguration getConnector() + public ProxyConnector getConnector() { return connector; } @@ -252,6 +253,7 @@ public abstract class AbstractProxyConne } public void prepare() + throws RepositoryAdminException { proxyIdOptions = createNetworkProxyOptions(); managedRepoIdList = createManagedRepoOptions(); @@ -262,14 +264,14 @@ public abstract class AbstractProxyConne public String removeBlackListPattern() { String pattern = getPattern(); - + if ( StringUtils.isBlank( pattern ) ) { addActionError( "Cannot remove a blank black list pattern." ); } - if ( !getConnector().getBlackListPatterns().contains( pattern ) && - !getConnector().getBlackListPatterns().contains( StringUtils.replace( pattern, "\\", "\\\\" ) ) ) + if ( !getConnector().getBlackListPatterns().contains( pattern ) + && !getConnector().getBlackListPatterns().contains( StringUtils.replace( pattern, "\\", "\\\\" ) ) ) { addActionError( "Non-existant black list pattern [" + pattern + "], no black list pattern removed." ); } @@ -319,8 +321,8 @@ public abstract class AbstractProxyConne addActionError( "Cannot remove a blank white list pattern." ); } - if ( !getConnector().getWhiteListPatterns().contains( pattern ) && - !getConnector().getWhiteListPatterns().contains( StringUtils.replace( pattern, "\\", "\\\\" ) ) ) + if ( !getConnector().getWhiteListPatterns().contains( pattern ) + && !getConnector().getWhiteListPatterns().contains( StringUtils.replace( pattern, "\\", "\\\\" ) ) ) { addActionError( "Non-existant white list pattern [" + pattern + "], no white list pattern removed." ); } @@ -341,7 +343,7 @@ public abstract class AbstractProxyConne this.blackListPattern = blackListPattern; } - public void setConnector( ProxyConnectorConfiguration connector ) + public void setConnector( ProxyConnector connector ) { this.connector = connector; } @@ -387,8 +389,9 @@ public abstract class AbstractProxyConne } protected List createManagedRepoOptions() + throws RepositoryAdminException { - return new ArrayList( getConfig().getManagedRepositoriesAsMap().keySet() ); + return new ArrayList( getManagedRepositoryAdmin().getManagedRepositoriesAsMap().keySet() ); } protected List createNetworkProxyOptions() @@ -396,7 +399,7 @@ public abstract class AbstractProxyConne List options = new ArrayList(); options.add( DIRECT_CONNECTION ); - options.addAll( getConfig().getNetworkProxiesAsMap().keySet() ); + options.addAll( archivaConfiguration.getConfiguration().getNetworkProxiesAsMap().keySet() ); return options; } @@ -413,11 +416,12 @@ public abstract class AbstractProxyConne } protected List createRemoteRepoOptions() + throws RepositoryAdminException { - return new ArrayList( getConfig().getRemoteRepositoriesAsMap().keySet() ); + return new ArrayList( getRemoteRepositoryAdmin().getRemoteRepositoriesAsMap().keySet() ); } - @SuppressWarnings("unchecked") + @SuppressWarnings( "unchecked" ) protected void validateConnector() { if ( connector.getPolicies() == null ) @@ -439,8 +443,8 @@ public abstract class AbstractProxyConne continue; } - Map properties = connector.getProperties(); - for ( Map.Entry entry2 : properties.entrySet()) + Map properties = connector.getProperties(); + for ( Map.Entry entry2 : properties.entrySet() ) { Object value = entry2.getValue(); if ( value.getClass().isArray() ) @@ -473,11 +477,21 @@ public abstract class AbstractProxyConne if ( !options.contains( value ) ) { - addActionError( "Value of [" + value + "] is invalid for policy [" + policyId + "], valid values: " - + options ); + addActionError( + "Value of [" + value + "] is invalid for policy [" + policyId + "], valid values: " + options ); continue; } } } } + + public ArchivaConfiguration getArchivaConfiguration() + { + return archivaConfiguration; + } + + public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration ) + { + this.archivaConfiguration = archivaConfiguration; + } } Modified: archiva/trunk/pom.xml URL: http://svn.apache.org/viewvc/archiva/trunk/pom.xml?rev=1166391&r1=1166390&r2=1166391&view=diff ============================================================================== --- archiva/trunk/pom.xml (original) +++ archiva/trunk/pom.xml Wed Sep 7 20:33:48 2011 @@ -461,6 +461,11 @@ 1.2.0 + net.sf.beanlib + beanlib + 5.0.2beta + + commons-codec commons-codec 1.4