|
4 | 4 | import java.util.Arrays; |
5 | 5 | import java.util.Collections; |
6 | 6 | import java.util.HashMap; |
| 7 | +import java.util.List; |
7 | 8 | import java.util.Map; |
| 9 | +import java.util.Map.Entry; |
8 | 10 | import java.util.Objects; |
9 | 11 | import java.util.Optional; |
10 | 12 | import java.util.stream.Stream; |
@@ -78,6 +80,20 @@ private void populateComponents() { |
78 | 80 | .map(Package::getName) |
79 | 81 | .toArray(String[]::new); |
80 | 82 |
|
| 83 | + if (logger.isDebugEnabled()) { |
| 84 | + final List<String> packages = Arrays.asList(availablePackages); |
| 85 | + |
| 86 | + logger.debug("eforms eu packages:"); |
| 87 | + packages.stream().sorted() |
| 88 | + .filter(p -> p.contains("eu.") && !p.contains("digit")) |
| 89 | + .forEach(p -> logger.debug(p)); |
| 90 | + |
| 91 | + logger.debug("viewer package"); |
| 92 | + packages.stream().sorted() |
| 93 | + .filter(p -> p.contains("eu.europa.ted.eforms.viewer")) |
| 94 | + .forEach(p -> logger.debug(p)); |
| 95 | + } |
| 96 | + |
81 | 97 | new Reflections(ConfigurationBuilder.build().forPackages(availablePackages)) |
82 | 98 | .getTypesAnnotatedWith(annotationType).stream() |
83 | 99 | .forEach((Class<?> clazz) -> { |
@@ -126,22 +142,40 @@ protected <T> T getComponentImpl(String sdkVersion, final SdkComponentType compo |
126 | 142 | } |
127 | 143 |
|
128 | 144 | protected <T> T getComponentImpl(String sdkVersion, final SdkComponentType componentType, |
129 | | - final String qualifier, final Class<T> intf, Object... initArgs) throws InstantiationException { |
| 145 | + final String qualifier, final Class<T> intf, Object... initArgs) |
| 146 | + throws InstantiationException { |
130 | 147 |
|
131 | 148 | String normalizedVersion = normalizeVersion(sdkVersion); |
132 | 149 |
|
133 | 150 | ComponentSelector selector = new ComponentSelector(componentType, qualifier); |
134 | 151 |
|
| 152 | + Map<ComponentSelector, SdkComponentDescriptor<?>> map = |
| 153 | + Optional.ofNullable(componentsMap.get(normalizedVersion)) |
| 154 | + .orElseGet(Collections::emptyMap); |
| 155 | + |
| 156 | + if (logger.isDebugEnabled()) { |
| 157 | + logger.debug("selector componentType={}", selector.componentType); |
| 158 | + logger.debug("selector qualifier={}", selector.qualifier); |
| 159 | + logger.debug("normalized version={}", normalizedVersion); |
| 160 | + for (Entry<ComponentSelector, SdkComponentDescriptor<?>> entry : map.entrySet()) { |
| 161 | + logger.debug( |
| 162 | + "entry key componentType={}, key qualifier={}, value={}", |
| 163 | + entry.getKey().componentType, |
| 164 | + entry.getKey().qualifier, |
| 165 | + entry.getValue().getImplType().getName()); |
| 166 | + } |
| 167 | + } |
| 168 | + |
135 | 169 | @SuppressWarnings("unchecked") |
136 | 170 | SdkComponentDescriptor<T> descriptor = |
137 | | - (SdkComponentDescriptor<T>) Optional.ofNullable(componentsMap.get(normalizedVersion)) |
138 | | - .orElseGet(Collections::emptyMap).get(selector); |
| 171 | + (SdkComponentDescriptor<T>) map.get(selector); |
| 172 | + logger.debug("descriptor descriptor={}", descriptor); |
139 | 173 |
|
140 | 174 | if (descriptor == null) { |
141 | 175 | logger.error("Failed to load required components of SDK [{}]", sdkVersion); |
142 | 176 | throw new IllegalArgumentException( |
143 | 177 | MessageFormat.format( |
144 | | - "No implementation found for SDK [{0}], component type [{1}] and qualifier '{2}'.", |
| 178 | + "No implementation found for SDK [{0}], component type [{1}] and qualifier [{2}].", |
145 | 179 | sdkVersion, componentType, qualifier)); |
146 | 180 | } |
147 | 181 |
|
|
0 commit comments