@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 int compare( ProxyConnector o1, ProxyConnector o2 ) { if ( o1 == null && o2 == null ) { return 0; } // Ensure null goes to end of list. if ( o1 == null && o2 != null ) { return 1; } if ( o1 != null && o2 == null ) { return -1; } // Ensure 0 (unordered) goes to end of list. if ( o1.getOrder() == 0 && o2.getOrder() != 0 ) { return 1; } if ( o1.getOrder() != 0 && o2.getOrder() == 0 ) { return -1; } return o1.getOrder() - o2.getOrder(); }
@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; }
repositoryRegistry.getRemoteRepository( proxyConnector.getTargetRepoId() ) ); NetworkProxy networkProxyConfig = networkProxyAdmin.getNetworkProxy( proxyConnector.getProxyId() ); networkProxies.put( proxyConnector.getTargetRepoId(), networkProxyConfig );
@Override public Set<String> getRemoteIndexingContextIds( String managedRepoId ) throws RepositoryAdminException { Set<String> ids = new HashSet<>(); List<ProxyConnector> proxyConnectors = proxyConnectorAdmin.getProxyConnectorAsMap().get( managedRepoId ); if ( proxyConnectors == null || proxyConnectors.isEmpty() ) { return ids; } for ( ProxyConnector proxyConnector : proxyConnectors ) { String remoteId = "remote-" + proxyConnector.getTargetRepoId(); IndexingContext context = indexer.getIndexingContexts().get( remoteId ); if ( context != null && context.isSearchable() ) { ids.add( remoteId ); } } return ids; }
ProxyConnector proxyConnector = new ProxyConnector(); proxyConnector.setProxyId( "foo-bar2" ); proxyConnector.setSourceRepoId( id ); proxyConnector.setTargetRepoId( remoteId ); proxyConnectorService.addProxyConnector( proxyConnector );
@Override public List<ProxyConnectorRule> getProxyConnectorRules() throws RepositoryAdminException { List<ProxyConnectorRuleConfiguration> proxyConnectorRuleConfigurations = getArchivaConfiguration().getConfiguration().getProxyConnectorRuleConfigurations(); if ( proxyConnectorRuleConfigurations.isEmpty() ) { return Collections.emptyList(); } List<ProxyConnectorRule> 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; }
@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; }
remoteRepositoryAdmin.getRemoteRepository( proxyConnector.getTargetRepoId() ) ); NetworkProxy networkProxyConfig = networkProxyAdmin.getNetworkProxy( proxyConnector.getProxyId() ); networkProxies.put( proxyConnector.getTargetRepoId(), networkProxyConfig );
String remoteId = "remote-" + proxyConnector.getTargetRepoId(); RemoteRepository repo = repositoryRegistry.getRemoteRepository(proxyConnector.getTargetRepoId()); if (repo.getType()==RepositoryType.MAVEN) { try {
ProxyConnector proxyConnector = new ProxyConnector(); proxyConnector.setProxyId( "foo-bar1" ); proxyConnector.setSourceRepoId( id ); proxyConnector.setTargetRepoId( "all-merged" ); proxyConnectorService.addProxyConnector( proxyConnector );
@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; } }
repositoryRegistry.getRemoteRepository( proxyConnector.getTargetRepoId() ); networkProxyAdmin.getNetworkProxy( proxyConnector.getProxyId() ); networkProxies.put( proxyConnector.getTargetRepoId(), networkProxyConfig );
if ( StringUtils.equals( "remote-" + proxyConnector.getTargetRepoId(),
@Override public int compare( ProxyConnector o1, ProxyConnector o2 ) { if ( o1 == null && o2 == null ) { return 0; } // Ensure null goes to end of list. if ( o1 == null && o2 != null ) { return 1; } if ( o1 != null && o2 == null ) { return -1; } // Ensure 0 (unordered) goes to end of list. if ( o1.getOrder() == 0 && o2.getOrder() != 0 ) { return 1; } if ( o1.getOrder() != 0 && o2.getOrder() == 0 ) { return -1; } return o1.getOrder() - o2.getOrder(); }
@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; }
remoteRepositoryAdmin.getRemoteRepository( proxyConnector.getTargetRepoId() ); networkProxyAdmin.getNetworkProxy( proxyConnector.getProxyId() ); networkProxies.put( proxyConnector.getTargetRepoId(), networkProxyConfig );
if ( StringUtils.equals( "remote-" + proxyConnector.getTargetRepoId(),
@Override public int compare( ProxyConnector o1, ProxyConnector o2 ) { if ( o1 == null && o2 == null ) { return 0; } // Ensure null goes to end of list. if ( o1 == null && o2 != null ) { return 1; } if ( o1 != null && o2 == null ) { return -1; } // Ensure 0 (unordered) goes to end of list. if ( o1.getOrder() == 0 && o2.getOrder() != 0 ) { return 1; } if ( o1.getOrder() != 0 && o2.getOrder() == 0 ) { return -1; } return o1.getOrder() - o2.getOrder(); }
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 } }