/** * Repository is a proxy repository. */ private boolean ISPROXY(Repository repository) { return repository.getRepositoryKind().isFacetAvailable(MavenProxyRepository.class); }
protected String extractRepositoryKind(Repository repository) { RepositoryKind kind = repository.getRepositoryKind(); if (kind.isFacetAvailable(HostedRepository.class)) { return "hosted"; } else if (kind.isFacetAvailable(ProxyRepository.class)) { return "proxy"; } else if (kind.isFacetAvailable(GroupRepository.class)) { return "group"; } else if (kind.isFacetAvailable(ShadowRepository.class)) { return "virtual"; } else { // huh? return repository.getRepositoryKind().getMainFacet().getName(); } } }
public Class<?> getMainFacet() { return getActualRepositoryKind().getMainFacet(); }
public static String getFullHumanizedNameString( final Repository repository ) { return String.format( "%s[contentClass=%s][mainFacet=%s]", getHumanizedNameString( repository ), repository.getRepositoryContentClass().getName(), repository.getRepositoryKind().getMainFacet().getName() ); } }
protected boolean isTouchLastRequestedEnabled( final Repository repository ) throws IOException { // the "default" boolean doTouch = LAST_REQUEST_ATTRIBUTE_ENABLED; final RepositoryKind repositoryKind = repository.getRepositoryKind(); if ( repositoryKind != null ) { if ( repositoryKind.isFacetAvailable( HostedRepository.class ) ) { // this is a hosted repository doTouch = LAST_REQUEST_ATTRIBUTE_ENABLED_FOR_HOSTED; } else if ( repositoryKind.isFacetAvailable( ProxyRepository.class ) ) { // this is a proxy repository doTouch = LAST_REQUEST_ATTRIBUTE_ENABLED_FOR_PROXY; } } return doTouch; }
protected String extractRepositoryKind( Repository repository ) { RepositoryKind kind = repository.getRepositoryKind(); if ( kind.isFacetAvailable( HostedRepository.class ) ) { return "hosted"; } else if ( kind.isFacetAvailable( ProxyRepository.class ) ) { return "proxy"; } else if ( kind.isFacetAvailable( GroupRepository.class ) ) { return "group"; } else if ( kind.isFacetAvailable( ShadowRepository.class ) ) { return "virtual"; } else { // huh? return repository.getRepositoryKind().getMainFacet().getName(); } } }
/** * Checks for a "default" behavior for not-found items. For those, we expect that repository is proxy repository, * and we allow further processing. For all other non-proxy repositories, we just return "not available", since * they * have no remote peer to download from, hence, since it is not found, it will be never there. Override if needed. */ protected boolean processNotFoundItems(Repository repo) { if (repo.getRepositoryKind().isFacetAvailable(HostedRepository.class)) { return false; } return true; }
/** * Determine if a repository should be upgraded. * <br/> * A repo should not be upgraded if it is Group or Shadow faceted * @param repo The repo to check for upgrade * @return true if repo should be upgraded */ protected boolean shouldUpgradeRepository(Repository repo){ // NEXUS-5099: Skipping shadows return !repo.getRepositoryKind().isFacetAvailable( GroupRepository.class ) && !repo.getRepositoryKind().isFacetAvailable( MavenShadowRepository.class ); }
/** * Repository is a group repository. */ private boolean ISGROUP(Repository repository) { return repository.getRepositoryKind().isFacetAvailable(GroupRepository.class); }
@SuppressWarnings( "unchecked" ) public <F> F adaptToFacet( Class<F> t ) { if ( getRepositoryKind().isFacetAvailable( t ) ) { return (F) this; } else { return null; } }
@Override public ExecutorService getRepositoryThreadPool( Repository repository ) { if ( repository.getRepositoryKind().isFacetAvailable( GroupRepository.class ) ) { return groupRepositoryThreadPool; } else if ( repository.getRepositoryKind().isFacetAvailable( ProxyRepository.class ) ) { return proxyRepositoryThreadPool; } else { return null; } }
/** * Checks for a "default" behavior for not-found items. For those, we expect that repository is proxy repository, * and we allow further processing. For all other non-proxy repositories, we just return "not available", since they * have no remote peer to download from, hence, since it is not found, it will be never there. Override if needed. * * @return */ protected boolean processNotFoundItems( Repository repo ) { if ( repo.getRepositoryKind().isFacetAvailable( HostedRepository.class ) ) { return false; } return true; }
public String getRestRepoType(Repository repository) { if (repository.getRepositoryKind().isFacetAvailable(ProxyRepository.class)) { return RepositoryBaseResourceConverter.REPO_TYPE_PROXIED; } else if (repository.getRepositoryKind().isFacetAvailable(HostedRepository.class)) { return RepositoryBaseResourceConverter.REPO_TYPE_HOSTED; } else if (repository.getRepositoryKind().isFacetAvailable(ShadowRepository.class)) { return RepositoryBaseResourceConverter.REPO_TYPE_VIRTUAL; } else if (repository.getRepositoryKind().isFacetAvailable(GroupRepository.class)) { return RepositoryBaseResourceConverter.REPO_TYPE_GROUP; } else { throw new IllegalArgumentException("The passed model with class" + repository.getClass().getName() + " is not recognized!"); } }
public boolean isFacetAvailable( Class<?> f ) { if ( getActualRepositoryKind().isFacetAvailable( f ) ) { return true; } for ( Class<?> facet : sharedFacets ) { if ( f.isAssignableFrom( facet ) ) { return true; } } return false; } }
public String getRestRepoType( Repository repository ) { if ( repository.getRepositoryKind().isFacetAvailable( ProxyRepository.class ) ) { return RepositoryBaseResourceConverter.REPO_TYPE_PROXIED; } else if ( repository.getRepositoryKind().isFacetAvailable( HostedRepository.class ) ) { return RepositoryBaseResourceConverter.REPO_TYPE_HOSTED; } else if ( repository.getRepositoryKind().isFacetAvailable( ShadowRepository.class ) ) { return RepositoryBaseResourceConverter.REPO_TYPE_VIRTUAL; } else if ( repository.getRepositoryKind().isFacetAvailable( GroupRepository.class ) ) { return RepositoryBaseResourceConverter.REPO_TYPE_GROUP; } else { throw new IllegalArgumentException( "The passed model with class" + repository.getClass().getName() + " is not recognized!" ); } }
/** * Indexing is supported for this repository. */ private boolean SUPPORTED(Repository repository) { return !repository.getRepositoryKind().isFacetAvailable(ShadowRepository.class) && repository.getRepositoryKind().isFacetAvailable(MavenRepository.class) && repository.getRepositoryContentClass().isCompatible(maven2); }
public <T> List<T> getRepositoriesWithFacet( final Class<T> f ) { final List<Repository> repositories = getRepositories(); final ArrayList<T> result = new ArrayList<T>(); for ( Repository repository : repositories ) { if ( repository.getRepositoryKind().isFacetAvailable( f ) ) { result.add( repository.adaptToFacet( f ) ); } } return Collections.unmodifiableList( result ); }
protected boolean isIndexingSupported( Repository repository ) { // indexing is supported if: // repo has NO Shadow facet available (is not a shadow) // repo has facet MavenRepository available (is implementation tied) // repo had contentClass compatible with Maven2 contentClass return !repository.getRepositoryKind().isFacetAvailable( ShadowRepository.class ) && repository.getRepositoryKind().isFacetAvailable( MavenRepository.class ) && repository.getRepositoryContentClass().isCompatible( maven2 ); }
/** * Archetype Catalog subjects are Maven2 hosted, proxy and group repositories that are In Service. */ private boolean isArchetypeCatalogSubject(final Repository repository) { return maven2ContentClass.isCompatible(repository.getRepositoryContentClass()) && repository.getLocalStatus().shouldServiceRequest() && (repository.getRepositoryKind().isFacetAvailable(HostedRepository.class) || repository.getRepositoryKind().isFacetAvailable(ProxyRepository.class) || repository.getRepositoryKind().isFacetAvailable(GroupRepository.class)); }
protected List<Repository> getTransitiveMemberRepositories( GroupRepository group ) { List<Repository> repos = new ArrayList<Repository>(); for ( Repository repo : group.getMemberRepositories() ) { if ( repo.getRepositoryKind().isFacetAvailable( GroupRepository.class ) ) { repos.addAll( getTransitiveMemberRepositories( repo.adaptToFacet( GroupRepository.class ) ) ); } else { repos.add( repo ); } } return repos; }