001 package org.granite.tide.data;
002
003 import javax.transaction.Synchronization;
004
005 import org.granite.tide.data.DataEnabled.PublishMode;
006
007
008 public 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 }