@Override public boolean evaluate( Object object ) { boolean satisfies = false; if ( object instanceof ProxyConnector ) { ProxyConnector connector = (ProxyConnector) object; return ( StringUtils.equals( sourceId, connector.getSourceRepoId() ) && StringUtils.equals( targetId, connector.getTargetRepoId() ) ); } return satisfies; } }
@Override public boolean evaluate( Object object ) { boolean satisfies = false; if ( object instanceof ProxyConnector ) { ProxyConnector connector = (ProxyConnector) object; return ( StringUtils.equals( sourceId, connector.getSourceRepoId() ) && StringUtils.equals( targetId, connector.getTargetRepoId() ) ); } return satisfies; } }
@Override public ProxyConnector getProxyConnector( String sourceRepoId, String targetRepoId ) throws RepositoryAdminException { for ( ProxyConnector proxyConnector : getProxyConnectors() ) { if ( StringUtils.equals( sourceRepoId, proxyConnector.getSourceRepoId() ) && StringUtils.equals( targetRepoId, proxyConnector.getTargetRepoId() ) ) { return proxyConnector; } } return null; }
@Override public Map<String, List<ProxyConnector>> getProxyConnectorAsMap() throws RepositoryAdminException { Map<String, List<ProxyConnector>> proxyConnectorMap = new HashMap<>(); Iterator<ProxyConnector> it = getProxyConnectors().iterator(); while ( it.hasNext() ) { ProxyConnector proxyConfig = it.next(); String key = proxyConfig.getSourceRepoId(); List<ProxyConnector> connectors = proxyConnectorMap.get( key ); if ( connectors == null ) { connectors = new ArrayList<>( 1 ); proxyConnectorMap.put( key, connectors ); } connectors.add( proxyConfig ); Collections.sort( connectors, ProxyConnectorOrderComparator.getInstance() ); } return proxyConnectorMap; }
return proxyConnector.getSourceRepoId(); return proxyConnector.getSourceRepoId();
return proxyConnector.getSourceRepoId(); return proxyConnector.getSourceRepoId();
protected void validateProxyConnector( ProxyConnector proxyConnector ) throws RepositoryAdminException { // validate source a Managed target a Remote if ( managedRepositoryAdmin.getManagedRepository( proxyConnector.getSourceRepoId() ) == null ) { throw new RepositoryAdminException( "non valid ProxyConnector sourceRepo with id " + proxyConnector.getSourceRepoId() + " is not a ManagedRepository" ); } if ( remoteRepositoryAdmin.getRemoteRepository( proxyConnector.getTargetRepoId() ) == null ) { throw new RepositoryAdminException( "non valid ProxyConnector sourceRepo with id " + proxyConnector.getTargetRepoId() + " is not a RemoteRepository" ); } // FIXME validate NetworkProxyConfiguration too when available } }
@Override public Boolean deleteProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation ) throws RepositoryAdminException { Configuration configuration = getArchivaConfiguration().getConfiguration(); ProxyConnectorConfiguration proxyConnectorConfiguration = findProxyConnector( proxyConnector.getSourceRepoId(), proxyConnector.getTargetRepoId(), configuration ); if ( proxyConnectorConfiguration == null ) { throw new RepositoryAdminException( "unable to find ProxyConnector with source " + proxyConnector.getSourceRepoId() + " and target " + proxyConnector.getTargetRepoId() ); } configuration.removeProxyConnector( proxyConnectorConfiguration ); saveConfiguration( configuration ); triggerAuditEvent( proxyConnector.getSourceRepoId() + "-" + proxyConnector.getTargetRepoId(), null, AuditEvent.DELETE_PROXY_CONNECTOR, auditInformation ); return Boolean.TRUE; }
@Override public Boolean updateProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation ) throws RepositoryAdminException { Configuration configuration = getArchivaConfiguration().getConfiguration(); ProxyConnectorConfiguration proxyConnectorConfiguration = findProxyConnector( proxyConnector.getSourceRepoId(), proxyConnector.getTargetRepoId(), configuration ); configuration.removeProxyConnector( proxyConnectorConfiguration ); configuration.addProxyConnector( getProxyConnectorConfiguration( proxyConnector ) ); saveConfiguration( configuration ); triggerAuditEvent( proxyConnector.getSourceRepoId() + "-" + proxyConnector.getTargetRepoId(), null, AuditEvent.MODIFY_PROXY_CONNECTOR, auditInformation ); return Boolean.TRUE; }
@Override 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() ) && StringUtils.equals( proxyConnectorRuleConfiguration.getRuleType(), proxyConnectorRule.getProxyConnectorRuleType().getRuleType() ) ) { List<ProxyConnectorConfiguration> 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 ); } } } }
@Override public Boolean addProxyConnector( ProxyConnector proxyConnector, AuditInformation auditInformation ) throws RepositoryAdminException { if ( getProxyConnector( proxyConnector.getSourceRepoId(), proxyConnector.getTargetRepoId() ) != null ) { throw new RepositoryAdminException( "Unable to add proxy connector, as one already exists with source repository id [" + proxyConnector.getSourceRepoId() + "] and target repository id [" + proxyConnector.getTargetRepoId() + "]." ); } validateProxyConnector( proxyConnector ); proxyConnector.setBlackListPatterns( unescapePatterns( proxyConnector.getBlackListPatterns() ) ); proxyConnector.setWhiteListPatterns( unescapePatterns( proxyConnector.getWhiteListPatterns() ) ); Configuration configuration = getArchivaConfiguration().getConfiguration(); ProxyConnectorConfiguration proxyConnectorConfiguration = getProxyConnectorConfiguration( proxyConnector ); configuration.addProxyConnector( proxyConnectorConfiguration ); saveConfiguration( configuration ); triggerAuditEvent( proxyConnector.getSourceRepoId() + "-" + proxyConnector.getTargetRepoId(), null, AuditEvent.ADD_PROXY_CONNECTOR, auditInformation ); return Boolean.TRUE; }
@Override 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 ); }