If your RevisionListener class is inaccessible from @RevisionEntity (e.g. exists in a different module), set org.hibernate.envers.revision_listener property to it's fully qualified name. Class name defined by the configuration parameter overrides revision entity's value attribute.

so I add:

org.hibernate.envers.revision_listener: db.MyRevisionListener

but then I get error:

ERROR [2015-12-23 12:16:27,157] org.hibernate.AssertionFailure: HHH000099: an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session):
! java.lang.ClassCastException: org.hibernate.envers.DefaultRevisionEntity cannot be cast to db.MyRevisionEntity
! at arnes.dropwizard.db.ArisRevisionListener.newRevision(ArisRevisionListener.java:21) ~[classes/:na]
! at org.hibernate.envers.internal.revisioninfo.DefaultRevisionInfoGenerator.generate(DefaultRevisionInfoGenerator.java:107) ~[hibernate-envers-4.3.11.Final.jar:4.3.11.Final]
! at org.hibernate.envers.internal.synchronization.AuditProcess.getCurrentRevisionData(AuditProcess.java:127) ~[hibernate-envers-4.3.11.Final.jar:4.3.11.Final]
! at org.hibernate.envers.internal.synchronization.AuditProcess.executeInSession(AuditProcess.java:109) ~[hibernate-envers-4.3.11.Final.jar:4.3.11.Final]
! at org.hibernate.envers.internal.synchronization.AuditProcess.doBeforeTransactionCompletion(AuditProcess.java:161) ~[hibernate-envers-4.3.11.Final.jar:4.3.11.Final]
! at org.hibernate.envers.internal.synchronization.AuditProcessManager$1.doBeforeTransactionCompletion(AuditProcessManager.java:63) ~[hibernate-envers-4.3.11.Final.jar:4.3.11.Final]
! at org.hibernate.engine.spi.ActionQueue$BeforeTransactionCompletionProcessQueue.beforeTransactionCompletion(ActionQueue.java:722) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final]

It is very strange because MyRevisionEntity extend DefaultRevisionEntity .

No longer extend DefaultRevisionEntity, but instead just implement yourself all the required fields/methods of @RevisionEntity (meaning @RevisionNumber and @RevisionTimestamp) - you can just look in the source code of DefaultRevisionEntity and copy paste it into your own MyRevisionEntity class).

An example below: (userName is an extra field that you can add - just add as many extra fields you want to the MyRevisionEntity class - to be stored in the MyRevisionEntity entity)