Skip to content

Commit aaa88d7

Browse files
author
patrickt
committed
Merged in bugfix/EL-363-element-dependencies-arent-consid (pull request #183)
EL-363: Added fixes for module dependencie.
2 parents 8eceaad + ba4a222 commit aaa88d7

45 files changed

Lines changed: 69 additions & 56 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

deployment-jetty/src/main/java/dev/getelements/elements/deployment/jetty/loader/ElementBinder.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,30 @@ public ElementBinder(final Element element) {
1919
@Override
2020
protected void configure() {
2121

22+
bindElement(element);
23+
24+
final var registry = element.getElementRegistry();
25+
2226
element.getElementRecord()
27+
.dependencies()
28+
.stream()
29+
.flatMap(dep -> dep.findDependencies(registry))
30+
.distinct()
31+
.forEach(this::bindElement);
32+
33+
}
34+
35+
private void bindElement(final Element source) {
36+
37+
source.getElementRecord()
2338
.attributes()
2439
.stream()
2540
.filter(a -> a.value() != null)
2641
.forEach(this::bindAttribute);
2742

28-
element.getElementRecord()
43+
source.getElementRecord()
2944
.services()
30-
.forEach(this::bindService);
45+
.forEach(service -> bindService(source, service));
3146

3247
}
3348

@@ -39,7 +54,7 @@ private <T> void bindAttribute(final Attribute<T> attribute) {
3954
}
4055

4156
@SuppressWarnings("unchecked")
42-
private <T> void bindService(final ElementServiceRecord service) {
57+
private <T> void bindService(final Element source, final ElementServiceRecord service) {
4358

4459
final var export = service.export();
4560
final var exposedTypes = export.exposed();
@@ -49,8 +64,8 @@ private <T> void bindService(final ElementServiceRecord service) {
4964
final Class<T> primaryType = (Class<T>) exposedTypes.getFirst();
5065

5166
final Optional<Supplier<T>> found = export.isNamed()
52-
? element.getServiceLocator().findInstance(primaryType, export.name())
53-
: element.getServiceLocator().findInstance(primaryType);
67+
? source.getServiceLocator().findInstance(primaryType, export.name())
68+
: source.getServiceLocator().findInstance(primaryType);
5469

5570
found.ifPresent(supplier -> {
5671
final var binding = bindFactory(supplier);

sdk-element-standard-kt/src/main/resources/archetype-resources/element/src/main/kotlin/__packageInPathFormat__/OpenAPISecurityConfig.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package ${package}
22

3-
import dev.getelements.elements.sdk.jakarta.rs.AuthSchemes.SESSION_SECRET
43
import io.swagger.v3.oas.annotations.ExternalDocumentation
54
import io.swagger.v3.oas.annotations.OpenAPIDefinition
65
import io.swagger.v3.oas.annotations.info.Contact
@@ -26,15 +25,15 @@ import io.swagger.v3.oas.annotations.enums.SecuritySchemeType.APIKEY
2625
description = "Please see the Namazu Elements Manual for more information."
2726
),
2827
security = [
29-
SecurityRequirement(name = SESSION_SECRET)
28+
SecurityRequirement(name = dev.getelements.elements.sdk.model.Headers.SESSION_SECRET)
3029
]
3130
)
3231
@SecuritySchemes(
3332
value = [SecurityScheme(
3433
type = APIKEY,
3534
`in` = HEADER,
36-
name = SESSION_SECRET,
37-
paramName = SESSION_SECRET,
35+
name = dev.getelements.elements.sdk.model.Headers.SESSION_SECRET,
36+
paramName = dev.getelements.elements.sdk.model.Headers.SESSION_SECRET,
3837
description = "Session secret required for authenticated endpoints"
3938
)]
4039
)

sdk-element-standard/src/main/resources/archetype-resources/element/src/main/java/OpenAPISecurityConfig.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#set( $symbol_escape = '\' )
44
package ${package};
55

6+
import dev.get${artifactId}s.${artifactId}s.sdk.model.Headers;
67
import io.swagger.v3.oas.annotations.ExternalDocumentation;
78
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
89
import io.swagger.v3.oas.annotations.info.Contact;
@@ -11,7 +12,6 @@
1112
import io.swagger.v3.oas.annotations.security.SecurityScheme;
1213
import io.swagger.v3.oas.annotations.security.SecuritySchemes;
1314

14-
import static dev.getelements.elements.sdk.jakarta.rs.AuthSchemes.SESSION_SECRET;
1515
import static io.swagger.v3.oas.annotations.enums.SecuritySchemeIn.HEADER;
1616
import static io.swagger.v3.oas.annotations.enums.SecuritySchemeType.APIKEY;
1717

@@ -30,15 +30,15 @@
3030
description = "Please see the Namazu Elements Manual for more information."
3131
),
3232
security = {
33-
@SecurityRequirement(name = SESSION_SECRET)
33+
@SecurityRequirement(name = dev.getelements.elements.sdk.model.Headers.SESSION_SECRET)
3434
}
3535
)
3636
@SecuritySchemes({
3737
@SecurityScheme(
3838
type = APIKEY,
3939
in = HEADER,
40-
name = SESSION_SECRET,
41-
paramName = SESSION_SECRET,
40+
name = dev.getelements.elements.sdk.model.Headers.SESSION_SECRET,
41+
paramName = dev.getelements.elements.sdk.model.Headers.SESSION_SECRET,
4242
description = "Session secret required for authenticated endpoints")
4343
})
4444
public class OpenAPISecurityConfig {}

service/src/main/java/dev/getelements/elements/service/util/Services.java renamed to sdk-service/src/main/java/dev/getelements/elements/sdk/service/Services.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dev.getelements.elements.service.util;
1+
package dev.getelements.elements.sdk.service;
22

33
import dev.getelements.elements.sdk.model.exception.ForbiddenException;
44
import dev.getelements.elements.sdk.model.exception.NotImplementedException;

service/src/main/java/dev/getelements/elements/service/appleiap/AppleIapReceiptServiceProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import dev.getelements.elements.sdk.model.user.User;
44
import dev.getelements.elements.sdk.service.appleiap.AppleIapReceiptService;
5-
import dev.getelements.elements.service.util.Services;
5+
import dev.getelements.elements.sdk.service.Services;
66

77
import jakarta.inject.Inject;
88
import jakarta.inject.Provider;

service/src/main/java/dev/getelements/elements/service/application/ApplicationStatusServiceProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import jakarta.inject.Inject;
66
import jakarta.inject.Provider;
77

8-
import static dev.getelements.elements.service.util.Services.forbidden;
8+
import static dev.getelements.elements.sdk.service.Services.forbidden;
99

1010
public class ApplicationStatusServiceProvider implements Provider<ElementStatusService> {
1111

service/src/main/java/dev/getelements/elements/service/application/FirebaseApplicationConfigurationServiceProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import jakarta.inject.Inject;
77
import jakarta.inject.Provider;
88

9-
import static dev.getelements.elements.service.util.Services.forbidden;
9+
import static dev.getelements.elements.sdk.service.Services.forbidden;
1010

1111
public class FirebaseApplicationConfigurationServiceProvider implements Provider<FirebaseApplicationConfigurationService> {
1212

service/src/main/java/dev/getelements/elements/service/application/MatchmakingConfigurationServiceProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import jakarta.inject.Inject;
77
import jakarta.inject.Provider;
88

9-
import static dev.getelements.elements.service.util.Services.forbidden;
9+
import static dev.getelements.elements.sdk.service.Services.forbidden;
1010

1111
public class MatchmakingConfigurationServiceProvider implements Provider<MatchmakingApplicationConfigurationService> {
1212

service/src/main/java/dev/getelements/elements/service/application/PSNApplicationConfigurationServiceProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import dev.getelements.elements.sdk.model.user.User;
44
import dev.getelements.elements.sdk.service.application.PSNApplicationConfigurationService;
5-
import dev.getelements.elements.service.util.Services;
5+
import dev.getelements.elements.sdk.service.Services;
66

77
import jakarta.inject.Inject;
88
import jakarta.inject.Provider;

service/src/main/java/dev/getelements/elements/service/auth/AuthSchemeServiceProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import jakarta.inject.Provider;
88

99
import static dev.getelements.elements.sdk.model.user.User.Level.SUPERUSER;
10-
import static dev.getelements.elements.service.util.Services.forbidden;
10+
import static dev.getelements.elements.sdk.service.Services.forbidden;
1111

1212
public class AuthSchemeServiceProvider implements Provider<AuthSchemeService> {
1313

0 commit comments

Comments
 (0)