1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.internal.impl;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24
25 import java.util.Map;
26 import java.util.Optional;
27
28 import org.apache.maven.api.Packaging;
29 import org.apache.maven.api.Type;
30 import org.apache.maven.api.services.PackagingRegistry;
31 import org.apache.maven.api.services.TypeRegistry;
32 import org.apache.maven.lifecycle.mapping.LifecycleMapping;
33
34
35
36
37 @Named
38 @Singleton
39 public class DefaultPackagingRegistry implements PackagingRegistry {
40 private final Map<String, LifecycleMapping> lifecycleMappings;
41
42 private final TypeRegistry typeRegistry;
43
44 @Inject
45 public DefaultPackagingRegistry(Map<String, LifecycleMapping> lifecycleMappings, TypeRegistry typeRegistry) {
46 this.lifecycleMappings = lifecycleMappings;
47 this.typeRegistry = typeRegistry;
48 }
49
50 @Override
51 public Optional<Packaging> lookup(String id) {
52 LifecycleMapping lifecycleMapping = lifecycleMappings.get(id);
53 if (lifecycleMapping == null) {
54 return Optional.empty();
55 }
56 Type type = typeRegistry.lookup(id).orElse(null);
57 if (type == null) {
58 return Optional.empty();
59 }
60
61 return Optional.of(new Packaging() {
62 @Override
63 public String id() {
64 return id;
65 }
66
67 @Override
68 public Type getType() {
69 return type;
70 }
71 });
72 }
73 }