Upgrade from 4.8.2 to 4.9.0

Hi, I’m a working spring-boot axon project (demo) using JPA instead axon server.
After update dependency to 4.9.0 I received and error on start:

Default configuration requires the use of event sourcing. Either configure an Event Store to use, or configure a specific repository implementation for class …

I try to use this configuration:

   @Bean
    public EventStore eventStore(EventStorageEngine storageEngine) {
        return EmbeddedEventStore.builder()
                .storageEngine(storageEngine)
                .build();
    }

    @Bean
    public EventStorageEngine eventStorageEngine(Serializer serializer,
                                                 PersistenceExceptionResolver persistenceExceptionResolver,
                                                 @Qualifier("eventSerializer") Serializer eventSerializer,
                                                 EntityManagerProvider entityManagerProvider,
                                                 TransactionManager transactionManager) {
        return JpaEventStorageEngine.builder()
                .snapshotSerializer(serializer)
                .persistenceExceptionResolver(persistenceExceptionResolver)
                .eventSerializer(eventSerializer)
                .entityManagerProvider(entityManagerProvider)
                .transactionManager(transactionManager)
                .build();
    }

But I Have error:

java.lang.IllegalArgumentException: org.hibernate.query.sqm.UnknownEntityException: Could not resolve root entity ‘DomainEventEntry’
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138) ~[hibernate-core-6.2.6.Final.jar:6.2.6.Final]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:162) ~[hibernate-core-6.2.6.Final.jar:6.2.6.Final]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:168) ~[hibernate-core-6.2.6.Final.jar:6.2.6.Final]
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:795) ~[hibernate-core-6.2.6.Final.jar:6.2.6.Final]
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:120) ~[hibernate-core-6.2.6.Final.jar:6.2.6.Final]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]

Do you have set axon.axonserver.enabled=false, or did you use another way to not use Axon Server? We made some changes to the auto-configuration, which might require adding this property is you are not using Axon Server.

to exclude axon-server I have excluded axon-server-connector into pom

<!-- Axon -->
        <dependency>
            <groupId>org.axonframework</groupId>
            <artifactId>axon-spring-boot-starter</artifactId>
            <version>4.8.2</version>
            <exclusions>
                <exclusion>
                    <groupId>org.axonframework</groupId>
                    <artifactId>axon-server-connector</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

Could you try if adding the property resolves the problem?

I try disable axonserver with properties and now works

Thanks

Marco, bit of background here.
We opted to have exclusions of Axon Server when Spring Boot is in place, to only work through the property.

It’s the property that provides us a lot more flexibility in choosing which beans to create or not to create.
We couldn’t achieve the same support if we need to dabble with dependency exclusions on top of that, which is arguably a downside of Spring Boot’s autoconfiguration tooling.

Or, at least, I couldn’t find a way to make conditional beans based on the combination of a property and the existence of a dependency.

So, our apologies for this breakage you noticed. I hope that our choice in this is made a little clearer through the above.

No problem. I’ think to need update documentation to describe new properties. no problem

Having the same problem, unfortunately setting axon.axonserver.enabled=false didn’t work.
Is there any other solution to this problem?

I am also having same problem with axon.axonserver.enabled=false. I hope orm.xml configuration should not be an issue in spring boot 3.2.0 and Axon 4.9.0. Adapting the changes mentioned in the reference-guide does not make any impact.

<entity class="org.axonframework.eventsourcing.eventstore.jpa.DomainEventEntry">
        <attribute-override name="payload">
            <column name="payload" column-definition="BYTEA"/>
        </attribute-override>
</entity>