Skip to content

Commit 287e763

Browse files
authored
Merge pull request #35 from OP-TED/feature/TEDEFO-3325-improve-and-fix-core-reflection-logs
TEDEFO-3325 added more debug logs which give insight into the package…
2 parents db8bb0e + 83c1fb6 commit 287e763

2 files changed

Lines changed: 30 additions & 5 deletions

File tree

src/main/java/eu/europa/ted/eforms/sdk/component/SdkComponentDescriptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public boolean equals(Object obj) {
114114
if (getClass() != obj.getClass())
115115
return false;
116116
SdkComponentDescriptor<?> other = (SdkComponentDescriptor<?>) obj;
117-
return componentType == other.componentType
117+
return componentType == other.componentType
118118
&& Objects.equals(sdkVersion, other.sdkVersion)
119119
&& Objects.equals(qualifier, other.qualifier)
120120
&& Objects.equals(implType, other.implType);

src/main/java/eu/europa/ted/eforms/sdk/component/SdkComponentFactory.java

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import java.util.Arrays;
55
import java.util.Collections;
66
import java.util.HashMap;
7+
import java.util.List;
78
import java.util.Map;
9+
import java.util.Map.Entry;
810
import java.util.Objects;
911
import java.util.Optional;
1012
import java.util.stream.Stream;
@@ -78,6 +80,12 @@ private void populateComponents() {
7880
.map(Package::getName)
7981
.toArray(String[]::new);
8082

83+
if (logger.isTraceEnabled()) {
84+
final List<String> packages = Arrays.asList(availablePackages);
85+
packages.stream().sorted()
86+
.forEach(p -> logger.trace(p));
87+
}
88+
8189
new Reflections(ConfigurationBuilder.build().forPackages(availablePackages))
8290
.getTypesAnnotatedWith(annotationType).stream()
8391
.forEach((Class<?> clazz) -> {
@@ -126,22 +134,39 @@ protected <T> T getComponentImpl(String sdkVersion, final SdkComponentType compo
126134
}
127135

128136
protected <T> T getComponentImpl(String sdkVersion, final SdkComponentType componentType,
129-
final String qualifier, final Class<T> intf, Object... initArgs) throws InstantiationException {
137+
final String qualifier, final Class<T> intf, Object... initArgs)
138+
throws InstantiationException {
130139

131140
String normalizedVersion = normalizeVersion(sdkVersion);
132141

133142
ComponentSelector selector = new ComponentSelector(componentType, qualifier);
134143

144+
Map<ComponentSelector, SdkComponentDescriptor<?>> map =
145+
Optional.ofNullable(componentsMap.get(normalizedVersion))
146+
.orElseGet(Collections::emptyMap);
147+
148+
if (logger.isTraceEnabled()) {
149+
logger.trace("Looking for component with version=[{}], componentType=[{}], qualifier=[{}]",
150+
normalizedVersion, selector.componentType, selector.qualifier);
151+
for (Entry<ComponentSelector, SdkComponentDescriptor<?>> entry : map.entrySet()) {
152+
logger.trace(
153+
"Available component for this version: "
154+
+ "componentType=[{}], qualifier=[{}], value=[{}]",
155+
entry.getKey().componentType,
156+
entry.getKey().qualifier,
157+
entry.getValue().getImplType().getName());
158+
}
159+
}
160+
135161
@SuppressWarnings("unchecked")
136162
SdkComponentDescriptor<T> descriptor =
137-
(SdkComponentDescriptor<T>) Optional.ofNullable(componentsMap.get(normalizedVersion))
138-
.orElseGet(Collections::emptyMap).get(selector);
163+
(SdkComponentDescriptor<T>) map.get(selector);
139164

140165
if (descriptor == null) {
141166
logger.error("Failed to load required components of SDK [{}]", sdkVersion);
142167
throw new IllegalArgumentException(
143168
MessageFormat.format(
144-
"No implementation found for SDK [{0}], component type [{1}] and qualifier '{2}'.",
169+
"No implementation found for SDK [{0}], component type [{1}] and qualifier [{2}].",
145170
sdkVersion, componentType, qualifier));
146171
}
147172

0 commit comments

Comments
 (0)