Author: michiel
Date: 2010-03-15 22:20:19 +0100 (Mon, 15 Mar 2010)
New Revision: 41371
Added:
mmbase/trunk/core/src/main/java/org/mmbase/core/event/LocalEvent.java
mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEvent.java
mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEventBroker.java
mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEventListener.java
Log:
MMB-1941
Added: mmbase/trunk/core/src/main/java/org/mmbase/core/event/LocalEvent.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/core/event/LocalEvent.java
(rev 0)
+++ mmbase/trunk/core/src/main/java/org/mmbase/core/event/LocalEvent.java
2010-03-15 21:20:19 UTC (rev 41371)
@@ -0,0 +1,24 @@
+/*
+ * This software is OSI Certified Open Source Software.
+ * OSI Certified is a certification mark of the Open Source Initiative. The
+ * license (Mozilla version 1.0) can be read at the MMBase site. See
+ * http://www.MMBase.org/license
+ */
+package org.mmbase.core.event;
+
+
+/**
+ * An event that does not need broadcasting to other servers
+ *
+ * @author Michiel Meeuwissen
+ * @since MMBase-1.9.3
+ * @version $Id: LocalEvent.java 41369 2010-03-15 20:54:45Z michiel $
+ */
+public abstract class LocalEvent extends Event {
+
+ private static final long serialVersionUID = 1L;
+ public LocalEvent() {
+ super(null, TYPE_UNSPECIFIED);
+ }
+
+}
Added:
mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEvent.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEvent.java
(rev 0)
+++ mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEvent.java
2010-03-15 21:20:19 UTC (rev 41371)
@@ -0,0 +1,92 @@
+/*
+ * This software is OSI Certified Open Source Software.
+ * OSI Certified is a certification mark of the Open Source Initiative. The
+ * license (Mozilla version 1.0) can be read at the MMBase site. See
+ * http://www.MMBase.org/license
+ */
+package org.mmbase.core.event;
+
+import java.io.*;
+import java.util.*;
+
+import org.mmbase.util.logging.Logger;
+import org.mmbase.util.logging.Logging;
+
+/**
+ *
+ * @author Michiel Meeuwissen
+ * @since MMBase-1.9.3
+ * @version $Id: TransactionEvent.java 41369 2010-03-15 20:54:45Z michiel $
+ */
+public abstract class TransactionEvent extends LocalEvent {
+ private static final Logger log =
Logging.getLoggerInstance(TransactionEvent.class);
+
+ protected final String transactionName;
+
+ TransactionEvent(String transactionName) {
+ this.transactionName = transactionName;
+ }
+
+ public String getTransactionName() {
+ return transactionName;
+ }
+
+
+ public static abstract class End extends TransactionEvent {
+ public End(String transactionName) {
+ super(transactionName);
+ }
+ }
+
+ public static class Commit extends End {
+ private static final long serialVersionUID = 1L;
+
+ public Commit(String transactionName) {
+ super(transactionName);
+ }
+ @Override
+ public String toString() {
+ return "commit:" + getTransactionName();
+ }
+ }
+
+ public static class Resolve extends TransactionEvent {
+ private static final long serialVersionUID = 1L;
+ private final Map<Integer, Integer> resolved;
+ public Resolve(String transactionName, Map<Integer, Integer> resolved)
{
+ super(transactionName);
+ this.resolved = resolved;
+ }
+ public Map<Integer, Integer> getResolution() {
+ return resolved;
+ }
+ @Override
+ public String toString() {
+ return "resolve:" + getTransactionName() + " " + getResolution();
+ }
+ }
+
+ public static class Cancel extends End {
+ private static final long serialVersionUID = 1L;
+
+ public Cancel(String transactionName) {
+ super(transactionName);
+ }
+ @Override
+ public String toString() {
+ return "cancel:" + getTransactionName() ;
+ }
+ }
+
+ public static class Create extends TransactionEvent {
+ private static final long serialVersionUID = 1L;
+
+ public Create(String transactionName) {
+ super(transactionName);
+ }
+ @Override
+ public String toString() {
+ return "create:" + getTransactionName() ;
+ }
+ }
+}
Added:
mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEventBroker.java
===================================================================
---
mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEventBroker.java
(rev 0)
+++
mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEventBroker.java
2010-03-15 21:20:19 UTC (rev 41371)
@@ -0,0 +1,55 @@
+/*
+ * This software is OSI Certified Open Source Software.
+ * OSI Certified is a certification mark of the Open Source Initiative. The
+ * license (Mozilla version 1.0) can be read at the MMBase site. See
+ * http://www.MMBase.org/license
+ */
+package org.mmbase.core.event;
+
+
+/**
+ *
+ * @author Michiel Meeuwissen
+ * @since MMBase-1.9.3
+ * @version $Id: TransactionEventBroker.java 41369 2010-03-15 20:54:45Z
michiel $
+ */
+public class TransactionEventBroker extends AbstractEventBroker {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see event.AbstractEventBroker#canBrokerFor(java.lang.Class)
+ */
+ public boolean canBrokerForListener(EventListener listener) {
+ return listener instanceof TransactionEventListener;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see event.AbstractEventBroker#shouldNotifyForEvent(event.Event)
+ */
+ public boolean canBrokerForEvent(Event event) {
+ return event instanceof TransactionEvent;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see event.AbstractEventBroker#notifyEventListeners()
+ */
+ protected void notifyEventListener(Event event, EventListener listener) {
+ TransactionEvent te = (TransactionEvent) event; //!!!!!
+ TransactionEventListener tel = (TransactionEventListener) listener;
+ tel.notify(te);
+ }
+
+ /* (non-Javadoc)
+ * @see org.mmbase.core.event.AbstractEventBroker#toString()
+ */
+ @Override
+ public String toString() {
+ return "TransactionEvent Broker";
+ }
+
+}
Added:
mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEventListener.java
===================================================================
---
mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEventListener.java
(rev 0)
+++
mmbase/trunk/core/src/main/java/org/mmbase/core/event/TransactionEventListener.java
2010-03-15 21:20:19 UTC (rev 41371)
@@ -0,0 +1,17 @@
+/*
+ * This software is OSI Certified Open Source Software.
+ * OSI Certified is a certification mark of the Open Source Initiative. The
+ * license (Mozilla version 1.0) can be read at the MMBase site. See
+ * http://www.MMBase.org/license
+ */
+package org.mmbase.core.event;
+
+/**
+ *
+ * @author Michiel Meeuwissen
+ * @since MMBase-1.8
+ * @version $Id: TransactionEventListener.java 41369 2010-03-15 20:54:45Z
michiel $
+ */
+public interface TransactionEventListener extends EventListener {
+ public void notify(TransactionEvent event);
+}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs