Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * Copyright (c) OSGi Alliance (2004, 2013). All Rights Reserved.
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.
package org.osgi.service.dmt.notification;
NotificationService enables sending aynchronous notifications to a management server. The implementation of NotificationService should register itself in the OSGi service registry as a service.

$Id: 26ffdcfc2533479d2d48a1c570be3e67f43073eb $
public interface NotificationService {

Sends a notification to a named principal. It is the responsibility of the NotificationService to route the notification to the given principal using the registered org.osgi.service.dmt.notification.spi.RemoteAlertSender services.

In remotely initiated sessions the principal name identifies the remote server that created the session, this can be obtained using the session's getPrincipal call.

The principal name may be omitted if the client does not know the principal name. Even in this case the routing might be possible if the Notification Service finds an appropriate default destination (for example if it is only connected to one protocol adapter, which is only connected to one management server).

Since sending the notification and receiving acknowledgment for it is potentially a very time-consuming operation, notifications are sent asynchronously. This method should attempt to ensure that the notification can be sent successfully, and should throw an exception if it detects any problems. If the method returns without error, the notification is accepted for sending and the implementation must make a best-effort attempt to deliver it.

In case the notification is an asynchronous response to a previous execute command, a correlation identifier can be specified to provide the association between the execute and the notification.

In order to send a notification using this method, the caller must have an AlertPermission with a target string matching the specified principal name. If the principal parameter is null (the principal name is not known), the target of the AlertPermission must be "*".

When this method is called with null correlator, null or empty AlertItem array, and a 0 code as values, it should send a protocol specific default notification to initiate a management session. For example, in case of OMA DM this is alert 1201 "Client Initiated Session". The principal parameter can be used to determine the recipient of the session initiation request.

principal the principal name which is the recipient of this notification, can be null
code the alert code, can be 0 if not needed
correlator optional field that contains the correlation identifier of an associated exec command, can be null if not needed
items the data of the alert items carried in this alert, can be null or empty if not needed
org.osgi.service.dmt.DmtException with the following possible error codes:
  • UNAUTHORIZED when the remote server rejected the request due to insufficient authorization
  • ALERT_NOT_ROUTED when the alert can not be routed to the given principal
  • REMOTE_ERROR in case of communication problems between the device and the destination
  • COMMAND_FAILED for unspecified errors encountered while attempting to complete the command
  • FEATURE_NOT_SUPPORTED if the underlying management protocol doesn't support asynchronous notifications
java.lang.SecurityException if the caller does not have the required AlertPermission with a target matching the principal parameter, as described above
	void sendNotification(String principalint codeString correlatorAlertItem[] itemsthrows DmtException;
New to GrepCode? Check out our FAQ X