001package org.granite.tide.data; 002 003import javax.transaction.Synchronization; 004 005import org.granite.tide.data.DataEnabled.PublishMode; 006 007 008public class TideDataPublishingSynchronization implements Synchronization { 009 010 private final boolean removeContext; 011 012 public TideDataPublishingSynchronization(boolean removeContext) { 013 this.removeContext = removeContext; 014 } 015 016 public void beforeCompletion() { 017 DataContext.publish(PublishMode.ON_COMMIT); 018 if (removeContext) 019 DataContext.remove(); 020 } 021 022 public void afterCompletion(int status) { 023 if (removeContext) 024 DataContext.remove(); 025 } 026 027}