mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-02 03:25:56 +01:00
fixed build on Java > 8
This commit is contained in:
@@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
### Added
|
||||||
|
- Support for Java versions > 8
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Upgrade [Legman](https://github.com/sdorra/legman) to v1.6.2 in order to fix execution on Java versions > 8
|
- Upgrade [Legman](https://github.com/sdorra/legman) to v1.6.2 in order to fix execution on Java versions > 8
|
||||||
- Upgrade [Lombok](https://projectlombok.org/) to version 1.18.10 in order to fix build on Java versions > 8
|
- Upgrade [Lombok](https://projectlombok.org/) to version 1.18.10 in order to fix build on Java versions > 8
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ public final class RepositoryService implements Closeable {
|
|||||||
private final PreProcessorUtil preProcessorUtil;
|
private final PreProcessorUtil preProcessorUtil;
|
||||||
private final RepositoryServiceProvider provider;
|
private final RepositoryServiceProvider provider;
|
||||||
private final Repository repository;
|
private final Repository repository;
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
private final Set<ScmProtocolProvider> protocolProviders;
|
private final Set<ScmProtocolProvider> protocolProviders;
|
||||||
private final WorkdirProvider workdirProvider;
|
private final WorkdirProvider workdirProvider;
|
||||||
|
|
||||||
@@ -104,7 +105,10 @@ public final class RepositoryService implements Closeable {
|
|||||||
*/
|
*/
|
||||||
RepositoryService(CacheManager cacheManager,
|
RepositoryService(CacheManager cacheManager,
|
||||||
RepositoryServiceProvider provider, Repository repository,
|
RepositoryServiceProvider provider, Repository repository,
|
||||||
PreProcessorUtil preProcessorUtil, Set<ScmProtocolProvider> protocolProviders, WorkdirProvider workdirProvider) {
|
PreProcessorUtil preProcessorUtil,
|
||||||
|
@SuppressWarnings("rawtypes") Set<ScmProtocolProvider> protocolProviders,
|
||||||
|
WorkdirProvider workdirProvider
|
||||||
|
) {
|
||||||
this.cacheManager = cacheManager;
|
this.cacheManager = cacheManager;
|
||||||
this.provider = provider;
|
this.provider = provider;
|
||||||
this.repository = repository;
|
this.repository = repository;
|
||||||
@@ -445,19 +449,23 @@ public final class RepositoryService implements Closeable {
|
|||||||
return provider.getSupportedFeatures().contains(feature);
|
return provider.getSupportedFeatures().contains(feature);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T extends ScmProtocol> Stream<T> getSupportedProtocols() {
|
public Stream<ScmProtocol> getSupportedProtocols() {
|
||||||
return protocolProviders.stream()
|
return protocolProviders.stream()
|
||||||
.filter(protocolProvider -> protocolProvider.getType().equals(getRepository().getType()))
|
.filter(protocolProvider -> protocolProvider.getType().equals(getRepository().getType()))
|
||||||
.map(this::<T>createProviderInstanceForRepository);
|
.map(this::createProviderInstanceForRepository);
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T extends ScmProtocol> T createProviderInstanceForRepository(ScmProtocolProvider<T> protocolProvider) {
|
@SuppressWarnings("rawtypes")
|
||||||
|
private ScmProtocol createProviderInstanceForRepository(ScmProtocolProvider protocolProvider) {
|
||||||
return protocolProvider.get(repository);
|
return protocolProvider.get(repository);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public <T extends ScmProtocol> T getProtocol(Class<T> clazz) {
|
public <T extends ScmProtocol> T getProtocol(Class<T> clazz) {
|
||||||
return this.<T>getSupportedProtocols()
|
return this.getSupportedProtocols()
|
||||||
.filter(scmProtocol -> clazz.isAssignableFrom(scmProtocol.getClass()))
|
.filter(scmProtocol -> clazz.isAssignableFrom(scmProtocol.getClass()))
|
||||||
|
// no idea how to fix this, without cast
|
||||||
|
.map(p -> (T) p)
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.orElseThrow(() -> new IllegalArgumentException(String.format("no implementation for %s and repository type %s", clazz.getName(),getRepository().getType())));
|
.orElseThrow(() -> new IllegalArgumentException(String.format("no implementation for %s and repository type %s", clazz.getName(),getRepository().getType())));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user