GH-846 - Fix module identifier lookup for jMolecules @Module(id = …).
We now properly translate jMolecules' @Module declaration configuring the id attribute explicitly into the identifier used for an application module. Introduce @ApplicationModule(id = …) for Spring Modulith-native identifier customization.
This commit is contained in:
24
spring-modulith-core/src/test/java/example/Example.java
Normal file
24
spring-modulith-core/src/test/java/example/Example.java
Normal file
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright 2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package example;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Oliver Drotbohm
|
||||
*/
|
||||
public class Example {
|
||||
|
||||
}
|
||||
@@ -1,2 +1,2 @@
|
||||
@org.jmolecules.ddd.annotation.Module
|
||||
@org.jmolecules.ddd.annotation.Module(id = "customId")
|
||||
package example.jmolecules;
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
@org.springframework.modulith.ApplicationModule
|
||||
@org.springframework.modulith.ApplicationModule(id = "secondCustomized")
|
||||
package example.ni.nested.b.second;
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright 2024 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.modulith.core;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import example.Example;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link ApplicationModuleSource}.
|
||||
*
|
||||
* @author Oliver Drotbohm
|
||||
* @since 1.3
|
||||
*/
|
||||
class ApplicationModuleSourceUnitTests {
|
||||
|
||||
@Test // GH-846
|
||||
void detectsSources() {
|
||||
|
||||
var rootPackage = TestUtils.getPackage(Example.class);
|
||||
var detectionStrategy = ApplicationModuleDetectionStrategy.directSubPackage();
|
||||
|
||||
var sources = ApplicationModuleSource.from(rootPackage, detectionStrategy, false);
|
||||
|
||||
assertThat(sources)
|
||||
.extracting(ApplicationModuleSource::getIdentifier)
|
||||
.extracting(ApplicationModuleIdentifier::toString)
|
||||
.contains("ninvalid", "customId", "invalid", "ni", "ni.nested.b.first", "secondCustomized", "ni.nested");
|
||||
}
|
||||
}
|
||||
@@ -36,11 +36,11 @@ class ApplicationModulesUnitTests {
|
||||
.extracting(Object::toString)
|
||||
.containsExactlyInAnyOrder(
|
||||
"invalid",
|
||||
"jmolecules",
|
||||
"customId",
|
||||
"ni",
|
||||
"ni.nested",
|
||||
"ni.nested.b.first",
|
||||
"ni.nested.b.second",
|
||||
"secondCustomized",
|
||||
"springbean");
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ class ApplicationModulesUnitTests {
|
||||
assertThat(ni.getNestedModules(modules))
|
||||
.extracting(ApplicationModule::getIdentifier)
|
||||
.extracting(Object::toString)
|
||||
.containsExactlyInAnyOrder("ni.nested", "ni.nested.b.first", "ni.nested.b.second");
|
||||
.containsExactlyInAnyOrder("ni.nested", "ni.nested.b.first", "secondCustomized");
|
||||
}
|
||||
|
||||
@Test // GH 578
|
||||
|
||||
Reference in New Issue
Block a user