/** * The shadow is delegating it's availability to it's master, but we can still shot down the shadow only. */ @Override public LocalStatus getLocalStatus() { return super.getLocalStatus().shouldServiceRequest() && getMasterRepository().getLocalStatus().shouldServiceRequest() ? LocalStatus.IN_SERVICE : LocalStatus.OUT_OF_SERVICE; }
/** * Sets the item max age in (in minutes). * * @param itemMaxAge the new item max age in (in minutes). */ public void setItemMaxAge( int itemMaxAge ) { getExternalConfiguration( true ).setItemMaxAge( itemMaxAge ); }
@Override public void setSynchronizeAtStartup( final boolean val ) { getExternalConfiguration( true ).setSynchronizeAtStartup( val ); }
@Override public void setMasterRepository( Repository masterRepository ) throws IncompatibleMasterRepositoryException { // we allow only MavenRepository instances as masters if ( !masterRepository.getRepositoryKind().isFacetAvailable( MavenRepository.class ) ) { throw new IncompatibleMasterRepositoryException( "This shadow repository needs master repository which implements MavenRepository interface!", this, masterRepository.getId() ); } super.setMasterRepository( masterRepository ); }
@Override protected void validateMemberRepository(final Repository repository) throws InvalidGroupingException { if (repository.getRepositoryKind().isFacetAvailable(P2CompositeGroupRepository.class)) { throw new InvalidGroupingException(String.format( "Repository '%s' cannot be grouped as P2 composite groups are not supported as members of P2 legacy groups", repository.getName() )); } super.validateMemberRepository(repository); }
/** * Repository is a proxy repository. */ private boolean ISPROXY(Repository repository) { return repository.getRepositoryKind().isFacetAvailable(MavenProxyRepository.class); }
public ProxyMode getProxyMode() { if ( getRepositoryKind().isFacetAvailable( ProxyRepository.class ) ) { return getExternalConfiguration( false ).getProxyMode(); } else { return null; } }
/** * The repository is in service for indexing purposes */ private boolean INSERVICE(Repository repository) { return LocalStatus.IN_SERVICE.equals(repository.getLocalStatus()); }
@SuppressWarnings( "unchecked" ) public <F> F adaptToFacet( Class<F> t ) { if ( getRepositoryKind().isFacetAvailable( t ) ) { return (F) this; } else { return null; } }
@Override public MavenRepository getMasterRepository() { return super.getMasterRepository().adaptToFacet( MavenRepository.class ); }
@Override public void expireCaches( final ResourceStoreRequest request ) { if ( !getLocalStatus().shouldServiceRequest() ) { return; } // expire proxy cache expireProxyCaches( request ); // do the stuff we inherited super.expireCaches( request ); }
@Override public void expireCaches( ResourceStoreRequest request ) { final List<Repository> members = getMemberRepositories(); for ( Repository member : members ) { member.expireCaches( request ); } super.expireCaches( request ); }
@Override public boolean isSynchronizeAtStartup() { return getExternalConfiguration( false ).isSynchronizeAtStartup(); }
@Override public boolean expireMetadataCaches( final ResourceStoreRequest request ) { return getRepository().expireCaches( request, getMetadataWalkerFilter() ); }
@Override protected void doApplyConfiguration( Repository repository, ApplicationConfiguration configuration, CRepositoryCoreConfiguration coreConfiguration ) throws ConfigurationException { super.doApplyConfiguration( repository, configuration, coreConfiguration ); // Groups are read only repository.setWritePolicy( RepositoryWritePolicy.READ_ONLY ); } }
public void setMemberRepositoryIds( List<String> repositories ) throws NoSuchRepositoryException, InvalidGroupingException { getExternalConfiguration( true ).clearMemberRepositoryIds(); for ( String repoId : repositories ) { addMemberRepositoryId( repoId ); } }
@Override public void setIndexable( boolean indexable ) { if ( !isIndexable() && indexable ) { // we have a non-indexable -> indexable transition madeSearchable = true; } super.setIndexable( indexable ); }
/** * 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); }