|
25 | 25 |
|
26 | 26 | import org.eclipse.aether.RepositorySystemSession;
|
27 | 27 | import org.eclipse.aether.artifact.Artifact;
|
| 28 | +import org.eclipse.aether.deployment.DeployRequest; |
28 | 29 | import org.eclipse.aether.impl.MetadataGenerator;
|
29 | 30 | import org.eclipse.aether.impl.MetadataGeneratorFactory;
|
30 | 31 | import org.eclipse.aether.impl.OfflineController;
|
| 32 | +import org.eclipse.aether.installation.InstallRequest; |
31 | 33 | import org.eclipse.aether.metadata.Metadata;
|
32 | 34 | import org.eclipse.aether.repository.RemoteRepository;
|
33 | 35 | import org.eclipse.aether.resolution.ResolutionErrorPolicy;
|
34 | 36 | import org.eclipse.aether.resolution.ResolutionErrorPolicyRequest;
|
| 37 | +import org.eclipse.aether.spi.artifact.decorator.ArtifactDecorator; |
35 | 38 | import org.eclipse.aether.spi.artifact.decorator.ArtifactDecoratorFactory;
|
| 39 | +import org.eclipse.aether.spi.artifact.generator.ArtifactGenerator; |
36 | 40 | import org.eclipse.aether.spi.artifact.generator.ArtifactGeneratorFactory;
|
37 | 41 | import org.eclipse.aether.transfer.RepositoryOfflineException;
|
38 | 42 |
|
|
41 | 45 | */
|
42 | 46 | public final class Utils {
|
43 | 47 |
|
44 |
| - public static PrioritizedComponents<ArtifactDecoratorFactory> sortArtifactDecoratorFactories( |
| 48 | + private static PrioritizedComponents<ArtifactDecoratorFactory> sortArtifactDecoratorFactories( |
45 | 49 | RepositorySystemSession session, Map<String, ArtifactDecoratorFactory> factories) {
|
46 | 50 | return PrioritizedComponents.reuseOrCreate(session, factories, ArtifactDecoratorFactory::getPriority);
|
47 | 51 | }
|
48 | 52 |
|
49 |
| - public static PrioritizedComponents<ArtifactGeneratorFactory> sortArtifactGeneratorFactories( |
| 53 | + public static List<? extends ArtifactDecorator> getArtifactDecorators( |
| 54 | + RepositorySystemSession session, Map<String, ArtifactDecoratorFactory> artifactDecoratorFactories) { |
| 55 | + PrioritizedComponents<ArtifactDecoratorFactory> factories = |
| 56 | + sortArtifactDecoratorFactories(session, artifactDecoratorFactories); |
| 57 | + List<ArtifactDecorator> decorators = new ArrayList<>(); |
| 58 | + for (PrioritizedComponent<ArtifactDecoratorFactory> factory : factories.getEnabled()) { |
| 59 | + ArtifactDecorator decorator = factory.getComponent().newInstance(session); |
| 60 | + if (decorator != null) { |
| 61 | + decorators.add(decorator); |
| 62 | + } |
| 63 | + } |
| 64 | + return decorators; |
| 65 | + } |
| 66 | + |
| 67 | + private static PrioritizedComponents<ArtifactGeneratorFactory> sortArtifactGeneratorFactories( |
50 | 68 | RepositorySystemSession session, Map<String, ArtifactGeneratorFactory> factories) {
|
51 | 69 | return PrioritizedComponents.reuseOrCreate(session, factories, ArtifactGeneratorFactory::getPriority);
|
52 | 70 | }
|
53 | 71 |
|
54 |
| - public static PrioritizedComponents<MetadataGeneratorFactory> sortMetadataGeneratorFactories( |
| 72 | + private static List<? extends ArtifactGenerator> doGetArtifactGenerators( |
| 73 | + RepositorySystemSession session, Map<String, ArtifactGeneratorFactory> artifactFactories, Object request) { |
| 74 | + PrioritizedComponents<ArtifactGeneratorFactory> factories = |
| 75 | + sortArtifactGeneratorFactories(session, artifactFactories); |
| 76 | + List<ArtifactGenerator> generators = new ArrayList<>(); |
| 77 | + for (PrioritizedComponent<ArtifactGeneratorFactory> factory : factories.getEnabled()) { |
| 78 | + ArtifactGenerator generator; |
| 79 | + if (request instanceof InstallRequest) { |
| 80 | + generator = factory.getComponent().newInstance(session, (InstallRequest) request); |
| 81 | + } else if (request instanceof DeployRequest) { |
| 82 | + generator = factory.getComponent().newInstance(session, (DeployRequest) request); |
| 83 | + } else { |
| 84 | + throw new IllegalArgumentException("Unknown request"); |
| 85 | + } |
| 86 | + if (generator != null) { |
| 87 | + generators.add(generator); |
| 88 | + } |
| 89 | + } |
| 90 | + return generators; |
| 91 | + } |
| 92 | + |
| 93 | + public static List<? extends ArtifactGenerator> getArtifactGenerators( |
| 94 | + RepositorySystemSession session, |
| 95 | + Map<String, ArtifactGeneratorFactory> artifactFactories, |
| 96 | + InstallRequest request) { |
| 97 | + return doGetArtifactGenerators(session, artifactFactories, request); |
| 98 | + } |
| 99 | + |
| 100 | + public static List<? extends ArtifactGenerator> getArtifactGenerators( |
| 101 | + RepositorySystemSession session, |
| 102 | + Map<String, ArtifactGeneratorFactory> artifactFactories, |
| 103 | + DeployRequest request) { |
| 104 | + return doGetArtifactGenerators(session, artifactFactories, request); |
| 105 | + } |
| 106 | + |
| 107 | + private static PrioritizedComponents<MetadataGeneratorFactory> sortMetadataGeneratorFactories( |
55 | 108 | RepositorySystemSession session, Map<String, MetadataGeneratorFactory> factories) {
|
56 | 109 | return PrioritizedComponents.reuseOrCreate(session, factories, MetadataGeneratorFactory::getPriority);
|
57 | 110 | }
|
58 | 111 |
|
| 112 | + private static List<? extends MetadataGenerator> doGetMetadataGenerators( |
| 113 | + RepositorySystemSession session, Map<String, MetadataGeneratorFactory> metadataFactories, Object request) { |
| 114 | + PrioritizedComponents<MetadataGeneratorFactory> factories = |
| 115 | + sortMetadataGeneratorFactories(session, metadataFactories); |
| 116 | + List<MetadataGenerator> generators = new ArrayList<>(); |
| 117 | + for (PrioritizedComponent<MetadataGeneratorFactory> factory : factories.getEnabled()) { |
| 118 | + MetadataGenerator generator; |
| 119 | + if (request instanceof InstallRequest) { |
| 120 | + generator = factory.getComponent().newInstance(session, (InstallRequest) request); |
| 121 | + } else if (request instanceof DeployRequest) { |
| 122 | + generator = factory.getComponent().newInstance(session, (DeployRequest) request); |
| 123 | + } else { |
| 124 | + throw new IllegalArgumentException("Unknown request"); |
| 125 | + } |
| 126 | + if (generator != null) { |
| 127 | + generators.add(generator); |
| 128 | + } |
| 129 | + } |
| 130 | + return generators; |
| 131 | + } |
| 132 | + |
| 133 | + public static List<? extends MetadataGenerator> getMetadataGenerators( |
| 134 | + RepositorySystemSession session, |
| 135 | + Map<String, MetadataGeneratorFactory> metadataFactories, |
| 136 | + InstallRequest request) { |
| 137 | + return doGetMetadataGenerators(session, metadataFactories, request); |
| 138 | + } |
| 139 | + |
| 140 | + public static List<? extends MetadataGenerator> getMetadataGenerators( |
| 141 | + RepositorySystemSession session, |
| 142 | + Map<String, MetadataGeneratorFactory> metadataFactories, |
| 143 | + DeployRequest request) { |
| 144 | + return doGetMetadataGenerators(session, metadataFactories, request); |
| 145 | + } |
| 146 | + |
59 | 147 | public static List<Metadata> prepareMetadata(
|
60 | 148 | List<? extends MetadataGenerator> generators, List<? extends Artifact> artifacts) {
|
61 | 149 | List<Metadata> metadatas = new ArrayList<>();
|
|
0 commit comments