aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/javax/management/remote
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/management/remote')
-rw-r--r--libjava/classpath/javax/management/remote/NotificationResult.java166
-rw-r--r--libjava/classpath/javax/management/remote/TargetedNotification.java126
-rw-r--r--libjava/classpath/javax/management/remote/package.html53
-rw-r--r--libjava/classpath/javax/management/remote/rmi/RMIConnection.java1161
-rw-r--r--libjava/classpath/javax/management/remote/rmi/RMIServer.java89
5 files changed, 0 insertions, 1595 deletions
diff --git a/libjava/classpath/javax/management/remote/NotificationResult.java b/libjava/classpath/javax/management/remote/NotificationResult.java
deleted file mode 100644
index 09945f0..0000000
--- a/libjava/classpath/javax/management/remote/NotificationResult.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/* NotificationResult.java -- Wrapper for a series of buffered notifications.
- Copyright (C) 2008 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-package javax.management.remote;
-
-import java.io.Serializable;
-
-/**
- * <p>
- * Wraps the result of a query for buffered notifications. In a remote
- * scenario, it may be more practical for the server to buffer individual
- * notifications from its beans and then return them in bulk on request.
- * This class contains the notifications returned by such a request.
- * </p>
- * <p>
- * It consists of a series of {@link Notification} and identifier pairs,
- * wrapped in a {@link TargetedNotification} object. The identifiers
- * serve to pair up the notification with the listener that requested
- * it. Two positive numbers are also included: the first sequence number
- * used by the returned notifications, and the sequence number of the
- * notification which will be returned by the next query. The first
- * sequence number may be greater than the next sequence number if some
- * notifications have been lost.
- * </p>
- *
- * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
- * @since 1.5
- */
-public class NotificationResult
- implements Serializable
-{
-
- /**
- * Compatible with JDK 1.6
- */
- private static final long serialVersionUID = 1191800228721395279L;
-
- /**
- * The sequence number of the first notification.
- */
- private long earliestSequenceNumber;
-
- /**
- * The sequence number of the next notification to be
- * returned by a future query.
- */
- private long nextSequenceNumber;
-
- /**
- * The pairs of notifications and identifiers returned
- * by the query.
- */
- private TargetedNotification[] targetedNotifications;
-
- /**
- * Constructs a new {@link NotificationResult} using the specified
- * sequence numbers and the supplied array of notification pairs.
- *
- * @param startSeqNumber the sequence number of the first notification
- * being returned.
- * @param nextSeqNumber the sequence numbr of the next notification
- * that will be returned from a future query.
- * @param notifications the notification and identifier pairs. This
- * may be empty.
- * @throws IllegalArgumentException if a sequence number is negative
- * or <code>notifications</code> is
- * <code>null</code>.
- */
- public NotificationResult(long startSeqNumber, long nextSeqNumber,
- TargetedNotification[] notifications)
- {
- if (startSeqNumber < 0)
- throw new IllegalArgumentException("Starting sequence number is " +
- "less than 0.");
- if (nextSeqNumber < 0)
- throw new IllegalArgumentException("Next sequence number is " +
- "less than 0.");
- if (notifications == null)
- throw new IllegalArgumentException("The array of notifications is null.");
- earliestSequenceNumber = startSeqNumber;
- nextSequenceNumber = nextSeqNumber;
- targetedNotifications = notifications;
- }
-
- /**
- * Returns the sequence number of the earliest notification
- * in the buffer.
- *
- * @return the sequence number of the earliest notification.
- */
- public long getEarliestSequenceNumber()
- {
- return earliestSequenceNumber;
- }
-
- /**
- * Returns the sequence number of the next notification to
- * be returned by a future query.
- *
- * @return the sequence number of the next notification.
- */
- public long getNextSequenceNumber()
- {
- return nextSequenceNumber;
- }
-
- /**
- * Returns the notification and identifier pairs returned
- * by the query.
- *
- * @return the notification and identifier pairs.
- */
- public TargetedNotification[] getTargetedNotifications()
- {
- return targetedNotifications;
- }
-
- /**
- * Returns a textual representation of the object.
- *
- * @return a textual representation.
- */
- public String toString()
- {
- return getClass().getName() +
- "[earliestSequenceNumber=" + earliestSequenceNumber +
- ",nextSequenceNumber=" + nextSequenceNumber +
- ",targetedNotifications=" + targetedNotifications +
- "]";
- }
-
-}
diff --git a/libjava/classpath/javax/management/remote/TargetedNotification.java b/libjava/classpath/javax/management/remote/TargetedNotification.java
deleted file mode 100644
index 0724618..0000000
--- a/libjava/classpath/javax/management/remote/TargetedNotification.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/* TargetedNotificaton.java -- Wrapper for a notification and identifier pair.
- Copyright (C) 2008 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-package javax.management.remote;
-
-import java.io.Serializable;
-
-import javax.management.Notification;
-
-/**
- * Wraps a notification with an identifier that specifies
- * the listener which received it.
- *
- * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
- * @since 1.5
- */
-public class TargetedNotification
- implements Serializable
-{
-
- /**
- * Compatible with JDK 1.6
- */
- private static final long serialVersionUID = 7676132089779300926L;
-
- /**
- * The notification that was recieved by the listener.
- */
- private Notification notif;
-
- /**
- * The identifier for the listener that received the notification;
- */
- private Integer id;
-
- /**
- * Constructs a new {@link TargetedNotification} which connects
- * the supplied notification with the specified identifier. The
- * identifier matches one of those returned by a previous call
- * to add a new notification listener.
- *
- * @param notif the notification.
- * @param id the identifier of the listener that received the
- * notification.
- * @throws IllegalArgumentException if either argument is
- * <code>null</code>.
- */
- public TargetedNotification(Notification notif, Integer id)
- {
- if (notif == null)
- throw new IllegalArgumentException("The notification is null.");
- if (id == null)
- throw new IllegalArgumentException("The identifier is null.");
- this.notif = notif;
- this.id = id;
- }
-
- /**
- * Returns the notification.
- *
- * @return the notification.
- */
- public Notification getNotification()
- {
- return notif;
- }
-
- /**
- * Returns the identifier for the listener
- * which received the notification.
- *
- * @return the identifier.
- */
- public Integer getListenerID()
- {
- return id;
- }
-
- /**
- * Returns a textual representation of the object.
- *
- * @return a textual representation.
- */
- public String toString()
- {
- return getClass().getName() +
- "[notif=" + notif +
- ",id=" + id +
- "]";
- }
-
-}
diff --git a/libjava/classpath/javax/management/remote/package.html b/libjava/classpath/javax/management/remote/package.html
deleted file mode 100644
index f1d469f..0000000
--- a/libjava/classpath/javax/management/remote/package.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<!-- package.html - describes classes in javax.management.remote package.
- Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. -->
-
-<html>
-<head><title>GNU Classpath - javax.management.remote</title></head>
-
-<body>
-
-<p>
-Provides a framework for accessing remote MBean servers. The JMX
-remote API introduces the notion of a <emph>connector</emph>. On
-the server side, the connector wraps the MBean server, processing
-calls from remote clients. The client sends its requests via
-a connector which is responsible for transmitting the request
-to the server.
-</p>
-</body>
-</html>
diff --git a/libjava/classpath/javax/management/remote/rmi/RMIConnection.java b/libjava/classpath/javax/management/remote/rmi/RMIConnection.java
deleted file mode 100644
index edf8c89..0000000
--- a/libjava/classpath/javax/management/remote/rmi/RMIConnection.java
+++ /dev/null
@@ -1,1161 +0,0 @@
-/* RMIConnection.java -- RMI object representing a MBean server connection.
- Copyright (C) 2007, 2008 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-package javax.management.remote.rmi;
-
-import java.io.Closeable;
-import java.io.IOException;
-
-import java.rmi.MarshalledObject;
-import java.rmi.Remote;
-
-import java.util.Set;
-
-import javax.management.AttributeList;
-import javax.management.AttributeNotFoundException;
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.InstanceNotFoundException;
-import javax.management.IntrospectionException;
-import javax.management.InvalidAttributeValueException;
-import javax.management.ListenerNotFoundException;
-import javax.management.MBeanInfo;
-import javax.management.MBeanException;
-import javax.management.MBeanRegistrationException;
-import javax.management.NotCompliantMBeanException;
-import javax.management.ObjectInstance;
-import javax.management.ObjectName;
-import javax.management.ReflectionException;
-
-import javax.management.remote.NotificationResult;
-
-import javax.security.auth.Subject;
-
-/**
- * <p>
- * RMI interface for forwarding requests to a remote
- * {@link javax.management.MBeanServer}. This interface
- * parallels the {@link javax.management.MBeanServerConnection}
- * interface, providing a way of invoking those methods using
- * the RMI protocol. When a client wishes to call a method
- * of an MBean server using RMI, the method is called on the stub
- * on the client side, which serializes the object parameters
- * and sends them to the server where they are deserialized and
- * an implementation of this interface forwards them to the
- * appropriate MBean server. Return values follow the same
- * process, only in reverse. Each client obtains its own
- * implementation of this interface from an {@link RMIServer}
- * instance.
- * </p>
- * <p>
- * Implementations of this interface do more than simply
- * forward requests directly to the server. The arguments
- * of the server methods are wrapped in {@link MarshalledObject}
- * instances, so that the correct classloader can be used to
- * deserialize the arguments. When a method is called, the
- * implementation must first retrieve the appropriate classloader
- * and then use it to deserialize the marshalled object. Unless
- * explicitly specified in the documentation for the method,
- * a parameter of the type {@link MarshalledObject} or an array
- * of that type should not be {@code null}.
- * </p>
- * <p>
- * Security is also handled by this interface, as the methods
- * use an additional {@link javax.security.auth.Subject} parameter
- * for role delegation.
- * </p>
- *
- * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
- * @since 1.5
- */
-public interface RMIConnection
- extends Closeable, Remote
-{
-
- /**
- * Handles {@link
- * MBeanServerConnection#addNotificationListener(ObjectName,
- * ObjectName, NotificationFilter, Object)} by
- * registering the supplied listener with the specified management
- * bean. Notifications emitted by the management bean are forwarded
- * to the listener via the server, which will convert any MBean
- * references in the source to portable {@link ObjectName}
- * instances. The notification is otherwise unchanged. The filter
- * and handback object are wrapped in a {@link MarshalledObject}
- * so that they are deserialised using the bean's classloader.
- *
- * @param name the name of the management bean with which the listener
- * should be registered.
- * @param listener the listener which will handle notifications from
- * the bean.
- * @param filter a wrapper containing a filter to apply to incoming
- * notifications, or <code>null</code> if no filtering
- * should be applied.
- * @param passback a wrapper containing an object to be passed to the
- * listener when a notification is emitted.
- * @param delegationSubject a {@link javax.security.auth.Subject} instance
- * containing the delegation principles or
- * {@code null} if authentication is used.
- * @throws InstanceNotFoundException if the name of the management bean
- * could not be resolved.
- * @throws RuntimeOperationsException if the bean associated with the given
- * object name is not a
- * {@link NotificationListener}. This
- * exception wraps an
- * {@link IllegalArgumentException}.
- * @throws SecurityException if the client or delegated subject (if any)
- * does not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see #removeNotificationListener(ObjectName, ObjectName,
- * javax.security.auth.Subject)
- * @see #removeNotificationListener(ObjectName, ObjectName,
- * java.rmi.MarshalledObject,
- * java.rmi.MarshalledObject,
- * javax.security.auth.Subject)
- * @see #removeNotificationListeners(ObjectName, Integer[],
- * javax.security.auth.Subject)
- * @see NotificationBroadcaster#addNotificationListener(NotificationListener,
- * NotificationFilter,
- * Object)
- */
- @SuppressWarnings("rawtypes")
- void addNotificationListener(ObjectName name, ObjectName listener,
- MarshalledObject filter, MarshalledObject passback,
- Subject delegationSubject)
- throws InstanceNotFoundException, IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#addNotificationListener(ObjectName,
- * NotificationListener, NotificationFilter, Object)} by
- * registering for notifications from the specified management
- * beans. The array of filters is assumed to be aligned with
- * the array of bean names, so that the notifications from each
- * bean are matched against the appropriate filter (or left as
- * is if the filter is {@code null}. Notifications emitted by
- * the management beans are forwarded to a local listener created
- * by this method, via the server, which converts any MBean
- * references in the source to portable {@link ObjectName}
- * instances. The notification is otherwise unchanged.
- * </p>
- * <p>
- * This local listener buffers the notifications for retrieval by
- * {@link #fetchNotifications(long,int,long). This method returns
- * an array of listener identifiers which aligns with the supplied
- * array of beans so that the appropriate listener can be identified
- * by the client, which retains its own listener and handback object.
- * The filters are wrapped in {@link MarshalledObject}s so that they are
- * deserialised using the bean's classloader.
- * </p>
- *
- * @param names the names of the management bean whose notifications
- * should be recorded.
- * @param filters an array of wrappers containing filters to apply to
- * incoming notifications. An element may be <code>null</code>
- * if no filtering should be applied to a bean's notifications.
- * @param delegationSubjects an array of {@link javax.security.auth.Subject}
- * instances containing the delegation principles for
- * each listener. An element may be {@code null} if
- * authentication is used instead, or the entire
- * argument itself may be {@code null}. In the latter
- * case, this is treated as an array of {@code null}
- * values.
- * @return an array of integers which act as listener identifiers, so that
- * notifications retrieved from {@link #fetchNotifications(long,int,long)
- * can be matched to the beans they were emitted from. The array is
- * aligned against the array of beans supplied to this methods, so that
- * the identifier in position 0 represents the bean in position 0 of the
- * input array.
- * @throws IllegalArgumentException if the {@code names} or {@code filters} array
- * is {@code null}, the {@code names} array contains
- * a {@code null} value or the three arrays are not
- * of the same size.
- * @throws ClassCastException if an element of the {@code filters} array unmarshalls
- * as a non-null object that is not a {@link NotificationFilter}.
- * @throws InstanceNotFoundException if the name of one of the management beans
- * could not be resolved.
- * @throws SecurityException if, for one of the beans, the client or delegated subject
- * (if any) does not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see #removeNotificationListener(ObjectName, ObjectName,
- * javax.security.auth.Subject)
- * @see #removeNotificationListener(ObjectName, ObjectName,
- * java.rmi.MarshalledObject,
- * java.rmi.MarshalledObject,
- * javax.security.auth.Subject)
- * @see #removeNotificationListeners(ObjectName, Integer[],
- * javax.security.auth.Subject)
- * @see NotificationBroadcaster#addNotificationListener(NotificationListener,
- * NotificationFilter,
- * Object)
- */
- @SuppressWarnings("rawtypes")
- Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters,
- Subject[] delegationSubjects)
- throws InstanceNotFoundException, IOException;
-
- /**
- * Closes the connection and unexports the RMI object implementing this
- * interface. Following this call, future method calls to this instance
- * will fail.
- *
- * @throws IOException if there is an I/O error in transmitting the close
- * request via RMI, closing the connection, or unexporting
- * the RMI object.
- */
- void close()
- throws IOException;
-
- /**
- * <p>
- * Handles {@link
- * MBeanServerConnection#createMBean(String, ObjectName,
- * Object[], String[])}. The array of parameters is wrapped in
- * a {@link MarshalledObject} so that it is deserialised using the
- * bean's classloader.
- * </p>
- * <p>
- * Instantiates a new instance of the specified management bean
- * using the given constructor and registers it with the server
- * under the supplied name. The class is loaded using the
- * {@link javax.management.loading.ClassLoaderRepository default
- * loader repository} of the server.
- * </p>
- * <p>
- * If the name supplied is <code>null</code>, then the bean is
- * expected to implement the {@link MBeanRegistration} interface.
- * The {@link MBeanRegistration#preRegister preRegister} method
- * of this interface will be used to obtain the name in this case.
- * </p>
- *
- * @param className the class of the management bean, of which
- * an instance should be created.
- * @param name the name to register the new bean with. This may
- * be <code>null</code>.
- * @param params the parameters for the bean's constructor, encapsulated
- * in a {@link MarshalledObject}. If this parameter is
- * <code>null</code>, it will be judged equivalent to an
- * empty array.
- * @param sig the signature of the constructor to use. If this parameter
- * is <code>null</code>, it will be judged equivalent to an
- * empty array.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return an {@link ObjectInstance} containing the {@link ObjectName}
- * and Java class name of the created instance.
- * @throws ReflectionException if an exception occurs in creating
- * an instance of the bean.
- * @throws InstanceAlreadyExistsException if a matching instance
- * already exists.
- * @throws MBeanRegistrationException if an exception occurs in
- * calling the preRegister
- * method.
- * @throws MBeanException if the bean's constructor throws an exception.
- * @throws NotCompliantMBeanException if the created bean is not
- * compliant with the JMX specification.
- * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
- * is thrown by the server due to a
- * <code>null</code> class name or object
- * name or if the object name is a pattern.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- */
- @SuppressWarnings("rawtypes")
- ObjectInstance createMBean(String className, ObjectName name,
- MarshalledObject params, String[] sig,
- Subject delegationSubject)
- throws ReflectionException, InstanceAlreadyExistsException,
- MBeanRegistrationException, MBeanException,
- NotCompliantMBeanException, IOException;
-
- /**
- * <p>
- * Handles {@link
- * MBeanServerConnection#createMBean(String, ObjectName,
- * ObjectName, Object[], String[])}. The array of parameters is
- * wrapped in a {@link MarshalledObject} so that it is deserialised
- * using the bean's classloader.
- * </p>
- * <p>
- * Instantiates a new instance of the specified management bean
- * using the given constructor and registers it with the server
- * under the supplied name. The class is loaded using the
- * given class loader. If this argument is <code>null</code>,
- * then the same class loader as was used to load the server
- * is used.
- * </p>
- * <p>
- * If the name supplied is <code>null</code>, then the bean is
- * expected to implement the {@link MBeanRegistration} interface.
- * The {@link MBeanRegistration#preRegister preRegister} method
- * of this interface will be used to obtain the name in this case.
- * </p>
- *
- * @param className the class of the management bean, of which
- * an instance should be created.
- * @param name the name to register the new bean with. This may
- * be <code>null</code>.
- * @param loaderName the name of the class loader.
- * @param params the parameters for the bean's constructor, encapsulated
- * in a {@link MarshalledObject}. If this parameter is
- * <code>null</code>, it will be judged equivalent to an
- * empty array.
- * @param sig the signature of the constructor to use. If this parameter
- * is <code>null</code>, it will be judged equivalent to an
- * empty array.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return an {@link ObjectInstance} containing the {@link ObjectName}
- * and Java class name of the created instance.
- * @throws ReflectionException if an exception occurs in creating
- * an instance of the bean.
- * @throws InstanceAlreadyExistsException if a matching instance
- * already exists.
- * @throws MBeanRegistrationException if an exception occurs in
- * calling the preRegister
- * method.
- * @throws MBeanException if the bean's constructor throws an exception.
- * @throws NotCompliantMBeanException if the created bean is not
- * compliant with the JMX specification.
- * @throws InstanceNotFoundException if the specified class loader is not
- * registered with the server.
- * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
- * is thrown by the server due to a
- * <code>null</code> class name or object
- * name or if the object name is a pattern.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- */
- @SuppressWarnings("rawtypes")
- ObjectInstance createMBean(String className, ObjectName name,
- ObjectName loaderName, MarshalledObject params,
- String[] sig, Subject delegationSubject)
- throws ReflectionException, InstanceAlreadyExistsException,
- MBeanRegistrationException, MBeanException,
- NotCompliantMBeanException, InstanceNotFoundException,
- IOException;
-
- /**
- * <p>
- * Handles {@link
- * MBeanServerConnection#createMBean(String, ObjectName,
- * ObjectName)} by instantiating a new instance of the specified
- * management bean using the default constructor and registering
- * it with the server under the supplied name. The class is loaded
- * using the given class loader. If this argument is <code>null</code>,
- * then the same class loader as was used to load the server
- * is used.
- * </p>
- * <p>
- * If the name supplied is <code>null</code>, then the bean is
- * expected to implement the {@link MBeanRegistration} interface.
- * The {@link MBeanRegistration#preRegister preRegister} method
- * of this interface will be used to obtain the name in this case.
- * </p>
- * <p>
- * This method is equivalent to calling {@link
- * #createMBean(String, ObjectName, ObjectName, Object[], String)
- * <code>createMBean(className, name, loaderName, (Object[]) null,
- * (String) null)</code>} with <code>null</code> parameters
- * and signature.
- * </p>
- *
- * @param className the class of the management bean, of which
- * an instance should be created.
- * @param name the name to register the new bean with. This may
- * be <code>null</code>.
- * @param loaderName the name of the class loader.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return an {@link ObjectInstance} containing the {@link ObjectName}
- * and Java class name of the created instance.
- * @throws ReflectionException if an exception occurs in creating
- * an instance of the bean.
- * @throws InstanceAlreadyExistsException if a matching instance
- * already exists.
- * @throws MBeanRegistrationException if an exception occurs in
- * calling the preRegister
- * method.
- * @throws MBeanException if the bean's constructor throws an exception.
- * @throws NotCompliantMBeanException if the created bean is not
- * compliant with the JMX specification.
- * @throws InstanceNotFoundException if the specified class loader is not
- * registered with the server.
- * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
- * is thrown by the server due to a
- * <code>null</code> class name or object
- * name or if the object name is a pattern.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see #createMBean(String, ObjectName, ObjectName, MarshalledObject,
- * String[], Subject)
- */
- ObjectInstance createMBean(String className, ObjectName name,
- ObjectName loaderName, Subject delegationSubject)
- throws ReflectionException, InstanceAlreadyExistsException,
- MBeanRegistrationException, MBeanException,
- NotCompliantMBeanException, InstanceNotFoundException,
- IOException;
-
- /**
- * <p>
- * Handles {@link
- * MBeanServerConnection#createMBean(String, ObjectName)} by
- * instantiating a new instance of the specified management bean
- * using the default constructor and registering it with the server
- * under the supplied name. The class is loaded using the
- * {@link javax.management.loading.ClassLoaderRepository default
- * loader repository} of the server.
- * </p>
- * <p>
- * If the name supplied is <code>null</code>, then the bean is
- * expected to implement the {@link MBeanRegistration} interface.
- * The {@link MBeanRegistration#preRegister preRegister} method
- * of this interface will be used to obtain the name in this case.
- * </p>
- * <p>
- * This method is equivalent to calling {@link
- * #createMBean(String, ObjectName, Object[], String[])
- * <code>createMBean(className, name, (Object[]) null,
- * (String[]) null)</code>} with <code>null</code> parameters
- * and signature.
- * </p>
- *
- * @param className the class of the management bean, of which
- * an instance should be created.
- * @param name the name to register the new bean with. This may
- * be <code>null</code>.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return an {@link ObjectInstance} containing the {@link ObjectName}
- * and Java class name of the created instance.
- * @throws ReflectionException if an exception occurs in creating
- * an instance of the bean.
- * @throws InstanceAlreadyExistsException if a matching instance
- * already exists.
- * @throws MBeanRegistrationException if an exception occurs in
- * calling the preRegister
- * method.
- * @throws MBeanException if the bean's constructor throws an exception.
- * @throws NotCompliantMBeanException if the created bean is not
- * compliant with the JMX specification.
- * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
- * is thrown by the server due to a
- * <code>null</code> class name or object
- * name or if the object name is a pattern.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see #createMBean(String, ObjectName, MarshalledObject, String[], Subject)
- */
- ObjectInstance createMBean(String className, ObjectName name,
- Subject delegationSubject)
- throws ReflectionException, InstanceAlreadyExistsException,
- MBeanRegistrationException, MBeanException,
- NotCompliantMBeanException, IOException;
-
- /**
- * <p>
- * Retrieves any waiting notifications from the server. When notifications
- * are requested using the {@link #addNotificationListeners(ObjectName[],
- * MarshalledObject[], Subject[])} method, the server sets up an internal
- * listener to receive notifications from the bean and buffer them. When
- * this method is called, these buffered notifications can be retrieved.
- * </p>
- * <p>
- * The blocking behaviour of this method depends on the timeout value specified.
- * If there are no waiting notifications in the buffer, a value of 0 will cause
- * the method to return immediately. Conversely, if the value is
- * {@link Long#MAX_VALUE}, then it will wait indefinitely until a notification
- * arrives. For any other value, it waits until a notification arrives or the
- * number of milliseconds specified by the timeout value is exceeded. The
- * behaviour for a negative timeout value is undefined.
- * </p>
- * <p>
- * For a notification to be returned, the following criteria must be fulfilled:
- * </p>
- * <ul>
- * <li>the client must have previously requested notifications from at least
- * one bean</li>
- * <li>a bean from which notifications have been requested must have emitted
- * a notification since the last call to this method</li>
- * <li>the emitted notification must pass through any filters established
- * when notifications were requested</li>
- * <li>the sequence number of the notification must be greater than or equal
- * to the specified sequence number (if non-negative)</li>
- * </ul>
- *
- * @param sequenceNumber the sequence number of each notification returned
- * must be greater than or equal to this value. If
- * the number is negative, this is interpreted as
- * meaning the sequence number of the next notification
- * and so all notifications are allowed through.
- * @param maxNotifications the maximum number of notifications to return.
- * This does not include any duplicates so the
- * number of actual notifications returned may
- * be larger.
- * @param timeout the number of milliseconds to wait for a notification
- * if the buffer is empty. <code>0</code> causes the
- * method to return immediately even if there are no
- * notifications available (non-blocking behaviour) while
- * a value of {@link Long#MAX_VALUE} causes it to wait
- * indefinitely (blocking behaviour). The response to
- * a negative value is undefined.
- * @return a {@link NotificationResult} object containing the buffered
- * notifications.
- * @throws IOException if an I/O error occurs.
- */
- NotificationResult fetchNotifications(long sequenceNumber,
- int maxNotifications,
- long timeout)
- throws IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#getAttribute(ObjectName, String)},
- * returning the value of the supplied attribute from the specified
- * management bean.
- *
- * @param bean the bean to retrieve the value from.
- * @param name the name of the attribute to retrieve.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return the value of the attribute.
- * @throws AttributeNotFoundException if the attribute could not be
- * accessed from the bean.
- * @throws MBeanException if the management bean's accessor throws
- * an exception.
- * @throws InstanceNotFoundException if the bean can not be found.
- * @throws ReflectionException if an exception was thrown in trying
- * to invoke the bean's accessor.
- * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
- * is thrown by the server due to a
- * <code>null</code> bean or attribute
- * name.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see DynamicMBean#getAttribute(String)
- */
- Object getAttribute(ObjectName bean, String name, Subject delegationSubject)
- throws MBeanException, AttributeNotFoundException,
- InstanceNotFoundException, ReflectionException,
- IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#getAttribute(ObjectName, String)},
- * returning the values of the named attributes from the specified
- * management bean.
- *
- * @param bean the bean to retrieve the value from.
- * @param names the names of the attributes to retrieve.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return the values of the attributes.
- * @throws InstanceNotFoundException if the bean can not be found.
- * @throws ReflectionException if an exception was thrown in trying
- * to invoke the bean's accessor.
- * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
- * is thrown by the server due to a
- * <code>null</code> bean or attribute
- * name.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see DynamicMBean#getAttributes(String[])
- */
- AttributeList getAttributes(ObjectName bean, String[] names,
- Subject delegationSubject)
- throws InstanceNotFoundException, ReflectionException,
- IOException;
-
- /**
- * Returns the unique identifier for this connection to the RMI
- * server.
- *
- * @return the connection ID.
- * @throws IOException if an I/O error occurred.
- */
- String getConnectionId()
- throws IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#getDefaultDomain()} by returning the default
- * domain this server applies to beans that have no specified domain.
- *
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return the default domain.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- */
- String getDefaultDomain(Subject delegationSubject)
- throws IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#getDomains()} by returning an array
- * containing all the domains used by beans registered with
- * this server. The ordering of the array is undefined.
- *
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return the list of domains.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see ObjectName#getDomain()
- */
- String[] getDomains(Subject delegationSubject)
- throws IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#getMBeanCount()} by returning the number of
- * management beans registered with this server.
- *
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return the number of registered beans.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- */
- Integer getMBeanCount(Subject delegationSubject)
- throws IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#getMBeanInfo(ObjectName)} by returning
- * information on the given management bean.
- *
- * @param name the name of the management bean.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return an instance of {@link MBeanInfo} for the bean.
- * @throws IntrospectionException if an exception occurs in examining
- * the bean.
- * @throws InstanceNotFoundException if the bean can not be found.
- * @throws ReflectionException if an exception occurs when trying
- * to invoke {@link DynamicMBean#getMBeanInfo()}
- * on the bean.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see DynamicMBean#getMBeanInfo()
- */
- MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject)
- throws InstanceNotFoundException, IntrospectionException,
- ReflectionException, IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#getObjectInstance(ObjectName)} by returning
- * the {@link ObjectInstance} created for the specified management
- * bean on registration.
- *
- * @param name the name of the bean.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return the corresponding {@link ObjectInstance} instance.
- * @throws InstanceNotFoundException if the bean can not be found.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see #createMBean(String, ObjectName, Subject)
- */
- ObjectInstance getObjectInstance(ObjectName name, Subject delegationSubject)
- throws InstanceNotFoundException, IOException;
-
- /**
- * <p>
- * Handles {@link
- * MBeanServerConnection#invoke(ObjectName, String, Object[],
- * String[])}. The array of parameters is wrapped in a
- * {@link MarshalledObject} so that it is deserialised
- * using the bean's classloader.
- * </p>
- * <p>
- * Invokes the supplied operation on the specified management
- * bean. The class objects specified in the signature are loaded
- * using the same class loader as was used for the management bean.
- *
- * @param bean the management bean whose operation should be invoked.
- * @param name the name of the operation to invoke.
- * @param params the parameters for the bean's constructor, encapsulated
- * in a {@link MarshalledObject}. If this parameter is
- * <code>null</code>, it will be judged equivalent to an
- * empty array.
- * @param sig the signature of the constructor to use. If this parameter
- * is <code>null</code>, it will be judged equivalent to an
- * empty array. The class objects will be loaded using the
- * bean's classloader.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return the return value of the method.
- * @throws InstanceNotFoundException if the bean can not be found.
- * @throws MBeanException if the method invoked throws an exception.
- * @throws ReflectionException if an exception is thrown in invoking the
- * method.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see DynamicMBean#invoke(String, Object[], String[])
- */
- @SuppressWarnings("rawtypes")
- Object invoke(ObjectName bean, String name, MarshalledObject params,
- String[] sig, Subject delegationSubject)
- throws InstanceNotFoundException, MBeanException,
- ReflectionException, IOException;
-
- /**
- * <p>
- * Handles {@link
- * MBeanServerConnection#isInstanceOf(ObjectName, String) by
- * returning true if the specified management bean is an instance
- * of the supplied class.
- * </p>
- * <p>
- * A bean, B, is an instance of a class, C, if either of the following
- * conditions holds:
- * </p>
- * <ul>
- * <li>The class name in B's {@link MBeanInfo} is equal to the supplied
- * name.</li>
- * <li>Both the class of B and C were loaded by the same class loader,
- * and B is assignable to C.</li>
- * </ul>
- *
- * @param name the name of the management bean.
- * @param className the name of the class to test if <code>name</code> is
- * an instance of.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return true if either B is directly an instance of the named class,
- * or B is assignable to the class, given that both it and B's
- * current class were loaded using the same class loader.
- * @throws InstanceNotFoundException if the bean can not be found.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- */
- boolean isInstanceOf(ObjectName name, String className,
- Subject delegationSubject)
- throws InstanceNotFoundException, IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#isRegistered(ObjectName) by returning
- * true if the specified management bean is registered with
- * the server.
- *
- * @param name the name of the management bean.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return true if the bean is registered.
- * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
- * is thrown by the server due to a
- * <code>null</code> bean name.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- */
- boolean isRegistered(ObjectName name, Subject delegationSubject)
- throws IOException;
-
- /**
- * <p>
- * Handles {@link
- * MBeanServerConnection#queryMBeans(ObjectName, QueryExp)}.
- * The query expression is wrapped in a {@link MarshalledObject}
- * so that it is deserialised using the bean's classloader.
- * </p>
- * <p>
- * Returns a set of {@link ObjectInstance}s matching the specified
- * criteria. The full set of beans registered with the server
- * are passed through two filters:
- * </p>
- * <ol>
- * <li>Pattern matching is performed using the supplied
- * {@link ObjectName}.</li>
- * <li>The supplied query expression is applied.</li>
- * </ol>
- * <p>
- * If both the object name and the query expression are <code>null</code>,
- * or the object name has no domain and no key properties,
- * no filtering will be performed and all beans are returned.
- * </p>
- *
- * @param name an {@link ObjectName} to use as a filter.
- * @param query a query expression to apply to each of the beans that match
- * the given object name, encapsulated in a
- * {@link MarshalledObject}. If a <code>null</code> value is
- * encapsulated, then the beans will only be filtered using
- * pattern matching on the supplied {@link ObjectName}.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return a set of {@link ObjectInstance}s matching the filtered beans.
- * This is empty if no beans survived the filters.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- */
- @SuppressWarnings("rawtypes")
- Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query,
- Subject delegationSubject)
- throws IOException;
-
- /**
- * <p>
- * Handles {@link
- * MBeanServerConnection#queryNames(ObjectName, QueryExp)}.
- * The query expression is wrapped in a {@link MarshalledObject}
- * so that it is deserialised using the bean's classloader.
- * </p>
- * <p>
- * Returns a set of {@link ObjectName}s matching the specified
- * criteria. The full set of beans registered with the server
- * are passed through two filters:
- * </p>
- * <ol>
- * <li>Pattern matching is performed using the supplied
- * {@link ObjectName}.</li>
- * <li>The supplied query expression is applied.</li>
- * </ol>
- * <p>
- * If both the object name and the query expression are <code>null</code>,
- * or the object name has no domain and no key properties,
- * no filtering will be performed and all beans are returned.
- * </p>
- *
- * @param name an {@link ObjectName} to use as a filter.
- * @param query a query expression to apply to each of the beans that match
- * the given object name, encapsulated in a
- * {@link MarshalledObject}. If a <code>null</code> value is
- * encapsulated, then the beans will only be filtered using
- * pattern matching on the supplied {@link ObjectName}.
- * @param delegationSubject an instance of {@link javax.security.auth.Subject}
- * containing the delegation principles. This may be
- * {@code null} is authentication is used instead.
- * @return a set of {@link ObjectName}s matching the filtered beans.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- */
- @SuppressWarnings("rawtypes")
- Set<ObjectName> queryNames(ObjectName name, MarshalledObject query,
- Subject delegationSubject)
- throws IOException;
-
- /**
- * <p>
- * Handles {@link
- * MBeanServerConnection#removeNotificationListener(ObjectName,
- * ObjectName, NotificationFilter, Object)}. Both the filter and
- * the handback object are wrapped in a {@link MarshalledObject}
- * so that they are deserialised using the bean's classloader.
- * </p>
- * <p>
- * Removes the specified listener from the list of recipients
- * of notifications from the supplied bean. Only the first instance with
- * the supplied filter and passback object is removed.
- * <code>null</code> is used as a valid value for these parameters,
- * rather than as a way to remove all registration instances for
- * the specified listener; for this behaviour instead, see
- * {@link #removeNotificationListener(ObjectName, NotificationListener)}.
- * </p>
- *
- * @param name the name of the management bean from which the
- * listener should be removed.
- * @param listener the listener to remove.
- * @param filter a wrapper containing the filter of the listener
- * to remove.
- * @param passback a wrapper containing the handback object of the
- * listener to remove.
- * @param delegationSubject a {@link javax.security.auth.Subject} instance
- * containing the delegation principles or
- * {@code null} if authentication is used.
- * @throws InstanceNotFoundException if the bean can not be found.
- * @throws ListenerNotFoundException if the specified listener
- * is not registered with the bean.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see #addNotificationListener(ObjectName, NotificationListener,
- * MarshalledObject, MarshalledObject, Subject)
- * @see NotificationEmitter#removeNotificationListener(NotificationListener,
- * NotificationFilter,
- * Object)
- */
- @SuppressWarnings("rawtypes")
- void removeNotificationListener(ObjectName name,
- ObjectName listener,
- MarshalledObject filter,
- MarshalledObject passback,
- Subject delegationSubject)
- throws InstanceNotFoundException, ListenerNotFoundException,
- IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#removeNotificationListener(ObjectName,
- * ObjectName)} by removing the specified listener from the list
- * of recipients of notifications from the supplied bean. This
- * includes all combinations of filters and passback objects
- * registered for this listener. For more specific removal of
- * listeners, see {@link #removeNotificationListener(ObjectName,
- * ObjectName,MarshalledObject,MarshalledObject,Subject)}
- *
- * @param name the name of the management bean from which the
- * listener should be removed.
- * @param listener the name of the listener to remove.
- * @param delegationSubject a {@link javax.security.auth.Subject} instance
- * containing the delegation principles or
- * {@code null} if authentication is used.
- * @throws InstanceNotFoundException if a name doesn't match a registered
- * bean.
- * @throws ListenerNotFoundException if the specified listener
- * is not registered with the bean.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see #addNotificationListener(ObjectName, NotificationListener,
- * MarshalledObject, MarshalledObject, Subject)
- * @see NotificationBroadcaster#removeNotificationListener(NotificationListener)
- */
- void removeNotificationListener(ObjectName name, ObjectName listener,
- Subject delegationSubject)
- throws InstanceNotFoundException, ListenerNotFoundException,
- IOException;
-
- /**
- * Removes one or more {@link NotificationListener}s from the specified
- * management bean. This method corresponds to
- * {@link #addNotificationListeners(ObjectName[], MarshalledObject[],
- * Subject)} and provides a different way of handling
- * MBeanServerConnection#removeNotificationListener(ObjectName,
- * ObjectName)} and
- * {@link MBeanServerConnection#removeNotificationListener(ObjectName,
- * ObjectName, NotificationFilter, Object)} by using the integer
- * identifiers provided by the
- * {@link #addNotificationListeners(ObjectName[], MarshalledObject[],
- * Subject)} method to select the listeners to remove.
- *
- * @param name the name of the management bean from which the
- * listeners should be removed.
- * @param listenerIds the identifiers of the listeners to remove.
- * @param delegationSubject a {@link javax.security.auth.Subject} instance
- * containing the delegation principles or
- * {@code null} if authentication is used.
- * @throws InstanceNotFoundException if a name doesn't match a registered
- * bean.
- * @throws ListenerNotFoundException if the specified listener
- * is not registered with the bean.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @throws IllegalArgumentException if either <code>name</code>,
- * <code>listenerIds</code> or an element
- * of <code>listenerIds</code>
- * is <code>null</code>.
- * @see #addNotificationListeners(ObjectName[], MarshalledObject[], Subject)
- */
- void removeNotificationListeners(ObjectName name, Integer[] listenerIds,
- Subject delegationSubject)
- throws InstanceNotFoundException, ListenerNotFoundException,
- IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#setAttribute(ObjectName, Attribute)}
- * by setting the value of the specified attribute of the supplied
- * management bean. The attribute is wrapped in a
- * {@link MarshalledObject} so that it is deserialised using the
- * bean's classloader.
- *
- * @param name the name of the management bean.
- * @param attribute the attribute to set, encapsulated in a
- * {@link MarshalledObject}.
- * @param delegationSubject a {@link javax.security.auth.Subject} instance
- * containing the delegation principles or
- * {@code null} if authentication is used.
- * @throws InstanceNotFoundException if the bean can not be found.
- * @throws AttributeNotFoundException if the attribute does not
- * correspond to an attribute
- * of the bean.
- * @throws InvalidAttributeValueException if the value is invalid
- * for this particular
- * attribute of the bean.
- * @throws MBeanException if setting the attribute causes
- * the bean to throw an exception (which
- * becomes the cause of this exception).
- * @throws ReflectionException if an exception occurred in trying
- * to use the reflection interface
- * to lookup the attribute. The
- * thrown exception is the cause of
- * this exception.
- * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
- * is thrown by the server due to a
- * <code>null</code> bean or attribute
- * name.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see #getAttribute(ObjectName, String, Subject)
- * @see javax.management.DynamicMBean#setAttribute(Attribute)
- */
- @SuppressWarnings("rawtypes")
- void setAttribute(ObjectName name, MarshalledObject attribute,
- Subject delegationSubject)
- throws InstanceNotFoundException, AttributeNotFoundException,
- InvalidAttributeValueException, MBeanException,
- ReflectionException, IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#setAttributes(ObjectName, AttributeList)}
- * by setting the value of each of the specified attributes
- * of the supplied management bean to that specified by
- * the {@link Attribute} object. The returned list contains
- * the attributes that were set and their new values.
- * The attribute list is wrapped in a {@link MarshalledObject} so
- * that it is deserialised using the bean's classloader.
- *
- * @param name the name of the management bean.
- * @param attributes the attributes to set, encapsulated in a
- * {@link MarshalledObject}.
- * @param delegationSubject a {@link javax.security.auth.Subject} instance
- * containing the delegation principles or
- * {@code null} if authentication is used.
- * @return a list of the changed attributes.
- * @throws InstanceNotFoundException if the bean can not be found.
- * @throws ReflectionException if an exception occurred in trying
- * to use the reflection interface
- * to lookup the attribute. The
- * thrown exception is the cause of
- * this exception.
- * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
- * is thrown by the server due to a
- * <code>null</code> bean or attribute
- * list.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- * @see #getAttributes(ObjectName, String[])
- * @see DynamicMBean#setAttributes(AttributeList)
- */
- @SuppressWarnings("rawtypes")
- AttributeList setAttributes(ObjectName name, MarshalledObject attributes,
- Subject delegationSubject)
- throws InstanceNotFoundException, ReflectionException,
- IOException;
-
- /**
- * Handles {@link
- * MBeanServerConnection#unregisterMBean(ObjectName)} by unregistering
- * the specified management bean. Following this operation,
- * the bean instance is no longer accessible from the server via this
- * name. Prior to unregistering the bean, the
- * {@link MBeanRegistration#preDeregister()} method will be called if
- * the bean implements the {@link MBeanRegistration} interface.
- *
- * @param name the name of the management bean.
- * @param delegationSubject a {@link javax.security.auth.Subject} instance
- * containing the delegation principles or
- * {@code null} if authentication is used.
- * @throws InstanceNotFoundException if the bean can not be found.
- * @throws MBeanRegistrationException if an exception occurs in
- * calling the preDeregister
- * method.
- * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
- * is thrown by the server due to a
- * <code>null</code> bean name or a
- * request being made to unregister the
- * {@link MBeanServerDelegate} bean.
- * @throws SecurityException if the client or delegated subject (if any) does
- * not have permission to invoke this operation.
- * @throws IOException if an I/O error occurred in communicating with
- * the bean server.
- */
- void unregisterMBean(ObjectName name, Subject delegationSubject)
- throws InstanceNotFoundException, MBeanRegistrationException,
- IOException;
-
-}
diff --git a/libjava/classpath/javax/management/remote/rmi/RMIServer.java b/libjava/classpath/javax/management/remote/rmi/RMIServer.java
deleted file mode 100644
index d862372..0000000
--- a/libjava/classpath/javax/management/remote/rmi/RMIServer.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/* RMIServer.java -- RMI object for connecting to an RMI JMX connector.
- Copyright (C) 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-package javax.management.remote.rmi;
-
-import java.io.IOException;
-
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-
-/**
- * RMI interface for obtaining an instance of an
- * {@link RMIConnection}. An implementation of this
- * interface exists for each RMI connector.
- *
- * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
- * @since 1.5
- */
-public interface RMIServer
- extends Remote
-{
-
- /**
- * Returns the version of the RMI connection protocol used
- * by this server. The returned string takes the form of
- * <emph>protocol-version implementation-name</emph> where
- * <emph>protocol-version</emph> is a series of two or more
- * non-negative integers, separated by a decimal point (.)
- * (currently {@code 1.0}) and <emph>implementation-name</emph>
- * is the string {@code "GNU Classpath"} followed by the version
- * of GNU Classpath in use.
- *
- * @return the string specified above.
- * @throws RemoteException if there is a problem with the transfer
- * of the string via RMI.
- */
- String getVersion()
- throws RemoteException;
-
- /**
- * Constructs and returns a new RMI connection using the specified
- * authentication credentials. Each client calls this method to
- * obtain a connection to the server.
- *
- * @param credentials a user-defined object passed to the server
- * to authenticate the client. May be {@code null}.
- * @return the new connection.
- * @throws IOException if the new connection can not be created or
- * exported, or an error occurs in the RMI transmission.
- * @throws SecurityException if the client could not be authenticated
- * correctly using the supplied credientials.
- */
- RMIConnection newClient(Object credentials)
- throws IOException;
-}