Author: michiel
Date: 2010-04-02 18:04:23 +0200 (Fri, 02 Apr 2010)
New Revision: 41742

Removed:
   mmbase/trunk/core/src/main/java/org/mmbase/core/event/EventManager.java
   mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEvent.java
   mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEventBroker.java
   
mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEventListener.java
Log:
moved to utils

Deleted: mmbase/trunk/core/src/main/java/org/mmbase/core/event/EventManager.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/core/event/EventManager.java     
2010-04-02 16:03:59 UTC (rev 41741)
+++ mmbase/trunk/core/src/main/java/org/mmbase/core/event/EventManager.java     
2010-04-02 16:04:23 UTC (rev 41742)
@@ -1,341 +0,0 @@
-/*
- * 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.IOException;
-import java.util.*;
-import java.net.URL;
-
-import org.mmbase.util.*;
-import org.mmbase.util.logging.Logger;
-import org.mmbase.util.logging.Logging;
-import org.mmbase.util.xml.DocumentReader;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.xml.sax.SAXException;
-
-import java.util.concurrent.CopyOnWriteArraySet;
-
-/**
- * This class manages all event related stuff. it is the place to register 
event brokers, and it
- * will propagate all events. The class is set up as a singleton. When the 
manager is instantiated,
- * event brokers are added for Event, NodeEvent and RelationEvent
- *
- * @author  Ernst Bunders
- * @since   MMBase-1.8
- * @version $Id$
- */
-public class EventManager implements SystemEventListener {
-
-    private static final Logger log = 
Logging.getLoggerInstance(EventManager.class);
-
-    private static final UUID INSTANCEID = UUID.randomUUID();
-    private static String machineName = "localhost";
-
-    public static final String PUBLIC_ID_EVENTMANAGER = "-//MMBase//DTD 
eventmanager config 1.0//EN";
-    public static final String DTD_EVENTMANAGER = "eventmanager_1_0.dtd";
-
-
-    static {
-        
org.mmbase.util.xml.EntityResolver.registerPublicID(PUBLIC_ID_EVENTMANAGER, 
DTD_EVENTMANAGER, EventManager.class);
-    }
-
-    /**
-     * the instance that this singleton will manage
-     */
-    private static final EventManager eventManager = new EventManager();
-
-    /**
-     * The collection of event brokers. There is one for every event type that 
can be sent/received
-     */
-    private final Set<EventBroker> eventBrokers = new 
CopyOnWriteArraySet<EventBroker>();
-
-    private long numberOfPropagatedEvents = 0;
-    private long duration = 0;
-
-    /**
-     * use this metod to get an instance of the event manager
-     */
-    public static EventManager getInstance() {
-        return eventManager;
-    }
-
-    /**
-     * @since MMBase-2.0
-     */
-    public static UUID getUUID() {
-        return INSTANCEID;
-    }
-    /**
-     * @since MMBase-2.0
-     */
-    public static String getMachineName() {
-        return machineName;
-    }
-
-    public void notify(SystemEvent se) {
-        if (se instanceof SystemEvent.MachineName) {
-            machineName = ((SystemEvent.MachineName) se).getName();
-        }
-    }
-
-
-    protected ResourceWatcher watcher = new ResourceWatcher() {
-            public void onChange(String w) {
-                configure(w);
-            }
-        };
-
-    private EventManager() {
-        watcher.add("eventmanager.xml");
-        watcher.onChange();
-        watcher.start();
-    }
-
-
-    protected void configure(String resource) {
-        log.service("Configuring the event manager");
-        eventBrokers.clear();
-        for (URL url : 
ResourceLoader.getConfigurationRoot().getResourceList(resource)) {
-            try {
-                if (url.openConnection().getDoInput()) {
-
-                    Document config = ResourceLoader.getDocument(url, true, 
EventManager.class);
-                    DocumentReader configReader = new DocumentReader(config);
-
-                    // find the event brokers
-                    for (Element element: 
configReader.getChildElements("eventmanager.brokers", "broker")) {
-                        try {
-                            EventBroker broker = (EventBroker) 
org.mmbase.util.xml.Instantiator.getInstance(element);
-                            if (broker != null) {
-                                if (log.isDebugEnabled()) {
-                                    log.debug("adding event broker: " + 
broker);
-                                }
-                                addEventBroker(broker);
-                            }
-                        } catch (Throwable ee) {
-                            log.warn(ee.getMessage(), ee);
-                        }
-                    }
-                }
-            } catch (SAXException e1) {
-                log.error("Something went wrong configuring the event system 
(" + url + "): " + e1.getMessage(), e1);
-            } catch (IOException e1) {
-                log.error("something went wrong configuring the event system 
(" + url + "): " + e1.getMessage(), e1);
-
-            }
-        }
-        if (eventBrokers.size() == 0) {
-            log.fatal("No event brokers could not be found. This means that 
query-invalidation does not work correctly now. Proceeding anyway.");
-            return;
-        }
-        addEventListener(this);
-    }
-
-    /**
-     * @since MMBase-1.8.5
-     */
-
-    public Collection<EventBroker> getBrokers() {
-        return Collections.unmodifiableSet(eventBrokers);
-    }
-
-    /**
-     * add an event broker for a specific type of event
-     * @param broker
-     */
-    public void addEventBroker(EventBroker broker) {
-        //we want only one instance of each broker
-        if(! eventBrokers.contains(broker)){
-            if (log.isDebugEnabled()) {
-                log.debug("adding broker " + broker.toString());
-            }
-            eventBrokers.add(broker);
-        } else {
-            if (log.isDebugEnabled()) {
-                log.debug("broker " + broker.toString() + "was already 
registered: rejected.");
-            }
-        }
-    }
-
-    /**
-     * remove a broker for a specific type of event
-     * @param broker
-     */
-    public void removeEventBroker(EventBroker broker) {
-        eventBrokers.remove(broker);
-    }
-
-    /**
-     * @param listener
-     */
-    public void addEventListener(EventListener listener) {
-        BrokerIterator i =  findBrokers(listener);
-        while (i.hasNext()) {
-            EventBroker broker = i.next();
-            if (broker.addListener(listener)) {
-                if (log.isDebugEnabled()) {
-                    log.debug("listener " + listener + " added to broker " + 
broker );
-                }
-            }
-        }
-    }
-
-
-    /**
-     * @param listener
-     */
-    public void removeEventListener(EventListener listener) {
-        if (log.isDebugEnabled()) {
-            log.debug("removing listener of type: " + 
listener.getClass().getName());
-        }
-        BrokerIterator i = findBrokers(listener);
-        while (i.hasNext()) {
-            i.next().removeListener(listener);
-        }
-    }
-
-    /**
-     * This method will propagate the given event to all the aproprate 
listeners. what makes a
-     * listener apropriate is determined by it's type (class) and by possible 
constraint properties
-     * (if the handling broker supports those
-     * @see AbstractEventBroker
-     * @param event
-     */
-    public void propagateEvent(Event event) {
-        if (log.isTraceEnabled()) {
-            log.trace("Propagating events to " + eventBrokers);
-        }
-        long startTime = System.nanoTime();
-        for (EventBroker broker :  eventBrokers) {
-            try {
-                if (broker.canBrokerForEvent(event)) {
-                    broker.notifyForEvent(event);
-                    if (log.isDebugEnabled()) {
-                        if (log.isTraceEnabled()) {
-                            log.trace("event from '" + event.getMachine() + 
"': " + event + " has been accepted by broker " + broker);
-                        } else {
-                            log.debug("event from '" + event.getMachine() + "' 
has been accepted by broker " + broker);
-                        }
-                    }
-                } else {
-                    if (log.isDebugEnabled()) {
-                        if (log.isTraceEnabled()) {
-                            log.trace("event from '" + event.getMachine() + 
"': " + event + " has been rejected by broker " + broker);
-                        } else {
-                            log.debug("event from '" + event.getMachine() + "' 
has been rejected by broker " + broker);
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                log.error(e.getMessage(), e);
-            }
-        }
-        numberOfPropagatedEvents++;
-        duration += (System.nanoTime() - startTime);
-    }
-
-    /**
-     * Like {...@link #propagateEvent} but with an extra argument 
'asynchronous'.
-     * @param asynchronous If true, execute the propagation in a different 
thread, and don't let this thread wait for the result.
-     */
-    public void propagateEvent(final Event event, boolean asynchronous) {
-        if (asynchronous) {
-            ThreadPools.jobsExecutor.execute(new Runnable() {
-                    public void run() {
-                        propagateEvent(event);
-                    }
-                });
-        } else {
-            propagateEvent(event);
-        }
-    }
-
-    /**
-     * @since MMBase-1.8.1
-     */
-    public long getNumberOfPropagatedEvents() {
-        return numberOfPropagatedEvents;
-    }
-    /**
-     * @since MMBase-1.8.1
-     */
-    public long getPropagationCost() {
-        return duration / 1000000;
-    }
-    /**
-     * @since MMBase-1.9
-     */
-    public long getPropagationCostNs() {
-        return duration;
-    }
-
-
-    /**
-     * @param listener
-     */
-    private BrokerIterator findBrokers(final EventListener listener) {
-        if (log.isDebugEnabled()) {
-            log.debug("try to find broker for " + 
listener.getClass().getName());
-        }
-        return new BrokerIterator(eventBrokers.iterator(), listener);
-    }
-
-    /**
-     * @since MMBase-1.9
-     */
-    public void shutdown() {
-        log.service("Shutting down event manager");
-        eventBrokers.clear();
-        watcher.exit();
-    }
-
-    private static class BrokerIterator implements Iterator<EventBroker> {
-        EventBroker next;
-        final Iterator<EventBroker> i;
-        final EventListener listener;
-
-        BrokerIterator(final Iterator<EventBroker> i, final EventListener 
listener) {
-            this.i = i;
-            this.listener = listener;
-            findNext();
-        }
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-        public EventBroker next() {
-            if (next == null) throw new NoSuchElementException();
-            EventBroker n = next;
-            findNext();
-            return n;
-        }
-        public boolean hasNext() {
-            return next != null;
-        }
-
-        protected void findNext() {
-            while(i.hasNext()) {
-                EventBroker broker = i.next();
-                if (broker.canBrokerForListener(listener)) {
-                    if (log.isDebugEnabled()) {
-                        log.debug("broker " + broker + " can broker for 
eventlistener " + listener.getClass().getName());
-                    }
-                    next = broker;
-                    return;
-                } else if (log.isDebugEnabled()) {
-                    log.debug("broker " + broker + " cannot boker for 
eventlistener." + listener.getClass().getName());
-                }
-            }
-            next = null;
-        }
-
-    }
-
-
-
-}

Deleted: mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEvent.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEvent.java      
2010-04-02 16:03:59 UTC (rev 41741)
+++ mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEvent.java      
2010-04-02 16:04:23 UTC (rev 41742)
@@ -1,55 +0,0 @@
-/*
- * 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 SystemEvent extends Event {
-    private static final Logger LOG = 
Logging.getLoggerInstance(SystemEvent.class);
-
-    public SystemEvent() {
-    }
-
-    /**
-     * Notifies that the local MMBase is now fully up and running
-     */
-    public static class Up extends SystemEvent {
-    }
-
-    /**
-     * Notifies the first determination or change in the 'machinename'
-     */
-    public static class MachineName extends SystemEvent {
-        private final String name;
-        public MachineName(String n) {
-            name = n;
-        }
-        public String getName() {
-            return name;
-        }
-    }
-
-    static {
-        SystemEventListener logger = new SystemEventListener() {
-                public void notify(SystemEvent s) {
-                    LOG.service(" Received " + s);
-                }
-            };
-        EventManager.getInstance().addEventListener(logger);
-    }
-
-}

Deleted: 
mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEventBroker.java
===================================================================
--- 
mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEventBroker.java    
    2010-04-02 16:03:59 UTC (rev 41741)
+++ 
mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEventBroker.java    
    2010-04-02 16:04:23 UTC (rev 41742)
@@ -1,55 +0,0 @@
-/*
- * 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 SystemEventBroker extends AbstractEventBroker {
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see event.AbstractEventBroker#canBrokerFor(java.lang.Class)
-     */
-    public boolean canBrokerForListener(EventListener listener) {
-        return listener instanceof SystemEventListener;
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see event.AbstractEventBroker#shouldNotifyForEvent(event.Event)
-     */
-    public boolean canBrokerForEvent(Event event) {
-        return event instanceof SystemEvent;
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see event.AbstractEventBroker#notifyEventListeners()
-     */
-    protected void notifyEventListener(Event event, EventListener listener) {
-        SystemEvent te = (SystemEvent) event; //!!!!!
-        SystemEventListener sel = (SystemEventListener) listener;
-        sel.notify(te);
-    }
-
-    /* (non-Javadoc)
-     * @see org.mmbase.core.event.AbstractEventBroker#toString()
-     */
-    @Override
-    public String toString() {
-        return "SystemEvent Broker";
-    }
-
-}

Deleted: 
mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEventListener.java
===================================================================
--- 
mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEventListener.java  
    2010-04-02 16:03:59 UTC (rev 41741)
+++ 
mmbase/trunk/core/src/main/java/org/mmbase/core/event/SystemEventListener.java  
    2010-04-02 16:04:23 UTC (rev 41742)
@@ -1,17 +0,0 @@
-/*
- * 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: TransactionEventListener.java 41419 2010-03-16 12:54:44Z 
michiel $
- */
-public interface SystemEventListener extends EventListener {
-    public void notify(SystemEvent event);
-}

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to