Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Readiness for Spring Boot 3? #250

Closed
sdoxsee opened this issue Oct 25, 2022 · 22 comments
Closed

Readiness for Spring Boot 3? #250

sdoxsee opened this issue Oct 25, 2022 · 22 comments
Assignees

Comments

@sdoxsee
Copy link

sdoxsee commented Oct 25, 2022

New arangodb user here. Nice project! Tried using this on Spring Boot 2.7.5 project and it worked fine but there are number of changes/depreciations beyond that when you get to Spring Boot 3 that prevent it from working out of the box.

I won't list the errors now as there are several (depending how far ahead the dependencies are bumped)

There is also the depreciation of spring.factories for autoconfiguration that prevents autoconfiguration from being detected in the starter.

Just seeing if anyone has looked at this yet or if it was on the roadmap as Spring Boot 3 GA is less than a month away.

Thanks!

Thanks

@rashtao
Copy link
Collaborator

rashtao commented Oct 25, 2022

Support for Spring Boot 3 is on our roadmap, but the related work has not started yet.
Note that this project is not part of Spring Data main modules, but is a community-module (https://spring.io/projects/spring-data#community-modules). As such, the release schedule does not match the main Spring Data releases and might have some delay.

@aburmeis
Copy link
Contributor

aburmeis commented Jan 31, 2023

I just tried out to build the project using spring data 3.0.1. The only compile incompatibilities are the imports in DefaultArangoConverter. Changing the imports for EntityInstantiator and EntityInstantiators from org.springframework.data.convert to org.springframework.data.mapping.model make the source work with versions 2 and 3.

For compatibility reasons ArangoRepository should now also extend CrudRepository as PagingAndSortingRepositoryno longer includes it. Also the behaviour of deleteById() and delete(T) should checked.

The Spring data parent requires compilation using Java 17 for Spring Boot 3. It seems Arango Spring Data needs a new Major version here which is no longer compatible with Spring Boot 2. But I think the source could be kept compatible without the need for different versions (for more details, see Spring Data 2022.0 (Turing) Release Notes).

aburmeis added a commit to aburmeis/spring-data that referenced this issue Feb 7, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Feb 7, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Feb 7, 2023
@noorul
Copy link

noorul commented Mar 30, 2023

But spring support for 2.7.x will end soon as per this page https://spring.io/projects/spring-boot#support

@ddinger
Copy link

ddinger commented Apr 15, 2023

Yes, the time is ticking. More and more spring users move over to the spring 3.

aburmeis added a commit to aburmeis/spring-data that referenced this issue May 31, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue May 31, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue May 31, 2023
@gnuphie
Copy link

gnuphie commented Jun 28, 2023

Yes, this was a show-stopper for me with using ArangoDB.

aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
@aburmeis
Copy link
Contributor

aburmeis commented Aug 2, 2023

@rashtao I have a PR #280 with all tests green. It will move to JDK 17 and therefore not compatible any more - maybe a major update (Arango-spring data 4) its ahead and we should include Spring Boot 3 and Driver 7 together?

aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
aburmeis added a commit to aburmeis/spring-data that referenced this issue Aug 2, 2023
@aburmeis
Copy link
Contributor

aburmeis commented Aug 3, 2023

@rashtao I am thinking of dropping JodaTime support for the Spring Boot 3 release, what do you think?

rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao pushed a commit that referenced this issue Sep 1, 2023
rashtao added a commit that referenced this issue Sep 1, 2023
rashtao added a commit that referenced this issue Sep 1, 2023
@rashtao
Copy link
Collaborator

rashtao commented Sep 4, 2023

Merged #280 which provides Spring Framework 6 compatibility.

@sushmalpu
Copy link

Hi @rashtao when latest release for springBoot 3 got released?

@rashtao
Copy link
Collaborator

rashtao commented Sep 12, 2023

It has not been released yet.

@rashtao
Copy link
Collaborator

rashtao commented Sep 19, 2023

@rashtao rashtao closed this as completed Sep 19, 2023
@sushmalpu
Copy link

Hi @rashtao , Thanks for informing.
for me when I am using arango db spring data 3.10.0 with springboor 3.1.2 and creating child bean of arangoTemplate with new name in my inherited class from ArangoConfiguration, It is showing conflicts to create bean with name 'arangoTemplate'. This issue not comes in 2.7.x but with 3.1.2 . Does new release have this fix

@aburmeis
Copy link
Contributor

@sushmalpu Can you please check, if your logs with Spring Boot 2 have an entry like "Overriding bean definition for bean 'arangoTemplate'"? Arango Spring Boot starter has an own implementation ArangoAutoConfiguration defining the same bean.

Do you really need your own configuration? If yes, you should consider one of:

  • using @SpringBootApplication(exclude=ArangoAutoConfiguration.class)
  • setting spring.main.allow-bean-definition-overriding=true

Anyway, this is not a bug of Arango Spring Boot Starter, imho.

@sushmalpu
Copy link

sushmalpu commented Sep 20, 2023

Hi @aburmeis , Thanks for replying. Actually we are creating our own ArangoDb starter library and for that we are creating ServiceArangoTemplateConfiguration implements ArangoConfiguration and here we are overridaing arangoTemplate bean with new bean name
@OverRide
@primary
@bean(name={"dbaasServiceArangoTemplate", "arangoTemplate"})
@ConditionalOnMissingBean(name = SERVICE_ARANGO_TEMPLATE)
public ArangoOperations arangoTemplate() throws Exception {}

and we are using this library in other class, but getting conflicts while creating beans. This solution worked fine with spring boot 2.7.X but causing below error on 3.1.2

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'arangoTemplate' defined in class path resource [com/testProject/cloud/dbaas/client/arangodb/configuration/ServiceArangoTemplateConfiguration.class]: No matching factory method found on class [com.testProject.cloud.dbaas.client.arangodb.configuration.ServiceArangoTemplateConfiguration]: factory bean 'com.testProject.cloud.dbaas.client.arangodb.configuration.ServiceArangoTemplateConfiguration'; factory method 'arangoTemplate()'. Check that a method with the specified name exists and that it is non-static.

@rashtao
Copy link
Collaborator

rashtao commented Sep 21, 2023

@sushmalpu
can you please report this in https://github.com/arangodb/spring-boot-starter/issues ?
Please add the relevant code to reproduce the problem, so that we can identify the issue.

@sushmalpu
Copy link

sure, Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants