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

[BUG] Spring Boot 3.2 compatibility #884

Closed
oleh-melnyk opened this issue Nov 26, 2023 · 8 comments
Closed

[BUG] Spring Boot 3.2 compatibility #884

oleh-melnyk opened this issue Nov 26, 2023 · 8 comments

Comments

@oleh-melnyk
Copy link

oleh-melnyk commented Nov 26, 2023

JobRunr Version

6.3.3

JDK Version

OpenJDK Temurin-21+35

Your SQL / NoSQL database

mongo:latest

What happened?

Attempting to create the StorageProvider bean is failing due to path resolving issues. This issue is observed only with Spring Boot version 3.2.

How to reproduce?

create simple project with the following dependencies:

   <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.0</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.example</groupId>
  <artifactId>springboot3-jobrunr-error</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>springboot3-jobrunr-error</name>
  <description>springboot3-jobrunr-error</description>
  <properties>
    <java.version>21</java.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
      <groupId>org.jobrunr</groupId>
      <artifactId>jobrunr-spring-boot-3-starter</artifactId>
      <version>6.3.3</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>

  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

Here is my JobRunrStorageConfig:

@Configuration
@ComponentScan(basePackages = "com.example.springboot3jobrunrerror")
public class JobRunrStorageConfig {

  @Bean
  public StorageProvider dataSource(JobMapper jobMapper, MongoClient mongoClient) {
    var storageProvider = new MongoDBStorageProvider(mongoClient, "example-jobrunr");
    storageProvider.setJobMapper(jobMapper);
    return storageProvider;
  }
}

And simple service:

@Service
public class SomeService {

  private final JobScheduler jobScheduler;

  public SomeService(JobScheduler jobScheduler) {
    this.jobScheduler = jobScheduler;
  }

  @PostConstruct
  public void setup(){
    jobScheduler.enqueue(() -> System.out.println("Hello"));
  }
}

The I just build ( mvn clean install ) and run my simple app ( java -jar target/springboot3-jobrunr-error-0.0.1-SNAPSHOT.jar)

Relevant log output

2023-11-26T23:44:50.161+02:00 ERROR 90311 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'someService' defined in URL [jar:nested:/Users/omelnyk/Development/springboot3-jobrunr-error/target/springboot3-jobrunr-error-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/com/example/springboot3jobrunrerror/SomeService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'jobScheduler' defined in class path resource [org/jobrunr/spring/autoconfigure/JobRunrAutoConfiguration.class]: Unsatisfied dependency expressed through method 'jobScheduler' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [com/example/springboot3jobrunrerror/JobRunrStorageConfig.class]: Failed to instantiate [org.jobrunr.storage.StorageProvider]: Factory method 'dataSource' threw exception with message: 'path' must contain '/!'
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946) ~[spring-context-6.1.1.jar!/:6.1.1]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) ~[spring-context-6.1.1.jar!/:6.1.1]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.2.0.jar!/:3.2.0]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) ~[spring-boot-3.2.0.jar!/:3.2.0]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.2.0.jar!/:3.2.0]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342) ~[spring-boot-3.2.0.jar!/:3.2.0]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331) ~[spring-boot-3.2.0.jar!/:3.2.0]
        at com.example.springboot3jobrunrerror.Springboot3JobrunrErrorApplication.main(Springboot3JobrunrErrorApplication.java:10) ~[!/:0.0.1-SNAPSHOT]
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91) ~[springboot3-jobrunr-error-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53) ~[springboot3-jobrunr-error-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58) ~[springboot3-jobrunr-error-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jobScheduler' defined in class path resource [org/jobrunr/spring/autoconfigure/JobRunrAutoConfiguration.class]: Unsatisfied dependency expressed through method 'jobScheduler' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [com/example/springboot3jobrunrerror/JobRunrStorageConfig.class]: Failed to instantiate [org.jobrunr.storage.StorageProvider]: Factory method 'dataSource' threw exception with message: 'path' must contain '/!'
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) ~[spring-beans-6.1.1.jar!/:6.1.1]
        ... 23 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [com/example/springboot3jobrunrerror/JobRunrStorageConfig.class]: Failed to instantiate [org.jobrunr.storage.StorageProvider]: Factory method 'dataSource' threw exception with message: 'path' must contain '/!'
        at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:643) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1166) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) ~[spring-beans-6.1.1.jar!/:6.1.1]
        ... 37 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.jobrunr.storage.StorageProvider]: Factory method 'dataSource' threw exception with message: 'path' must contain '/!'
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) ~[spring-beans-6.1.1.jar!/:6.1.1]
        at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:651) ~[spring-beans-6.1.1.jar!/:6.1.1]
        ... 51 common frames omitted
Caused by: java.lang.IllegalArgumentException: 'path' must contain '/!'
        at org.springframework.boot.loader.net.protocol.nested.NestedLocation.parse(NestedLocation.java:98) ~[springboot3-jobrunr-error-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.net.protocol.nested.NestedLocation.fromUri(NestedLocation.java:89) ~[springboot3-jobrunr-error-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.nio.file.NestedFileSystemProvider.getPath(NestedFileSystemProvider.java:88) ~[springboot3-jobrunr-error-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at java.base/java.nio.file.Path.of(Path.java:209) ~[na:na]
        at java.base/java.nio.file.Paths.get(Paths.java:98) ~[na:na]
        at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.uriToPath(ZipFileSystemProvider.java:76) ~[jdk.zipfs:na]
        at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:98) ~[jdk.zipfs:na]
        at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:339) ~[na:na]
        at org.jobrunr.utils.resources.JarFileSystemProvider.getFileSystem(JarFileSystemProvider.java:36) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.utils.resources.JarFileSystemProvider.getFileSystem(JarFileSystemProvider.java:41) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.utils.resources.JarFileSystemProvider.toPath(JarFileSystemProvider.java:25) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.utils.resources.ClassPathResourceProvider.toPath(ClassPathResourceProvider.java:82) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na]
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708) ~[na:na]
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na]
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[na:na]
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) ~[na:na]
        at org.jobrunr.storage.nosql.common.migrations.DefaultNoSqlMigrationProvider.getMigrations(DefaultNoSqlMigrationProvider.java:16) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.storage.nosql.common.NoSqlDatabaseMigrationsProvider.getMigrations(NoSqlDatabaseMigrationsProvider.java:34) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.storage.nosql.common.NoSqlDatabaseMigrationsProvider.getMigrations(NoSqlDatabaseMigrationsProvider.java:27) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.storage.nosql.common.NoSqlDatabaseCreator.getMigrations(NoSqlDatabaseCreator.java:75) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.storage.nosql.common.NoSqlDatabaseCreator.runMigrations(NoSqlDatabaseCreator.java:36) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.storage.nosql.mongo.MongoDBStorageProvider.runMigrations(MongoDBStorageProvider.java:485) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.storage.nosql.mongo.MongoDBStorageProvider.setUpStorageProvider(MongoDBStorageProvider.java:145) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.storage.nosql.mongo.MongoDBStorageProvider.<init>(MongoDBStorageProvider.java:126) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at org.jobrunr.storage.nosql.mongo.MongoDBStorageProvider.<init>(MongoDBStorageProvider.java:95) ~[jobrunr-6.3.3.jar!/:6.3.3]
        at com.example.springboot3jobrunrerror.JobRunrStorageConfig.dataSource(JobRunrStorageConfig.java:18) ~[!/:0.0.1-SNAPSHOT]
        at com.example.springboot3jobrunrerror.JobRunrStorageConfig$$SpringCGLIB$$0.CGLIB$dataSource$0(<generated>) ~[!/:0.0.1-SNAPSHOT]
        at com.example.springboot3jobrunrerror.JobRunrStorageConfig$$SpringCGLIB$$FastClass$$1.invoke(<generated>) ~[!/:0.0.1-SNAPSHOT]
        at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) ~[spring-core-6.1.1.jar!/:6.1.1]
        at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-6.1.1.jar!/:6.1.1]
        at com.example.springboot3jobrunrerror.JobRunrStorageConfig$$SpringCGLIB$$0.dataSource(<generated>) ~[!/:0.0.1-SNAPSHOT]
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) ~[spring-beans-6.1.1.jar!/:6.1.1]
        ... 52 common frames omitted
@oleh-melnyk
Copy link
Author

oleh-melnyk commented Nov 27, 2023

Did quick temporary solution:

@Configuration
public class JobRunrConfig {

  @Bean
  public StorageProvider dataSource(JobMapper jobMapper, MongoClient mongoClient, @Value("${org.jobrunr.database.database-name}") String dbName) {
    new MyMongoDBCreator(mongoClient, dbName).runMigrations();
    var storageProvider = new MongoDBStorageProvider(mongoClient, "example-jobrunr", StorageProviderUtils.DatabaseOptions.SKIP_CREATE);
    storageProvider.setJobMapper(jobMapper);
    return storageProvider;
  }

  public record MyNoSqlMigration(String className) implements NoSqlMigration {

    @Override
    public String getClassName() {
      return className;
    }

     @Override
    public Class<?> getMigrationClass() throws ClassNotFoundException {
      return Class.forName(className);
    }

    @Override
    public <T> T getMigration() throws IOException, ClassNotFoundException {
      try {
        return (T) Class.forName(className).getDeclaredConstructor().newInstance();
      } catch (Exception e) {
        throw new RuntimeException(e);
      }
    }
  }

  // TODO it's temporary solution until JobRunr fix it
  //  https://github.com/jobrunr/jobrunr/issues/884
  public static class MyMongoDBCreator extends MongoDBCreator {
    public MyMongoDBCreator(MongoClient mongoClient, String dbName) {
      super(mongoClient, dbName);
    }

    @Override
    protected Stream<NoSqlMigration> getMigrations() {
      return Stream.of(
          M001_CreateJobCollection.class.getName(),
          M002_CreateRecurringJobCollection.class.getName(),
          M003_CreateBackgroundJobServerCollection.class.getName(),
          M004_CreateJobStatsCollection.class.getName(),
          M005_CreateMetadataCollectionAndDropJobStats.class.getName(),
          M006_UpdateRecurringJobsCollectionAddCreatedAtIndex.class.getName(),
          M007_UpdateJobsCollectionReplaceIndices.class.getName()
      ).map(MyNoSqlMigration::new);
    }
  }
}

@auloin
Copy link
Contributor

auloin commented Nov 27, 2023

Thanks for the issue @oleh-melnyk. We tried but cannot reproduce it (see https://github.com/jobrunr/example-java-mag/tree/issue/884). Could you create a repository that reproduces this?

@oleh-melnyk
Copy link
Author

@auloin reproduced on the same example by adding spring-boot-maven plugin
https://github.com/oleh-melnyk/example-java-mag/tree/issue/884

@auloin
Copy link
Contributor

auloin commented Nov 27, 2023

Thanks @oleh-melnyk, I'm now able to reproduce it. A fix will be published as soon as we're able to determine and understand the impact of Spring Boot 3.2 on JobRunr.

@auloin auloin changed the title Spring Boot 3.2 compatibility [BUG] [BUG] Spring Boot 3.2 compatibility Nov 27, 2023
@rdehuyss
Copy link
Contributor

Root cause is found: see commit spring-projects/spring-boot@7ad4a98

@philwebb
Copy link

philwebb commented Nov 28, 2023

I'm investigating what we can do in Spring Boot to fix this. In the meantime, you can revert to the classic jar loader by configuring the Maven plugin as follows:

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<configuration>
				<loaderImplementation>CLASSIC</loaderImplementation>
			</configuration>
		</plugin>
	</plugins>
</build>

@rdehuyss
Copy link
Contributor

Wauw, thanks @philwebb for taking the time to respond here - appreciate it!

@rdehuyss
Copy link
Contributor

This will automatically be solved with the release of Spring Boot 3.2.1.

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

No branches or pull requests

4 participants