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 4F99BDF17 for ; Tue, 2 Oct 2012 15:13:12 +0000 (UTC) Received: (qmail 91019 invoked by uid 500); 2 Oct 2012 15:13:09 -0000 Delivered-To: apmail-archiva-commits-archive@archiva.apache.org Received: (qmail 90928 invoked by uid 500); 2 Oct 2012 15:13:09 -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 90907 invoked by uid 99); 2 Oct 2012 15:13:09 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 Oct 2012 15:13:09 +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; Tue, 02 Oct 2012 15:13:00 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id C4E3523888E3 for ; Tue, 2 Oct 2012 15:12:17 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1392951 - in /archiva/trunk/archiva-modules: archiva-base/archiva-configuration/src/main/mdo/ archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ archiva-base/archiva-repos... Date: Tue, 02 Oct 2012 15:12:17 -0000 To: commits@archiva.apache.org From: olamy@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121002151217.C4E3523888E3@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: olamy Date: Tue Oct 2 15:12:16 2012 New Revision: 1392951 URL: http://svn.apache.org/viewvc?rev=1392951&view=rev Log: [MRM-1681] addProxy Connectors Rules screen implements backend part. Added: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRule.java (with props) archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRuleType.java (with props) archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnectorrule/ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnectorrule/ProxyConnectorRuleAdmin.java - copied, changed from r1392950, archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnector/ProxyConnectorAdmin.java archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnectorrule/ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnectorrule/DefaultProxyConnectorRuleAdmin.java (with props) archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/proxyconnectorrule/ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/proxyconnectorrule/ProxyConnectorRuleAdminTest.java (with props) Modified: archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnector/ProxyConnectorAdmin.java archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnector/DefaultProxyConnectorAdmin.java archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/AbstractRepositoryAdminTest.java archiva/trunk/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/MockRepoAdmin.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=1392951&r1=1392950&r2=1392951&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 Oct 2 15:12:16 2012 @@ -168,6 +168,17 @@ The NetworkConfiguration . + + proxyConnectorRuleConfigurations + 1.4.0+ + + ProxyConnectorRuleConfiguration + * + + + The list of ProxyConnectorRuleConfigurations. + + @@ -928,6 +939,38 @@ + ProxyConnectorRuleConfiguration + 1.4.0+ + + + ruleType + 1.4.0+ + String + + The type if this rule: whiteList, blackList etc.. + + + + pattern + 1.4.0+ + String + + The pattern for this rule: whiteList, blackList etc.. + + + + proxyConnectors + 1.4.0+ + Associated proxyConnectors configuration. + + ProxyConnectorConfiguration + * + + + + + + AbstractRepositoryConnectorConfiguration ProxyConnectorConfiguration 1.0.0+ Added: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRule.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRule.java?rev=1392951&view=auto ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRule.java (added) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRule.java Tue Oct 2 15:12:16 2012 @@ -0,0 +1,133 @@ +package org.apache.archiva.admin.model.beans; +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "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 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import javax.xml.bind.annotation.XmlRootElement; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @author Olivier Lamy + * @since 1.4-M3 + */ +@XmlRootElement ( name = "proxyConnectorRule" ) +public class ProxyConnectorRule + implements Serializable +{ + private String pattern; + + //FIXME: olamy possible tru rest ? or a String + private ProxyConnectorRuleType proxyConnectorRuleType; + + private List proxyConnectors; + + public ProxyConnectorRule() + { + // no op + } + + public ProxyConnectorRule( String pattern, ProxyConnectorRuleType proxyConnectorRuleType, + List proxyConnectors ) + { + this.pattern = pattern; + this.proxyConnectorRuleType = proxyConnectorRuleType; + this.proxyConnectors = proxyConnectors; + } + + public String getPattern() + { + return pattern; + } + + public void setPattern( String pattern ) + { + this.pattern = pattern; + } + + public ProxyConnectorRuleType getProxyConnectorRuleType() + { + return proxyConnectorRuleType; + } + + public void setProxyConnectorRuleType( ProxyConnectorRuleType proxyConnectorRuleType ) + { + this.proxyConnectorRuleType = proxyConnectorRuleType; + } + + public List getProxyConnectors() + { + if ( this.proxyConnectors == null ) + { + this.proxyConnectors = new ArrayList(); + } + return proxyConnectors; + } + + public void setProxyConnectors( List proxyConnectors ) + { + this.proxyConnectors = proxyConnectors; + } + + @Override + public boolean equals( Object o ) + { + if ( this == o ) + { + return true; + } + if ( !( o instanceof ProxyConnectorRule ) ) + { + return false; + } + + ProxyConnectorRule that = (ProxyConnectorRule) o; + + if ( !pattern.equals( that.pattern ) ) + { + return false; + } + if ( proxyConnectorRuleType != that.proxyConnectorRuleType ) + { + return false; + } + + return true; + } + + @Override + public int hashCode() + { + int result = pattern.hashCode(); + result = 31 * result + proxyConnectorRuleType.hashCode(); + return result; + } + + @Override + public String toString() + { + final StringBuilder sb = new StringBuilder(); + sb.append( "ProxyConnectorRule" ); + sb.append( "{pattern='" ).append( pattern ).append( '\'' ); + sb.append( ", proxyConnectorRuleType=" ).append( proxyConnectorRuleType ); + sb.append( ", proxyConnectors=" ).append( proxyConnectors ); + sb.append( '}' ); + return sb.toString(); + } +} Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRule.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRule.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRuleType.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRuleType.java?rev=1392951&view=auto ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRuleType.java (added) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRuleType.java Tue Oct 2 15:12:16 2012 @@ -0,0 +1,55 @@ +package org.apache.archiva.admin.model.beans; +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "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 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * @author Olivier Lamy + * @since 1.4-M3 + */ +public enum ProxyConnectorRuleType +{ + WHITE_LIST( "whiteList" ), BLACK_LIST( "blackList" ); + + private String ruleType; + + private ProxyConnectorRuleType( String ruleType ) + { + this.ruleType = ruleType; + } + + public void setRuleType( String ruleType ) + { + this.ruleType = ruleType; + } + + public String getRuleType() + { + return ruleType; + } + + @Override + public String toString() + { + final StringBuilder sb = new StringBuilder(); + sb.append( "ProxyConnectorRuleType" ); + sb.append( "{ruleType='" ).append( ruleType ).append( '\'' ); + sb.append( '}' ); + return sb.toString(); + } +} Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRuleType.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ProxyConnectorRuleType.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnector/ProxyConnectorAdmin.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnector/ProxyConnectorAdmin.java?rev=1392951&r1=1392950&r2=1392951&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnector/ProxyConnectorAdmin.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnector/ProxyConnectorAdmin.java Tue Oct 2 15:12:16 2012 @@ -21,6 +21,7 @@ package org.apache.archiva.admin.model.p import org.apache.archiva.admin.model.AuditInformation; import org.apache.archiva.admin.model.RepositoryAdminException; import org.apache.archiva.admin.model.beans.ProxyConnector; +import org.apache.archiva.admin.model.beans.ProxyConnectorRule; import java.util.List; import java.util.Map; Copied: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnectorrule/ProxyConnectorRuleAdmin.java (from r1392950, archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnector/ProxyConnectorAdmin.java) URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnectorrule/ProxyConnectorRuleAdmin.java?p2=archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnectorrule/ProxyConnectorRuleAdmin.java&p1=archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnector/ProxyConnectorAdmin.java&r1=1392950&r2=1392951&rev=1392951&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnector/ProxyConnectorAdmin.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/proxyconnectorrule/ProxyConnectorRuleAdmin.java Tue Oct 2 15:12:16 2012 @@ -1,4 +1,4 @@ -package org.apache.archiva.admin.model.proxyconnector; +package org.apache.archiva.admin.model.proxyconnectorrule; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -20,47 +20,47 @@ package org.apache.archiva.admin.model.p import org.apache.archiva.admin.model.AuditInformation; import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ProxyConnector; +import org.apache.archiva.admin.model.beans.ProxyConnectorRule; import java.util.List; -import java.util.Map; /** - * No update method for changing source and target here as id is : sourceRepoId and targetRepoId, use delete then add. - * * @author Olivier Lamy - * @since 1.4-M1 + * @since 1.4-M3 */ -public interface ProxyConnectorAdmin +public interface ProxyConnectorRuleAdmin { - List getProxyConnectors() - throws RepositoryAdminException; - - ProxyConnector getProxyConnector( String sourceRepoId, String targetRepoId ) - throws RepositoryAdminException; - - Boolean addProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation ) + /** + * @return + * @throws org.apache.archiva.admin.model.RepositoryAdminException + * + * @since 1.4-M3 + */ + List getProxyConnectorRules() throws RepositoryAdminException; - Boolean deleteProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation ) + /** + * @param proxyConnectorRule + * @throws RepositoryAdminException + * @since 1.4-M3 + */ + void addProxyConnectorRule( ProxyConnectorRule proxyConnectorRule, AuditInformation auditInformation ) throws RepositoryAdminException; /** - * only for enabled/disable or changing bean values except target/source - * - * @param proxyConnector - * @param auditInformation - * @return + * @param proxyConnectorRule * @throws RepositoryAdminException + * @since 1.4-M3 */ - Boolean updateProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation ) + void deleteProxyConnectorRule( ProxyConnectorRule proxyConnectorRule, AuditInformation auditInformation ) throws RepositoryAdminException; /** - * @return key/value : managed repo Id / list to proxy connector ordered + * only to update attached proxy connectors to update pattern delete then add + * @param proxyConnectorRule * @throws RepositoryAdminException + * @since 1.4-M3 */ - Map> getProxyConnectorAsMap() + void updateProxyConnectorRule( ProxyConnectorRule proxyConnectorRule, AuditInformation auditInformation ) throws RepositoryAdminException; - } Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/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/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnector/DefaultProxyConnectorAdmin.java?rev=1392951&r1=1392950&r2=1392951&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnector/DefaultProxyConnectorAdmin.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnector/DefaultProxyConnectorAdmin.java Tue Oct 2 15:12:16 2012 @@ -47,7 +47,7 @@ import java.util.Map; * @author Olivier Lamy * @since 1.4-M1 */ -@Service( "proxyConnectorAdmin#default" ) +@Service ( "proxyConnectorAdmin#default" ) public class DefaultProxyConnectorAdmin extends AbstractRepositoryAdmin implements ProxyConnectorAdmin @@ -114,6 +114,7 @@ public class DefaultProxyConnectorAdmin } + // FIXME take of proxyConnectorRules ! public Boolean deleteProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation ) throws RepositoryAdminException { @@ -133,6 +134,7 @@ public class DefaultProxyConnectorAdmin return Boolean.TRUE; } + // FIXME take of proxyConnectorRules ! public Boolean updateProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation ) throws RepositoryAdminException { @@ -206,21 +208,6 @@ public class DefaultProxyConnectorAdmin protected ProxyConnectorConfiguration getProxyConnectorConfiguration( ProxyConnector proxyConnector ) { - /* - ProxyConnectorConfiguration proxyConnectorConfiguration = new ProxyConnectorConfiguration(); - proxyConnectorConfiguration.setOrder( proxyConnector.getOrder() ); - proxyConnectorConfiguration.setBlackListPatterns( - new ArrayList( proxyConnector.getBlackListPatterns() ) ); - proxyConnectorConfiguration.setWhiteListPatterns( - new ArrayList( proxyConnector.getWhiteListPatterns() ) ); - proxyConnectorConfiguration.setDisabled( proxyConnector.isDisabled() ); - proxyConnectorConfiguration.setPolicies( new HashMap( proxyConnector.getPolicies() ) ); - proxyConnectorConfiguration.setProperties( new HashMap( proxyConnector.getProperties() ) ); - proxyConnectorConfiguration.setProxyId( proxyConnector.getProxyId() ); - proxyConnectorConfiguration.setSourceRepoId( proxyConnector.getSourceRepoId() ); - proxyConnectorConfiguration.setTargetRepoId( proxyConnector.getTargetRepoId() ); - return proxyConnectorConfiguration;*/ - return proxyConnector == null ? null : new BeanReplicator().replicateBean( proxyConnector, ProxyConnectorConfiguration.class ); Added: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnectorrule/DefaultProxyConnectorRuleAdmin.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnectorrule/DefaultProxyConnectorRuleAdmin.java?rev=1392951&view=auto ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnectorrule/DefaultProxyConnectorRuleAdmin.java (added) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnectorrule/DefaultProxyConnectorRuleAdmin.java Tue Oct 2 15:12:16 2012 @@ -0,0 +1,170 @@ +package org.apache.archiva.admin.repository.proxyconnectorrule; +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "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 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.archiva.admin.model.AuditInformation; +import org.apache.archiva.admin.model.RepositoryAdminException; +import org.apache.archiva.admin.model.beans.ProxyConnector; +import org.apache.archiva.admin.model.beans.ProxyConnectorRule; +import org.apache.archiva.admin.model.beans.ProxyConnectorRuleType; +import org.apache.archiva.admin.model.proxyconnectorrule.ProxyConnectorRuleAdmin; +import org.apache.archiva.admin.repository.AbstractRepositoryAdmin; +import org.apache.archiva.configuration.Configuration; +import org.apache.archiva.configuration.ProxyConnectorConfiguration; +import org.apache.archiva.configuration.ProxyConnectorRuleConfiguration; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * @author Olivier Lamy + * @since 1.4-M3 + */ +@Service ( "proxyConnectorRuleAdmin#default" ) +public class DefaultProxyConnectorRuleAdmin + extends AbstractRepositoryAdmin + implements ProxyConnectorRuleAdmin +{ + private Logger log = LoggerFactory.getLogger( getClass() ); + + public List getProxyConnectorRules() + throws RepositoryAdminException + { + List proxyConnectorRuleConfigurations = + getArchivaConfiguration().getConfiguration().getProxyConnectorRuleConfigurations(); + if ( proxyConnectorRuleConfigurations.isEmpty() ) + { + return Collections.emptyList(); + } + List proxyConnectorRules = + new ArrayList( proxyConnectorRuleConfigurations.size() ); + for ( ProxyConnectorRuleConfiguration proxyConnectorRuleConfiguration : proxyConnectorRuleConfigurations ) + { + + ProxyConnectorRule proxyConnectorRule = new ProxyConnectorRule(); + proxyConnectorRule.setPattern( proxyConnectorRuleConfiguration.getPattern() ); + proxyConnectorRule.setProxyConnectorRuleType( + getProxyConnectorRuleType( proxyConnectorRuleConfiguration.getRuleType() ) ); + for ( ProxyConnectorConfiguration proxyConnectorConfiguration : proxyConnectorRuleConfiguration.getProxyConnectors() ) + { + ProxyConnector proxyConnector = new ProxyConnector(); + proxyConnector.setSourceRepoId( proxyConnectorConfiguration.getSourceRepoId() ); + proxyConnector.setTargetRepoId( proxyConnectorConfiguration.getTargetRepoId() ); + proxyConnectorRule.getProxyConnectors().add( proxyConnector ); + } + proxyConnectorRules.add( proxyConnectorRule ); + } + + return proxyConnectorRules; + } + + + private ProxyConnectorRuleType getProxyConnectorRuleType( String type ) + { + if ( StringUtils.equals( ProxyConnectorRuleType.WHITE_LIST.getRuleType(), type ) ) + { + return ProxyConnectorRuleType.WHITE_LIST; + } + if ( StringUtils.equals( ProxyConnectorRuleType.BLACK_LIST.getRuleType(), type ) ) + { + return ProxyConnectorRuleType.BLACK_LIST; + } + return null; + } + + public void addProxyConnectorRule( ProxyConnectorRule proxyConnectorRule, AuditInformation auditInformation ) + throws RepositoryAdminException + { + ProxyConnectorRuleConfiguration proxyConnectorRuleConfiguration = new ProxyConnectorRuleConfiguration(); + proxyConnectorRuleConfiguration.setPattern( proxyConnectorRule.getPattern() ); + proxyConnectorRuleConfiguration.setRuleType( proxyConnectorRule.getProxyConnectorRuleType().getRuleType() ); + for ( ProxyConnector proxyConnector : proxyConnectorRule.getProxyConnectors() ) + { + ProxyConnectorConfiguration proxyConnectorConfiguration = new ProxyConnectorConfiguration(); + proxyConnectorConfiguration.setSourceRepoId( proxyConnector.getSourceRepoId() ); + proxyConnectorConfiguration.setTargetRepoId( proxyConnector.getTargetRepoId() ); + proxyConnectorRuleConfiguration.getProxyConnectors().add( proxyConnectorConfiguration ); + } + Configuration configuration = getArchivaConfiguration().getConfiguration(); + configuration.getProxyConnectorRuleConfigurations().add( proxyConnectorRuleConfiguration ); + saveConfiguration( configuration ); + } + + public void deleteProxyConnectorRule( ProxyConnectorRule proxyConnectorRule, AuditInformation auditInformation ) + throws RepositoryAdminException + { + Configuration configuration = getArchivaConfiguration().getConfiguration(); + // key is the pattern !! + // recreate a list without the pattern + + boolean toSave = false; + + List proxyConnectorRuleConfigurations = + new ArrayList(); + + for ( ProxyConnectorRuleConfiguration proxyConnectorRuleConfiguration : configuration.getProxyConnectorRuleConfigurations() ) + { + if ( StringUtils.equals( proxyConnectorRuleConfiguration.getPattern(), proxyConnectorRule.getPattern() ) ) + { + toSave = true; + } + else + { + proxyConnectorRuleConfigurations.add( proxyConnectorRuleConfiguration ); + } + } + + if ( toSave ) + { + configuration.setProxyConnectorRuleConfigurations( proxyConnectorRuleConfigurations ); + saveConfiguration( configuration ); + } + + } + + public void updateProxyConnectorRule( ProxyConnectorRule proxyConnectorRule, AuditInformation auditInformation ) + throws RepositoryAdminException + { + Configuration configuration = getArchivaConfiguration().getConfiguration(); + + for ( ProxyConnectorRuleConfiguration proxyConnectorRuleConfiguration : configuration.getProxyConnectorRuleConfigurations() ) + { + if ( StringUtils.equals( proxyConnectorRuleConfiguration.getPattern(), proxyConnectorRule.getPattern() ) ) + { + List proxyConnectors = + new ArrayList( proxyConnectorRule.getProxyConnectors().size() ); + for ( ProxyConnector proxyConnector : proxyConnectorRule.getProxyConnectors() ) + { + ProxyConnectorConfiguration proxyConnectorConfiguration = new ProxyConnectorConfiguration(); + proxyConnectorConfiguration.setSourceRepoId( proxyConnector.getSourceRepoId() ); + proxyConnectorConfiguration.setTargetRepoId( proxyConnector.getTargetRepoId() ); + proxyConnectors.add( proxyConnectorConfiguration ); + } + proxyConnectorRuleConfiguration.setProxyConnectors( proxyConnectors ); + saveConfiguration( configuration ); + } + } + + } +} Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnectorrule/DefaultProxyConnectorRuleAdmin.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/proxyconnectorrule/DefaultProxyConnectorRuleAdmin.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/AbstractRepositoryAdminTest.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/AbstractRepositoryAdminTest.java?rev=1392951&r1=1392950&r2=1392951&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/AbstractRepositoryAdminTest.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/AbstractRepositoryAdminTest.java Tue Oct 2 15:12:16 2012 @@ -25,6 +25,7 @@ import org.apache.archiva.admin.model.be import org.apache.archiva.admin.model.beans.RemoteRepository; import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; import org.apache.archiva.admin.model.proxyconnector.ProxyConnectorAdmin; +import org.apache.archiva.admin.model.proxyconnectorrule.ProxyConnectorRuleAdmin; import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin; import org.apache.archiva.redback.users.User; import org.apache.commons.io.FileUtils; @@ -68,6 +69,9 @@ public abstract class AbstractRepository @Inject protected ProxyConnectorAdmin proxyConnectorAdmin; + @Inject + protected ProxyConnectorRuleAdmin proxyConnectorRuleAdmin; + protected AuditInformation getFakeAuditInformation() { AuditInformation auditInformation = new AuditInformation( getFakeUser(), "archiva-localhost" ); Added: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/proxyconnectorrule/ProxyConnectorRuleAdminTest.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/proxyconnectorrule/ProxyConnectorRuleAdminTest.java?rev=1392951&view=auto ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/proxyconnectorrule/ProxyConnectorRuleAdminTest.java (added) +++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/proxyconnectorrule/ProxyConnectorRuleAdminTest.java Tue Oct 2 15:12:16 2012 @@ -0,0 +1,180 @@ +package org.apache.archiva.admin.repository.proxyconnectorrule; +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "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 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.archiva.admin.model.beans.ProxyConnector; +import org.apache.archiva.admin.model.beans.ProxyConnectorRule; +import org.apache.archiva.admin.model.beans.ProxyConnectorRuleType; +import org.apache.archiva.admin.model.beans.RemoteRepository; +import org.apache.archiva.admin.repository.AbstractRepositoryAdminTest; +import org.junit.Test; + +import java.util.Arrays; + +/** + * @author Olivier Lamy + */ +public class ProxyConnectorRuleAdminTest + extends AbstractRepositoryAdminTest +{ + @Test + public void addProxyConnectorRule() + throws Exception + { + ProxyConnector proxyConnector = new ProxyConnector(); + proxyConnector.setSourceRepoId( "snapshots" ); + proxyConnector.setTargetRepoId( "central" ); + + ProxyConnectorRule rule = null; + try + { + int size = proxyConnectorRuleAdmin.getProxyConnectorRules().size(); + assertEquals( 0, size ); + + proxyConnectorAdmin.addProxyConnector( proxyConnector, getFakeAuditInformation() ); + + rule = new ProxyConnectorRule( "org/apache/maven", ProxyConnectorRuleType.BLACK_LIST, + Arrays.asList( proxyConnector ) ); + + proxyConnectorRuleAdmin.addProxyConnectorRule( rule, getFakeAuditInformation() ); + assertEquals( size + 1, proxyConnectorRuleAdmin.getProxyConnectorRules().size() ); + + rule = proxyConnectorRuleAdmin.getProxyConnectorRules().get( 0 ); + + assertEquals( "org/apache/maven", rule.getPattern() ); + assertEquals( 1, rule.getProxyConnectors().size() ); + assertEquals( "snapshots", rule.getProxyConnectors().get( 0 ).getSourceRepoId() ); + assertEquals( "central", rule.getProxyConnectors().get( 0 ).getTargetRepoId() ); + assertEquals( ProxyConnectorRuleType.BLACK_LIST, rule.getProxyConnectorRuleType() ); + } + finally + { + proxyConnectorRuleAdmin.deleteProxyConnectorRule( rule, getFakeAuditInformation() ); + proxyConnectorAdmin.deleteProxyConnector( proxyConnector, getFakeAuditInformation() ); + } + } + + @Test + public void addProxyConnectorRuleWithTwoProxyConnectors() + throws Exception + { + RemoteRepository remoteRepository = new RemoteRepository(); + remoteRepository.setId( "archiva" ); + remoteRepository.setName( "archiva rocks" ); + remoteRepository.setUrl( "http://wine.org" ); + + remoteRepositoryAdmin.addRemoteRepository( remoteRepository, getFakeAuditInformation() ); + + int size = proxyConnectorRuleAdmin.getProxyConnectorRules().size(); + assertEquals( 0, size ); + ProxyConnector proxyConnector1 = new ProxyConnector(); + proxyConnector1.setSourceRepoId( "snapshots" ); + proxyConnector1.setTargetRepoId( "central" ); + proxyConnectorAdmin.addProxyConnector( proxyConnector1, getFakeAuditInformation() ); + + ProxyConnector proxyConnector2 = new ProxyConnector(); + proxyConnector2.setSourceRepoId( "snapshots" ); + proxyConnector2.setTargetRepoId( "archiva" ); + proxyConnectorAdmin.addProxyConnector( proxyConnector2, getFakeAuditInformation() ); + + ProxyConnectorRule rule = new ProxyConnectorRule( "org/apache/maven", ProxyConnectorRuleType.BLACK_LIST, + Arrays.asList( proxyConnector1, proxyConnector2 ) ); + try + { + proxyConnectorRuleAdmin.addProxyConnectorRule( rule, getFakeAuditInformation() ); + assertEquals( size + 1, proxyConnectorRuleAdmin.getProxyConnectorRules().size() ); + + rule = proxyConnectorRuleAdmin.getProxyConnectorRules().get( 0 ); + + assertEquals( "org/apache/maven", rule.getPattern() ); + assertEquals( 2, rule.getProxyConnectors().size() ); + assertEquals( ProxyConnectorRuleType.BLACK_LIST, rule.getProxyConnectorRuleType() ); + } + finally + { + proxyConnectorRuleAdmin.deleteProxyConnectorRule( rule, getFakeAuditInformation() ); + proxyConnectorAdmin.deleteProxyConnector( proxyConnector1, getFakeAuditInformation() ); + proxyConnectorAdmin.deleteProxyConnector( proxyConnector2, getFakeAuditInformation() ); + remoteRepositoryAdmin.deleteRemoteRepository( remoteRepository.getId(), getFakeAuditInformation() ); + } + } + + + @Test + public void updateProxyConnectorRuleWithTwoProxyConnectors() + throws Exception + { + RemoteRepository remoteRepository = new RemoteRepository(); + remoteRepository.setId( "archiva" ); + remoteRepository.setName( "archiva rocks" ); + remoteRepository.setUrl( "http://wine.org" ); + + remoteRepositoryAdmin.addRemoteRepository( remoteRepository, getFakeAuditInformation() ); + + int size = proxyConnectorRuleAdmin.getProxyConnectorRules().size(); + assertEquals( 0, size ); + ProxyConnector proxyConnector1 = new ProxyConnector(); + proxyConnector1.setSourceRepoId( "snapshots" ); + proxyConnector1.setTargetRepoId( "central" ); + proxyConnectorAdmin.addProxyConnector( proxyConnector1, getFakeAuditInformation() ); + + ProxyConnector proxyConnector2 = new ProxyConnector(); + proxyConnector2.setSourceRepoId( "snapshots" ); + proxyConnector2.setTargetRepoId( "archiva" ); + proxyConnectorAdmin.addProxyConnector( proxyConnector2, getFakeAuditInformation() ); + + ProxyConnectorRule rule = new ProxyConnectorRule( "org/apache/maven", ProxyConnectorRuleType.BLACK_LIST, + Arrays.asList( proxyConnector1, proxyConnector2 ) ); + try + { + proxyConnectorRuleAdmin.addProxyConnectorRule( rule, getFakeAuditInformation() ); + assertEquals( size + 1, proxyConnectorRuleAdmin.getProxyConnectorRules().size() ); + + rule = proxyConnectorRuleAdmin.getProxyConnectorRules().get( 0 ); + + assertEquals( "org/apache/maven", rule.getPattern() ); + assertEquals( 2, rule.getProxyConnectors().size() ); + //assertEquals( "snapshots", rule.getProxyConnectors().get( 0 ).getSourceRepoId() ); + //assertEquals( "central", rule.getProxyConnectors().get( 0 ).getTargetRepoId() ); + assertEquals( ProxyConnectorRuleType.BLACK_LIST, rule.getProxyConnectorRuleType() ); + + rule.setProxyConnectors( Arrays.asList( proxyConnector1 ) ); + + proxyConnectorRuleAdmin.updateProxyConnectorRule( rule, getFakeAuditInformation() ); + + assertEquals( size + 1, proxyConnectorRuleAdmin.getProxyConnectorRules().size() ); + + rule = proxyConnectorRuleAdmin.getProxyConnectorRules().get( 0 ); + + assertEquals( "org/apache/maven", rule.getPattern() ); + assertEquals( 1, rule.getProxyConnectors().size() ); + assertEquals( "snapshots", rule.getProxyConnectors().get( 0 ).getSourceRepoId() ); + assertEquals( "central", rule.getProxyConnectors().get( 0 ).getTargetRepoId() ); + + } + finally + { + proxyConnectorRuleAdmin.deleteProxyConnectorRule( rule, getFakeAuditInformation() ); + proxyConnectorAdmin.deleteProxyConnector( proxyConnector1, getFakeAuditInformation() ); + proxyConnectorAdmin.deleteProxyConnector( proxyConnector2, getFakeAuditInformation() ); + remoteRepositoryAdmin.deleteRemoteRepository( remoteRepository.getId(), getFakeAuditInformation() ); + } + } + +} Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/proxyconnectorrule/ProxyConnectorRuleAdminTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/proxyconnectorrule/ProxyConnectorRuleAdminTest.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: archiva/trunk/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/MockRepoAdmin.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/MockRepoAdmin.java?rev=1392951&r1=1392950&r2=1392951&view=diff ============================================================================== --- archiva/trunk/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/MockRepoAdmin.java (original) +++ archiva/trunk/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/MockRepoAdmin.java Tue Oct 2 15:12:16 2012 @@ -24,6 +24,7 @@ import org.apache.archiva.admin.model.Re import org.apache.archiva.admin.model.beans.ManagedRepository; import org.apache.archiva.admin.model.beans.NetworkProxy; import org.apache.archiva.admin.model.beans.ProxyConnector; +import org.apache.archiva.admin.model.beans.ProxyConnectorRule; import org.apache.archiva.admin.model.beans.RemoteRepository; import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; import org.apache.archiva.admin.model.networkproxy.NetworkProxyAdmin; @@ -51,7 +52,7 @@ public class MockRepoAdmin implements RemoteRepositoryAdmin, ManagedRepositoryAdmin, ProxyConnectorAdmin, NetworkProxyAdmin { @Inject - @Named( value = "archivaConfiguration#test" ) + @Named (value = "archivaConfiguration#test") private ArchivaConfiguration archivaConfiguration; public List getRemoteRepositories() @@ -280,4 +281,28 @@ public class MockRepoAdmin ? null : new BeanReplicator().replicateBean( proxyConnectorConfiguration, ProxyConnector.class ); } + + public List getProxyConnectorRules() + throws RepositoryAdminException + { + return null; + } + + public void addProxyConnectorRule( ProxyConnectorRule proxyConnectorRule ) + throws RepositoryAdminException + { + + } + + public void deleteProxyConnectorRule( ProxyConnectorRule proxyConnectorRule ) + throws RepositoryAdminException + { + + } + + public void updateProxyConnectorRule( ProxyConnectorRule proxyConnectorRule ) + throws RepositoryAdminException + { + + } }