package org.org.repository.crawler.services; import java.util.HashSet; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; import junit.framework.TestCase; import org.org.model.IModelItem; import org.org.model.IModelItemListener; import org.org.model.ModelItemEvent; import org.org.repository.crawler.items.IHttpCrawledRepositorySetup; import org.org.repository.crawler.items.mutable.HttpCrawledRepositorySetup; import org.org.repository.crawler.maven2.RepositoryCrawlerService; import org.org.repository.crawler.maven2.model.Artifact; import org.org.repository.crawler.maven2.model.ArtifactVersion; import org.org.repository.crawler.maven2.model.Group; import org.org.repository.crawler.maven2.model.CrawledRepository; import org.org.repository.crawler.maven2.model.protocolplugins.HttpRepositoryBrowserPlugin; /** * @author zepag */ public class HttpCrawledRepositoryServiceIntegrationTest extends TestCase { @Override protected void setUp() throws Exception { } public void testMaven2Repo() { RepositoryCrawlerService<IHttpCrawledRepositorySetup> mavenRepositoryService = new RepositoryCrawlerService<IHttpCrawledRepositorySetup>(new HttpRepositoryBrowserPlugin()); HttpCrawledRepositorySetup repositorySetup = new HttpCrawledRepositorySetup("http://repo1.maven.org/maven2"); Set<String> groupFilters = new HashSet<String>(); groupFilters.add("org.org-libs"); repositorySetup.setGroupFilters(groupFilters); final AtomicInteger atomicInteger = new AtomicInteger(0); CrawledRepository crawledRepository = mavenRepositoryService.retrieveRepository(repositorySetup, "CrawledRepository Maven 2", new IModelItemListener() { public void changeOccured(ModelItemEvent modelItemEvent) { if (modelItemEvent.getEventType() == ModelItemEvent.EventType.POST_ADD_CHILD) { atomicInteger.incrementAndGet(); } } }); assertNotNull(crawledRepository); assertTrue(crawledRepository.hasChildren()); } public void testMaven2Group() { RepositoryCrawlerService<IHttpCrawledRepositorySetup> mavenRepositoryService = new RepositoryCrawlerService<IHttpCrawledRepositorySetup>(new HttpRepositoryBrowserPlugin()); HttpCrawledRepositorySetup repositorySetup = new HttpCrawledRepositorySetup("http://repo1.maven.org/maven2"); Group group = mavenRepositoryService.retrieveGroup(repositorySetup, "org.springframework.ws"); assertNotNull(group); assertEquals("org.springframework.ws", group.getName()); assertTrue(group.hasChildren()); for (Artifact modelItem : group.getChildren()) { assertTrue(modelItem.hasChildren()); } } @SuppressWarnings("rawtypes") public void testMaven2Artifact() { RepositoryCrawlerService<IHttpCrawledRepositorySetup> mavenRepositoryService = new RepositoryCrawlerService<IHttpCrawledRepositorySetup>(new HttpRepositoryBrowserPlugin()); HttpCrawledRepositorySetup repositorySetup = new HttpCrawledRepositorySetup("http://repo1.maven.org/maven2"); Artifact artifact = mavenRepositoryService.retrieveArtifact(repositorySetup, "org.springframework", "spring"); assertNotNull(artifact); assertEquals("spring", artifact.getId()); assertTrue(artifact.hasChildren()); for (IModelItem modelItem : artifact.getChildren()) { assertTrue(modelItem instanceof ArtifactVersion); } } public void testMaven2ArtifactVersion() { RepositoryCrawlerService<IHttpCrawledRepositorySetup> mavenRepositoryService = new RepositoryCrawlerService<IHttpCrawledRepositorySetup>(new HttpRepositoryBrowserPlugin()); HttpCrawledRepositorySetup repositorySetup = new HttpCrawledRepositorySetup("http://repo1.maven.org/maven2"); Set<ArtifactVersion> artifactVersions = mavenRepositoryService.retrieveArtifactVersions(repositorySetup, "org.springframework", "spring", "2.0.7"); assertNotNull(artifactVersions); assertTrue(artifactVersions.size() > 0); } public void testJITR() { RepositoryCrawlerService<IHttpCrawledRepositorySetup> mavenRepositoryService = new RepositoryCrawlerService<IHttpCrawledRepositorySetup>(new HttpRepositoryBrowserPlugin()); HttpCrawledRepositorySetup repositorySetup = new HttpCrawledRepositorySetup("http://www.jitr.org/repositories/release/"); repositorySetup.setPatternSet(HttpRepositoryBrowserPlugin.APACHE2_PATTERNSET); final AtomicInteger atomicInteger = new AtomicInteger(0); CrawledRepository crawledRepository = mavenRepositoryService.retrieveRepository(repositorySetup, "CrawledRepository Maven 2", new IModelItemListener() { public void changeOccured(ModelItemEvent modelItemEvent) { if (modelItemEvent.getEventType() == ModelItemEvent.EventType.POST_ADD_CHILD) { atomicInteger.incrementAndGet(); } } }); assertNotNull(crawledRepository); assertTrue(crawledRepository.hasChildren()); } public void testS3Browse() { RepositoryCrawlerService<IHttpCrawledRepositorySetup> mavenRepositoryService = new RepositoryCrawlerService<IHttpCrawledRepositorySetup>(new HttpRepositoryBrowserPlugin()); HttpCrawledRepositorySetup repositorySetup = new HttpCrawledRepositorySetup("http://s3browse.com/explore/repository.springsource.com/maven/bundles/external/"); repositorySetup.setPatternSet(HttpRepositoryBrowserPlugin.S3BROWSE_PATTERNSET); Set<String> groupFilters = new HashSet<String>(); groupFilters.add("org.apache.commons"); repositorySetup.setGroupFilters(groupFilters); final AtomicInteger atomicInteger = new AtomicInteger(0); CrawledRepository crawledRepository = mavenRepositoryService.retrieveRepository(repositorySetup, "CrawledRepository Maven 2", new IModelItemListener() { public void changeOccured(ModelItemEvent modelItemEvent) { if (modelItemEvent.getEventType() == ModelItemEvent.EventType.POST_ADD_CHILD) { atomicInteger.incrementAndGet(); } } }); assertNotNull(crawledRepository); assertTrue(crawledRepository.hasChildren()); } }