package org.carlspring.strongbox.providers.repository; import org.carlspring.strongbox.client.ArtifactTransportException; import org.carlspring.strongbox.io.ArtifactInputStream; import org.carlspring.strongbox.io.ArtifactOutputStream; import org.carlspring.strongbox.storage.repository.Repository; import javax.annotation.PostConstruct; import java.io.IOException; import java.security.NoSuchAlgorithmException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; /** * @author carlspring */ @Component public class HostedRepositoryProvider extends AbstractRepositoryProvider { private static final Logger logger = LoggerFactory.getLogger(HostedRepositoryProvider.class); private static final String ALIAS = "hosted"; @PostConstruct @Override public void register() { getRepositoryProviderRegistry().addProvider(ALIAS, this); logger.info("Registered repository provider '" + getClass().getCanonicalName() + "' with alias '" + ALIAS + "'."); } @Override public String getAlias() { return ALIAS; } @Override public ArtifactInputStream getInputStream(String storageId, String repositoryId, String path) throws IOException, NoSuchAlgorithmException, ArtifactTransportException { Repository repository = getConfiguration().getStorage(storageId).getRepository(repositoryId); return getLayoutProviderRegistry().getProvider(repository.getLayout()) .getInputStream(storageId, repositoryId, path); } @Override public ArtifactOutputStream getOutputStream(String storageId, String repositoryId, String path) throws IOException, NoSuchAlgorithmException { Repository repository = getConfiguration().getStorage(storageId).getRepository(repositoryId); return getLayoutProviderRegistry().getProvider(repository.getLayout()) .getOutputStream(storageId, repositoryId, path); } }