import javax.transaction.Status;
import javax.transaction.UserTransaction;
-import org.argeo.ArgeoException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.cms.CmsException;
import org.argeo.security.ui.admin.SecurityAdminPlugin;
import org.eclipse.ui.AbstractSourceProvider;
import org.eclipse.ui.ISources;
-/** Notifies the UI on UserTransaction state change */
+/** Observe and notify UI on UserTransaction state changes */
public class UserTransactionProvider extends AbstractSourceProvider {
+ private final static Log log = LogFactory
+ .getLog(UserTransactionProvider.class);
+
public final static String TRANSACTION_STATE = SecurityAdminPlugin.PLUGIN_ID
+ ".userTransactionState";
public final static String STATUS_ACTIVE = "status.active";
@Override
public String[] getProvidedSourceNames() {
- return new String[] { TRANSACTION_STATE };
+ return new String[] { TRANSACTION_STATE};
}
@Override
public Map<String, String> getCurrentState() {
Map<String, String> currentState = new HashMap<String, String>(1);
- currentState.put(TRANSACTION_STATE, getInternalCurrentState());
+ currentState.put(TRANSACTION_STATE, getInternalCurrentState());
return currentState;
}
transactionState = STATUS_ACTIVE;
return transactionState;
} catch (Exception e) {
- throw new ArgeoException("Unable to begin transaction", e);
+ throw new CmsException("Unable to begin transaction", e);
}
}
- /** Publish the ability to notify a state change */
+ /** Publishes the ability to notify a state change */
public void fireTransactionStateChange() {
- fireSourceChanged(ISources.WORKBENCH, TRANSACTION_STATE,
- getInternalCurrentState());
+ try {
+ fireSourceChanged(ISources.WORKBENCH, TRANSACTION_STATE,
+ getInternalCurrentState());
+ } catch (Exception e) {
+ log.warn("Cannot fire transaction state change event. Caught exception: "
+ + e.getClass().getCanonicalName() + " - " + e.getMessage());
+ }
}
/* DEPENDENCY INJECTION */