X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fapi%2Fjmx%2FNetconfJMXNotification.java;fp=opendaylight%2Fnetconf%2Fnetconf-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fapi%2Fjmx%2FNetconfJMXNotification.java;h=5aa4bffce3a48710afffe51776eb5f07712a1372;hb=a92d9d6a21a0f6ca8d2153795721f500eaf29ee9;hp=0000000000000000000000000000000000000000;hpb=fbc3092ca33990f0fc4a47f008786a416c484488;p=controller.git diff --git a/opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/jmx/NetconfJMXNotification.java b/opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/jmx/NetconfJMXNotification.java new file mode 100644 index 0000000000..5aa4bffce3 --- /dev/null +++ b/opendaylight/netconf/netconf-api/src/main/java/org/opendaylight/controller/netconf/api/jmx/NetconfJMXNotification.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.controller.netconf.api.jmx; + +import java.util.Set; + +import javax.management.Notification; +import javax.management.NotificationBroadcasterSupport; + +import org.w3c.dom.Element; + +public abstract class NetconfJMXNotification extends Notification { + + /** + * + */ + private static final long serialVersionUID = 6754474563863772845L; + + private static long sequenceNumber = 1; + + private final TransactionProviderJMXNotificationType type; + + protected NetconfJMXNotification(TransactionProviderJMXNotificationType type, + NotificationBroadcasterSupport source, String message) { + super(type.toString(), source, sequenceNumber++, System.nanoTime(), message); + this.type = type; + } + + @Override + public String toString() { + return "TransactionProviderJMXNotification [type=" + type + "]"; + } + + /** + * Sends this notification using source that created it + */ + public void send() { + ((NotificationBroadcasterSupport) getSource()).sendNotification(this); + } + + /** + * Creates notification about successful commit execution. + * + * Intended for config-persister. + * + * @param transactionName + * @param cfgSnapshot + */ + public static CommitJMXNotification afterCommit(NotificationBroadcasterSupport source, String message, + Element cfgSnapshot, Set capabilities) { + return new CommitJMXNotification(source, message, cfgSnapshot, capabilities); + } + + static enum TransactionProviderJMXNotificationType { + commit; + } + +}