title: Handle spring-data-rest application events within the transaction
body: <p>I need to publish notification events to external systems over JMS, when data is updated.  Id like this to be done within the same transaction as the objects are committed to the database to ensure integrity.</p>
  
  <p>The ApplicationLifecycle events that spring-data-rest emits seemed like the logical place to implement this logic.</p>
  
  <pre><code>@org.springframework.transaction.annotation.Transactional
  public class TestEventListener extends AbstractRepositoryEventListener&lt;Object&gt; {
  
      private static final Logger LOG = LoggerFactory.getLogger(TestEventListener.class);
  
      @Override
      protected void onBeforeCreate(Object entity) {
          LOG.info("XXX before create");
      }
  
      @Override
      protected void onBeforeSave(Object entity) {
          LOG.info("XXX before save");
      }
  
      @Override
      protected void onAfterCreate(Object entity) {
          LOG.info("XXX after create");
      }
  
      @Override
      protected void onAfterSave(Object entity) {
          LOG.info("XXX after save");
      }
  
  }
  </code></pre>
  
  <p>However, these events happen before and after the tx starts and commits.</p>
  
  <pre><code>08 15:32:37.119 [http-nio-9000-exec-1] INFO  n.c.v.vcidb.TestEventListener - XXX before create 
  08 15:32:37.135 [http-nio-9000-exec-1] TRACE o.s.t.i.TransactionInterceptor - Getting transaction for [org.springframework.data.jpa.repository.support.SimpleJpaRepository.save]
  
  
  
  08 15:32:37.432 [http-nio-9000-exec-1] TRACE o.s.t.i.TransactionInterceptor - Completing transaction for [org.springframework.data.jpa.repository.support.SimpleJpaRepository.save] 
  08 15:32:37.479 [http-nio-9000-exec-1] INFO  n.c.v.vcidb.TestEventListener - XXX after create 
  </code></pre>
  
  <p>What extension point does spring-data-rest have for adding behaviour that will execute within the spring managed transaction?</p>