move org.eclipse.digitaltwin.basyx.core.LoggingPropertySourceLoader to new artifact basyx.springcore - would help to reduce dependencies to basyx.core #331
I would like to remove the dependency to spring-context spring-boot-starter from basyx.core in order to de-couple dependencies better, especially for BaSyx Clients. This may only be the first step in a couple of steps to eventually decouple the clients from Spring.
The class org.eclipse.digitaltwin.basyx.core.LoggingPropertySourceLoader is the only class in basyx.core that depends on spring-boot.
It derives from org.springframework.boot.env.PropertiesPropertySourceLoader in order to log the location.
Then this derivative is used in these four projects:
basyx.aasenvironment.component
basyx.aasrepository.component
basyx.conceptdescriptionrepository.component
basyx.submodelrepository.component
in the file META-INF/spring.factories, stating
org.springframework.boot.env.PropertySourceLoader=org.eclipse.digitaltwin.basyx.spring.LoggingPropertySourceLoader
My suggestion:
split "basyx.core" into "basyx.core" and "basyx.springcore" (the name is analog to "basyx.mongodbcore")
Move the class org.eclipse.digitaltwin.basyx.core.LoggingPropertySourceLoader to org.eclipse.digitaltwin.basyx.springcore.LoggingPropertySourceLoader
Have the above four projects depend on "basyx.springcore"
Remove dependencies from "basyx.core" to "spring-context" and "spring-boot-starter"
Step 4 has the side effect, that other projects would rely on these transitive dependencies, adjust accordingly.
I have already the changes in a fork - I could make a PR for this.
I would like to remove the dependency to spring-context spring-boot-starter from basyx.core in order to de-couple dependencies better, especially for BaSyx Clients. This may only be the first step in a couple of steps to eventually decouple the clients from Spring.
The class
org.eclipse.digitaltwin.basyx.core.LoggingPropertySourceLoader
is the only class in basyx.core that depends on spring-boot. It derives fromorg.springframework.boot.env.PropertiesPropertySourceLoader
in order to log the location.Then this derivative is used in these four projects:
in the file META-INF/spring.factories, stating
org.springframework.boot.env.PropertySourceLoader=org.eclipse.digitaltwin.basyx.spring.LoggingPropertySourceLoader
My suggestion:
org.eclipse.digitaltwin.basyx.core.LoggingPropertySourceLoader
toorg.eclipse.digitaltwin.basyx.springcore.LoggingPropertySourceLoader
I have already the changes in a fork - I could make a PR for this.
Regards, Florian