private RemoteRepositoryConfiguration getRemoteRepositoryConfiguration( RemoteRepository remoteRepository ) { RemoteRepositoryConfiguration remoteRepositoryConfiguration = new RemoteRepositoryConfiguration(); remoteRepositoryConfiguration.setId( remoteRepository.getId() ); remoteRepositoryConfiguration.setPassword( remoteRepository.getPassword() ); remoteRepositoryConfiguration.setTimeout( remoteRepository.getTimeout() ); remoteRepositoryConfiguration.setUrl( remoteRepository.getUrl() ); remoteRepositoryConfiguration.setUsername( remoteRepository.getUserName() ); remoteRepositoryConfiguration.setLayout( remoteRepository.getLayout() ); remoteRepositoryConfiguration.setName( remoteRepository.getName() ); remoteRepositoryConfiguration.setDownloadRemoteIndex( remoteRepository.isDownloadRemoteIndex() ); remoteRepositoryConfiguration.setRemoteIndexUrl( remoteRepository.getRemoteIndexUrl() ); remoteRepositoryConfiguration.setRefreshCronExpression( remoteRepository.getCronExpression() ); remoteRepositoryConfiguration.setIndexDir( remoteRepository.getIndexDirectory() ); remoteRepositoryConfiguration.setRemoteDownloadNetworkProxyId( remoteRepository.getRemoteDownloadNetworkProxyId() ); remoteRepositoryConfiguration.setRemoteDownloadTimeout( remoteRepository.getRemoteDownloadTimeout() ); remoteRepositoryConfiguration.setDownloadRemoteIndexOnStartup( remoteRepository.isDownloadRemoteIndexOnStartup() ); remoteRepositoryConfiguration.setDescription( remoteRepository.getDescription() ); remoteRepositoryConfiguration.setExtraHeaders( remoteRepository.getExtraHeaders() ); remoteRepositoryConfiguration.setExtraParameters( remoteRepository.getExtraParameters() ); remoteRepositoryConfiguration.setCheckPath(remoteRepository.getCheckPath()); return remoteRepositoryConfiguration; }
RemoteRepository getRemoteRepository() { return new RemoteRepository( Locale.getDefault( ), "id-new", "new one", "http://foo.com", "default", "foo", "foopassword", 120, "cool repo" ); }
protected String calculateIndexRemoteUrl( RemoteRepository remoteRepository ) { if ( StringUtils.startsWith( remoteRepository.getRemoteIndexUrl(), "http" ) ) { String baseUrl = remoteRepository.getRemoteIndexUrl(); return baseUrl.endsWith( "/" ) ? StringUtils.substringBeforeLast( baseUrl, "/" ) : baseUrl; } String baseUrl = StringUtils.endsWith( remoteRepository.getUrl(), "/" ) ? StringUtils.substringBeforeLast( remoteRepository.getUrl(), "/" ) : remoteRepository.getUrl(); baseUrl = StringUtils.isEmpty( remoteRepository.getRemoteIndexUrl() ) ? baseUrl + "/.index" : baseUrl + "/" + remoteRepository.getRemoteIndexUrl(); return baseUrl; }
if (StringUtils.isNotBlank(remoteRepository.getRemoteDownloadNetworkProxyId())) { networkProxy = networkProxyAdmin.getNetworkProxy(remoteRepository.getRemoteDownloadNetworkProxyId()); if (networkProxy == null) { log.warn( "your remote repository is configured to download remote index trought a proxy we cannot find id:{}", remoteRepository.getRemoteDownloadNetworkProxyId()); String wagonProtocol = new URL(remoteRepository.getUrl()).getProtocol(); wagonFactory.getWagon(new WagonFactoryRequest(wagonProtocol, remoteRepository.getExtraHeaders()) // .networkProxy(networkProxy)); proxyInfo.setPassword(networkProxy.getPassword()); String url = StringUtils.stripEnd(remoteRepository.getUrl(), "/"); wagon.connect(new Repository(remoteRepository.getId(), url), proxyInfo); if (!(StringUtils.isEmpty(remoteRepository.getCheckPath()) || "/".equals(remoteRepository.getCheckPath()))) { return wagon.resourceExists(remoteRepository.getCheckPath()); } else {
RemoteRepository remoteRepository = new RemoteRepository(Locale.getDefault()); remoteRepository.setId( "all-merged" ); remoteRepository.setName( "all-merged" ); remoteRepository.setDownloadRemoteIndex( true ); remoteRepository.setUrl( "http://localhost:" + port + "/repository/test-group" ); remoteRepository.setRemoteIndexUrl( "http://localhost:" + port + "/repository/test-group/.index" ); remoteRepository.setUserName( RedbackRoleConstants.ADMINISTRATOR_ACCOUNT_NAME ); remoteRepository.setPassword( FakeCreateAdminService.ADMIN_TEST_PWD ); if ( getRemoteRepositoriesService().getRemoteRepository( remoteRepository.getId() ) != null ) getRemoteRepositoriesService().deleteRemoteRepository( remoteRepository.getId() );
final NetworkProxy proxyConnector = this.networkProxyMap.get( remoteRepository.getId() ); ProxyInfo networkProxy = null; if ( proxyConnector != null ) + " to connect to remote repository " + remoteRepository.getUrl(); if ( networkProxy.getNonProxyHosts() != null ) String username = remoteRepository.getUserName(); String password = remoteRepository.getPassword(); log.debug( "Using username {} to connect to remote repository {}", username, remoteRepository.getUrl() ); authInfo = new AuthenticationInfo(); authInfo.setUserName( username ); int timeoutInMilliseconds = remoteRepository.getTimeout() * 1000; new org.apache.maven.wagon.repository.Repository( remoteRepository.getId(), remoteRepository.getUrl() ); if ( networkProxy != null ) log.error( "Could not connect to {}:{} ", remoteRepository.getName(), e.getMessage() ); connected = false;
@Override public List<RemoteRepository> getRemoteRepositories() throws RepositoryAdminException { List<RemoteRepository> remoteRepositories = new ArrayList<>( getArchivaConfiguration().getConfiguration().getRemoteRepositories().size() ); for ( RemoteRepositoryConfiguration repositoryConfiguration : getArchivaConfiguration().getConfiguration().getRemoteRepositories() ) { RemoteRepository remoteRepository = new RemoteRepository( repositoryConfiguration.getId(), repositoryConfiguration.getName(), repositoryConfiguration.getUrl(), repositoryConfiguration.getLayout(), repositoryConfiguration.getUsername(), repositoryConfiguration.getPassword(), repositoryConfiguration.getTimeout() ); remoteRepository.setDownloadRemoteIndex( repositoryConfiguration.isDownloadRemoteIndex() ); remoteRepository.setRemoteIndexUrl( repositoryConfiguration.getRemoteIndexUrl() ); remoteRepository.setCronExpression( repositoryConfiguration.getRefreshCronExpression() ); remoteRepository.setIndexDirectory( repositoryConfiguration.getIndexDir() ); remoteRepository.setRemoteDownloadNetworkProxyId( repositoryConfiguration.getRemoteDownloadNetworkProxyId() ); remoteRepository.setRemoteDownloadTimeout( repositoryConfiguration.getRemoteDownloadTimeout() ); remoteRepository.setDownloadRemoteIndexOnStartup( repositoryConfiguration.isDownloadRemoteIndexOnStartup() ); remoteRepository.setDescription( repositoryConfiguration.getDescription() ); remoteRepository.setExtraHeaders( repositoryConfiguration.getExtraHeaders() ); remoteRepository.setExtraParameters( repositoryConfiguration.getExtraParameters() ); remoteRepository.setCheckPath(repositoryConfiguration.getCheckPath()); remoteRepositories.add( remoteRepository ); } return remoteRepositories; }
try String protocol = getProtocol( remoteRepository.getUrl() ); final NetworkProxy networkProxy = this.networkProxyMap.get( remoteRepository.getId() ); new WagonFactoryRequest( "wagon#" + protocol, remoteRepository.getExtraHeaders() ).networkProxy( networkProxy ) ); log.info( "Retrieving {} from {}", artifactPath, remoteRepository.getName() );
@Override public String getId() { return repository.getId(); }
throws RepositoryAdminException triggerAuditEvent( remoteRepository.getId(), null, AuditEvent.ADD_REMOTE_REPO, auditInformation ); getRepositoryCommonValidator().basicValidation( remoteRepository, false ); if ( StringUtils.isEmpty( remoteRepository.getUrl() ) ) remoteRepository.setUrl( StringUtils.stripEnd(StringUtils.trim( remoteRepository.getUrl() ), "/")); if (StringUtils.isEmpty(remoteRepository.getCheckPath())) { String checkUrl = remoteRepository.getUrl().toLowerCase(); for (RepositoryCheckPath path : getArchivaConfiguration ().getConfiguration().getArchivaDefaultConfiguration().getDefaultCheckPaths()) { log.debug("Checking path for urls: {} <-> {}", checkUrl, path.getUrl()); if (checkUrl.startsWith(path.getUrl())) { remoteRepository.setCheckPath(path.getPath()); break;
String username = remoteRepository.getRepository().getUserName(); String password = remoteRepository.getRepository().getPassword(); long timeoutInMilliseconds = TimeUnit.MILLISECONDS.convert( remoteRepository.getRepository().getTimeout(), // TimeUnit.SECONDS ); log.warn( "Could not connect to {}: {}", remoteRepository.getRepository().getName(), e.getMessage() ); connected = false;
@Test public void checkRemoteConnectivity() throws Exception { Server repoServer = buildStaticServer( Paths.get( System.getProperty( "basedir" ), "src/test/repositories/test-repo" ) ); ServerConnector serverConnector = new ServerConnector( repoServer, new HttpConnectionFactory()); repoServer.addConnector( serverConnector ); repoServer.start(); RemoteRepositoriesService service = getRemoteRepositoriesService(); WebClient.client( service ).header( "Authorization", authorizationHeader ); try { int repoServerPort = serverConnector.getLocalPort(); RemoteRepository repo = getRemoteRepository(); repo.setUrl( "http://localhost:" + repoServerPort ); service.addRemoteRepository( repo ); assertThat( service.checkRemoteConnectivity( repo.getId() ) ).isTrue(); } finally { service.deleteRemoteRepository( "id-new" ); repoServer.stop(); } }
String contextKey = "remote-" + remoteRepository.getId(); IndexingContext indexingContext = indexer.getIndexingContexts().get( contextKey ); if ( indexingContext != null ) File repoDir = new File( appServerBase, "data/remotes/" + remoteRepository.getId() ); if ( !repoDir.exists() ) String indexDirectoryPath = remoteRepository.getIndexDirectory(); return indexer.addIndexingContext( contextKey, remoteRepository.getId(), repoDir, indexDirectory, remoteRepository.getUrl(), calculateIndexRemoteUrl( remoteRepository ), mavenIndexerUtils.getAllIndexCreators() );
public void addExtraHeader( String key, String value ) { getExtraHeaders().put( key, value ); }
private void resolve( ResolveRequest resolveRequest ) { RepositorySystem system = newRepositorySystem(); RepositorySystemSession session = newRepositorySystemSession( system, resolveRequest.localRepoDir ); org.sonatype.aether.artifact.Artifact artifact = new DefaultArtifact( resolveRequest.groupId + ":" + resolveRequest.artifactId + ":" + resolveRequest.version ); CollectRequest collectRequest = new CollectRequest(); collectRequest.setRoot( new Dependency( artifact, "" ) ); // add remote repositories for ( RemoteRepository remoteRepository : resolveRequest.remoteRepositories ) { collectRequest.addRepository( new org.sonatype.aether.repository.RemoteRepository( remoteRepository.getId(), "default", remoteRepository.getUrl() ) ); } collectRequest.setRequestContext( "project" ); //collectRequest.addRepository( repo ); try { CollectResult collectResult = system.collectDependencies( session, collectRequest ); collectResult.getRoot().accept( resolveRequest.dependencyVisitor ); log.debug( "test" ); } catch ( DependencyCollectionException e ) { log.error( e.getMessage(), e ); } }
public void addExtraParameter( String key, String value ) { getExtraParameters().put( key, value ); }
@Override public RepositoryURL getURL() { return new RepositoryURL( repository.getUrl() ); }
/** * * @param wagon The wagon instance that should be connected. * @param remoteRepository The repository from where the checksum file should be retrieved * @param remotePath The remote path of the artifact (without extension) * @param resource The local artifact (without extension) * @param workingDir The working directory where the downloaded file should be placed to * @param ext The extension of th checksum file * @return The file where the data has been downloaded to. * @throws AuthorizationException * @throws TransferFailedException * @throws ResourceDoesNotExistException */ private File transferChecksum( final Wagon wagon, final RemoteRepository remoteRepository, final String remotePath, final File resource, final File workingDir, final String ext ) throws AuthorizationException, TransferFailedException, ResourceDoesNotExistException { File destFile = new File( workingDir, resource.getName() + ext ); String remoteChecksumPath = remotePath + ext; log.info( "Retrieving {} from {}", remoteChecksumPath, remoteRepository.getName() ); wagon.get( addParameters( remoteChecksumPath, remoteRepository ), destFile ); log.debug( "Downloaded successfully." ); return destFile; }
if (StringUtils.isNotBlank(remoteRepository.getRemoteDownloadNetworkProxyId())) { networkProxy = networkProxyAdmin.getNetworkProxy(remoteRepository.getRemoteDownloadNetworkProxyId()); if (networkProxy == null) { log.warn( "your remote repository is configured to download remote index trought a proxy we cannot find id:{}", remoteRepository.getRemoteDownloadNetworkProxyId()); String wagonProtocol = new URL(remoteRepository.getUrl()).getProtocol(); wagonFactory.getWagon(new WagonFactoryRequest(wagonProtocol, remoteRepository.getExtraHeaders()) // .networkProxy(networkProxy)); proxyInfo.setPassword(networkProxy.getPassword()); String url = StringUtils.stripEnd(remoteRepository.getUrl(), "/"); wagon.connect(new Repository(remoteRepository.getId(), url), proxyInfo); if (!(StringUtils.isEmpty(remoteRepository.getCheckPath()) || "/".equals(remoteRepository.getCheckPath()))) { return wagon.resourceExists(remoteRepository.getCheckPath()); } else {
RemoteRepository remoteRepository = new RemoteRepository(Locale.getDefault()); remoteRepository.setId( remoteId ); remoteRepository.setName( remoteId ); remoteRepository.setDownloadRemoteIndex( true ); remoteRepository.setUrl( "http://localhost:" + port + "/repository/test-group" ); remoteRepository.setRemoteIndexUrl( "http://localhost:" + port + "/repository/test-group/" + path ); remoteRepository.setUserName( RedbackRoleConstants.ADMINISTRATOR_ACCOUNT_NAME ); remoteRepository.setPassword( FakeCreateAdminService.ADMIN_TEST_PWD );