Upgrade to latest OSGi compendium API. (FELIX-1205)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@797561 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/Acl.java b/org.osgi.compendium/src/main/java/info/dmtree/Acl.java
index b550d8d..b502c26 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/Acl.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/Acl.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/Acl.java,v 1.6 2006/07/12 21:21:37 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -17,22 +15,27 @@
*/
package info.dmtree;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.Vector;
/**
- * <code>Acl</code> is an immutable class representing structured access to
- * DMT ACLs. Under OMA DM the ACLs are defined as strings with an internal
- * syntax.
+ * <code>Acl</code> is an immutable class representing structured access to DMT
+ * ACLs. Under OMA DM the ACLs are defined as strings with an internal syntax.
* <p>
* The methods of this class taking a principal as parameter accept remote
- * server IDs (as passed to
- * {@link DmtAdmin#getSession(String, String, int) DmtAdmin.getSession}), as
- * well as " <code>*</code> " indicating any principal.
+ * server IDs (as passed to {@link DmtAdmin#getSession(String, String, int)
+ * DmtAdmin.getSession}), as well as " <code>*</code> " indicating any
+ * principal.
* <p>
* The syntax for valid remote server IDs:<br>
- * <<i>server-identifier</i>> ::= All printable characters except
- * <code>'='</code>, <code>'&'</code>, <code>'*'</code>, <code>'+'</code>
- * or white-space characters.
+ * <<i>server-identifier</i>> ::= All printable characters except
+ * <code>'='</code>, <code>'&'</code>, <code>'*'</code>, <code>'+'</code> or white-space
+ * characters.
+ *
+ * @version $Revision: 5673 $
*/
public final class Acl {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/DmtAdmin.java b/org.osgi.compendium/src/main/java/info/dmtree/DmtAdmin.java
index abfcc6f..eea6e99 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/DmtAdmin.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/DmtAdmin.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/DmtAdmin.java,v 1.9 2006/07/11 16:59:41 tszeredi Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -23,8 +21,9 @@
* service registry as a service. <code>DmtAdmin</code> is the entry point for
* applications to use the DMT API.
* <p>
- * The <code>getSession</code> methods are used to open a session on a
- * specified subtree of the DMT. A typical way of usage:
+ * The <code>getSession</code> methods are used to open a session on a specified
+ * subtree of the DMT. A typical way of usage:
+ *
* <pre>
* serviceRef = context.getServiceReference(DmtAdmin.class.getName());
* DmtAdmin admin = (DmtAdmin) context.getService(serviceRef);
@@ -39,22 +38,24 @@
* segment using the {@link Uri#mangle(String)} method.
* <p>
* It is possible to specify a lock mode when opening the session (see lock type
- * constants in {@link DmtSession}). This determines whether the session can
- * run in parallel with other sessions, and the kinds of operations that can be
- * performed in the session. All Management Objects constituting the device
- * management tree must support read operations on their nodes, while support
- * for write operations depends on the Management Object. Management Objects
- * supporting write access may support transactional write, non-transactional
- * write or both. Users of <code>DmtAdmin</code> should consult the Management
- * Object specification and implementation for the supported update modes. If
- * Management Object definition permits, implementations are encouraged to
- * support both update modes.
+ * constants in {@link DmtSession}). This determines whether the session can run
+ * in parallel with other sessions, and the kinds of operations that can be
+ * performed in the session. All Management Objects constituting the device
+ * management tree must support read operations on their nodes, while support
+ * for write operations depends on the Management Object. Management Objects
+ * supporting write access may support transactional write, non-transactional
+ * write or both. Users of <code>DmtAdmin</code> should consult the Management
+ * Object specification and implementation for the supported update modes. If
+ * Management Object definition permits, implementations are encouraged to
+ * support both update modes.
* <p>
* This interface also contains methods for manipulating the set of
* <code>DmtEventListener</code> objects that are called when the structure or
* content of the tree is changed. These methods are not needed in an OSGi
- * environment, clients should register listeners through the Event Admin
+ * environment, clients should register listeners through the Event Admin
* service.
+ *
+ * @version $Revision: 5673 $
*/
public interface DmtAdmin {
/**
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/DmtData.java b/org.osgi.compendium/src/main/java/info/dmtree/DmtData.java
index 51c5cae..264ecf9 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/DmtData.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/DmtData.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/DmtData.java,v 1.8 2006/07/10 21:37:07 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -38,6 +36,8 @@
* of future data formats. When using these formats, the actual format name is
* specified as a <code>String</code>. The application is responsible for the
* proper encoding of the data according to the specified format.
+ *
+ * @version $Revision: 5673 $
*/
public final class DmtData {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/DmtEvent.java b/org.osgi.compendium/src/main/java/info/dmtree/DmtEvent.java
index dac4f1d..1b24fdc 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/DmtEvent.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/DmtEvent.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/DmtEvent.java,v 1.8 2006/07/04 12:12:16 tszeredi Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -27,8 +25,8 @@
* actually performed.
* <p>
* An event is generated for each group of nodes added, deleted, replaced,
- * renamed or copied, in this order. Events are also generated when sessions
- * are opened and closed.
+ * renamed or copied, in this order. Events are also generated when sessions are
+ * opened and closed.
* <p>
* The <code>type</code> of the event describes the change that triggered the
* event delivery. Each event carries the unique identifier of the session in
@@ -41,14 +39,16 @@
* decision is based on the principal specified when the listener was
* registered:
* <ul>
- * <li> If the listener was registered specifying an explicit principal, using
+ * <li>If the listener was registered specifying an explicit principal, using
* the {@link DmtAdmin#addEventListener(String, int, String, DmtEventListener)}
* method, then the target node ACLs should be checked for providing GET access
* to the specified principal;
- * <li> When the listener was registered without an explicit principal then the
- * listener needs GET {@link info.dmtree.security.DmtPermission} for
- * the corresponding node.
+ * <li>When the listener was registered without an explicit principal then the
+ * listener needs GET {@link info.dmtree.security.DmtPermission} for the
+ * corresponding node.
* </ul>
+ *
+ * @version $Revision: 5673 $
*/
public interface DmtEvent {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/DmtEventListener.java b/org.osgi.compendium/src/main/java/info/dmtree/DmtEventListener.java
index c5425b7..a0cf664 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/DmtEventListener.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/DmtEventListener.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/DmtEventListener.java,v 1.6 2006/07/04 12:12:16 tszeredi Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -23,6 +21,8 @@
* successful DMT change, and also when sessions are opened or closed. If a
* {@link DmtSession} is opened in atomic mode, DMT events are only sent when
* the session is committed, when the changes are actually performed.
+ *
+ * @version $Revision: 5673 $
*/
public interface DmtEventListener {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/DmtException.java b/org.osgi.compendium/src/main/java/info/dmtree/DmtException.java
index c723bc0..0325e03 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/DmtException.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/DmtException.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/DmtException.java,v 1.9 2006/07/12 21:21:37 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -38,14 +36,16 @@
* close multiple plugins, and has to report the exceptions of all failures.
* <p>
* Each constructor has two variants, one accepts a <code>String</code> node
- * URI, the other accepts a <code>String[]</code> node path. The former is
- * used by the DmtAdmin implementation, the latter by the plugins, who receive
- * the node URI as an array of segment names. The constructors are otherwise
+ * URI, the other accepts a <code>String[]</code> node path. The former is used
+ * by the DmtAdmin implementation, the latter by the plugins, who receive the
+ * node URI as an array of segment names. The constructors are otherwise
* identical.
* <p>
* Getter methods are provided to retrieve the values of the additional
* parameters, and the <code>printStackTrace(PrintWriter)</code> method is
* extended to print the stack trace of all causing throwables as well.
+ *
+ * @version $Revision: 5837 $
*/
public class DmtException extends Exception {
private static final long serialVersionUID = -63006267148118655L;
@@ -331,16 +331,16 @@
*/
private final int code;
- /**
- * The message associated with the exception, or <code>null</code> if
- * there is no error message.
- */
- private final String message;
+ /**
+ * The message associated with the exception, or <code>null</code> if there
+ * is no error message.
+ */
+ private final String message;
- /**
- * The list of originating exceptions, or empty list or <code>null</code>
- * if there are no originating exceptions.
- */
+ /**
+ * The list of originating exceptions, or empty list or <code>null</code> if
+ * there are no originating exceptions.
+ */
private final Throwable[] causes;
/**
@@ -416,6 +416,7 @@
private DmtException(String uri, int code, String message,
Throwable[] causes, boolean fatal) {
+ super((Throwable) null);
this.uri = uri;
this.code = code;
this.message = message;
@@ -521,7 +522,7 @@
if (uri != null)
sb.append(": '").append(uri).append('\'');
if (message != null)
- sb.append(": ").append(message);
+ sb.append(": ").append(message);
return sb.toString();
}
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/DmtIllegalStateException.java b/org.osgi.compendium/src/main/java/info/dmtree/DmtIllegalStateException.java
index e5c06b2..127c754 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/DmtIllegalStateException.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/DmtIllegalStateException.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/DmtIllegalStateException.java,v 1.4 2006/07/13 13:42:12 tszeredi Exp $
- *
- * Copyright (c) OSGi Alliance (2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2006, 2008). 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.
@@ -19,23 +17,19 @@
package info.dmtree;
/**
- * Unchecked illegal state exception. This class is used in DMT because
+ * Unchecked illegal state exception. This class is used in DMT because
* java.lang.IllegalStateException does not exist in CLDC.
+ *
+ * @version $Revision: 6083 $
*/
public class DmtIllegalStateException extends RuntimeException {
private static final long serialVersionUID = 2015244852018469700L;
/**
- * Nested exception.
- */
- private final Throwable cause;
-
- /**
* Create an instance of the exception with no message.
*/
public DmtIllegalStateException() {
super();
- cause = null;
}
/**
@@ -45,7 +39,6 @@
*/
public DmtIllegalStateException(String message) {
super(message);
- cause = null;
}
/**
@@ -55,8 +48,7 @@
* @param cause the cause of the exception
*/
public DmtIllegalStateException(Throwable cause) {
- super();
- this.cause = cause;
+ super(cause);
}
/**
@@ -67,18 +59,32 @@
* @param cause the cause of the exception
*/
public DmtIllegalStateException(String message, Throwable cause) {
- super(message);
- this.cause = cause;
+ super(message, cause);
}
- /**
- * Returns the cause of this exception or <code>null</code> if no cause
- * was specified when this exception was created.
- *
- * @return the cause of this exception or <code>null</code> if no cause
- * was specified
- */
+ /**
+ * Returns the cause of this exception or <code>null</code> if no cause was
+ * set.
+ *
+ * @return The cause of this exception or <code>null</code> if no cause was
+ * set.
+ */
public Throwable getCause() {
- return cause;
+ return super.getCause();
+ }
+
+ /**
+ * Initializes the cause of this exception to the specified value.
+ *
+ * @param cause The cause of this exception.
+ * @return This exception.
+ * @throws IllegalArgumentException If the specified cause is this
+ * exception.
+ * @throws IllegalStateException If the cause of this exception has already
+ * been set.
+ * @since 1.0.1
+ */
+ public Throwable initCause(Throwable cause) {
+ return super.initCause(cause);
}
}
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/DmtSession.java b/org.osgi.compendium/src/main/java/info/dmtree/DmtSession.java
index dd1913a..fd8d692 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/DmtSession.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/DmtSession.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/DmtSession.java,v 1.7 2006/07/11 16:58:20 tszeredi Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -22,9 +20,9 @@
/**
* DmtSession provides concurrent access to the DMT. All DMT manipulation
* commands for management applications are available on the
- * <code>DmtSession</code> interface. The session is associated with a root
- * node which limits the subtree in which the operations can be executed within
- * this session.
+ * <code>DmtSession</code> interface. The session is associated with a root node
+ * which limits the subtree in which the operations can be executed within this
+ * session.
* <p>
* Most of the operations take a node URI as parameter, which can be either an
* absolute URI (starting with "./") or a URI relative to the root
@@ -38,10 +36,12 @@
* exception is thrown. The only exception is the {@link #isNodeUri(String)}
* method which returns <code>false</code> in case of an invalid URI.
* <p>
- * Each method of <code>DmtSession</code> that accesses the tree in any way
- * can throw <code>DmtIllegalStateException</code> if the session has been
- * closed or invalidated (due to timeout, fatal exceptions, or unexpectedly
- * unregistered plugins).
+ * Each method of <code>DmtSession</code> that accesses the tree in any way can
+ * throw <code>DmtIllegalStateException</code> if the session has been closed or
+ * invalidated (due to timeout, fatal exceptions, or unexpectedly unregistered
+ * plugins).
+ *
+ * @version $Revision: 5673 $
*/
public interface DmtSession {
/**
@@ -1210,7 +1210,7 @@
/**
* Get the list of children names of a node. The returned array contains the
* names - not the URIs - of the immediate children nodes of the given node.
- * The returned child names are mangled ({@link Uri#mangle}). The elements
+ * The returned child names are mangled ({@link Uri#mangle(String)}). The elements
* are in no particular order. The returned array must not contain
* <code>null</code> entries.
*
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/MetaNode.java b/org.osgi.compendium/src/main/java/info/dmtree/MetaNode.java
index 18afcfc..91b442f 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/MetaNode.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/MetaNode.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/MetaNode.java,v 1.4 2006/07/04 12:26:16 tszeredi Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -18,8 +16,8 @@
package info.dmtree;
/**
- * The MetaNode contains meta data as standardized by OMA DM but extends it
- * (without breaking the compatibility) to provide for better DMT data quality
+ * The MetaNode contains meta data as standardized by OMA DM but extends it
+ * (without breaking the compatibility) to provide for better DMT data quality
* in an environment where many software components manipulate this data.
* <p>
* The interface has several types of functions to describe the nodes in the
@@ -31,15 +29,15 @@
* <p>
* Most methods in this interface receive no input, just return information
* about some aspect of the node. However, there are two methods that behave
- * differently, {@link #isValidName} and {@link #isValidValue}. These
- * validation methods are given a potential node name or value (respectively),
- * and can decide whether it is valid for the given node. Passing the validation
- * methods is a necessary condition for a name or value to be used, but it is
- * not necessarily sufficient: the plugin may carry out more thorough (more
+ * differently, {@link #isValidName} and {@link #isValidValue}. These validation
+ * methods are given a potential node name or value (respectively), and can
+ * decide whether it is valid for the given node. Passing the validation methods
+ * is a necessary condition for a name or value to be used, but it is not
+ * necessarily sufficient: the plugin may carry out more thorough (more
* expensive) checks when the node is actually created or set.
* <p>
- * If a <code>MetaNode</code> is available for a node, the DmtAdmin must use
- * the information provided by it to filter out invalid requests on that node.
+ * If a <code>MetaNode</code> is available for a node, the DmtAdmin must use the
+ * information provided by it to filter out invalid requests on that node.
* However, not all methods on this interface are actually used for this
* purpose, as many of them (e.g. {@link #getFormat} or {@link #getValidNames})
* can be substituted with the validating methods. For example,
@@ -50,9 +48,11 @@
* enforce the constraints defined by it - such methods are only for external
* use, for example in user interfaces.
* <p>
- * Most of the methods of this class return <code>null</code> if a certain
- * piece of meta information is not defined for the node or providing this
- * information is not supported. Methods of this class do not throw exceptions.
+ * Most of the methods of this class return <code>null</code> if a certain piece
+ * of meta information is not defined for the node or providing this information
+ * is not supported. Methods of this class do not throw exceptions.
+ *
+ * @version $Revision: 5673 $
*/
public interface MetaNode {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/Uri.java b/org.osgi.compendium/src/main/java/info/dmtree/Uri.java
index c9ad62c..ab5b8a8 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/Uri.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/Uri.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/Uri.java,v 1.12 2006/10/24 17:54:28 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -18,7 +16,9 @@
package info.dmtree;
import java.io.UnsupportedEncodingException;
-import java.lang.reflect.*;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
@@ -30,26 +30,27 @@
* Syntax of valid DMT URIs:
* <ul>
* <li>A slash (<code>'/'</code> \u002F) is the separator of the node names.
- * Slashes used in node name must therefore be escaped using a backslash slash
- * (<code>"\/"</code>). The backslash must be escaped with a double backslash
- * sequence. A backslash found must be ignored when it is not followed by a
- * slash or backslash.
- * <li>The node name can be constructed using full Unicode character set
- * (except the Supplementary code, not being supported by CLDC/CDC). However,
- * using the full Unicode character set for node names is discouraged because
- * the encoding in the underlying storage as well as the encoding needed in
- * communications can create significant performance and memory usage overhead.
- * Names that are restricted to the URI set <code>[-a-zA-Z0-9_.!~*'()]</code>
- * are most efficient.
+ * Slashes used in node name must therefore be escaped using a backslash slash (
+ * <code>"\/"</code>). The backslash must be escaped with a double backslash sequence. A
+ * backslash found must be ignored when it is not followed by a slash or
+ * backslash.
+ * <li>The node name can be constructed using full Unicode character set (except
+ * the Supplementary code, not being supported by CLDC/CDC). However, using the
+ * full Unicode character set for node names is discouraged because the encoding
+ * in the underlying storage as well as the encoding needed in communications
+ * can create significant performance and memory usage overhead. Names that are
+ * restricted to the URI set <code>[-a-zA-Z0-9_.!~*'()]</code> are most efficient.
* <li>URIs used in the DMT must be treated and interpreted as case sensitive.
* <li>No End Slash: URI must not end with the delimiter slash (<code>'/'</code>
- * \u002F). This implies that the root node must be denoted as
+ * \u002F). This implies that the root node must be denoted as
* <code>"."</code> and not <code>"./"</code>.
* <li>No parent denotation: URI must not be constructed using the character
* sequence <code>"../"</code> to traverse the tree upwards.
* <li>Single Root: The character sequence <code>"./"</code> must not be used
* anywhere else but in the beginning of a URI.
* </ul>
+ *
+ * @version $Revision: 5673 $
*/
public final class Uri {
/*
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/notification/AlertItem.java b/org.osgi.compendium/src/main/java/info/dmtree/notification/AlertItem.java
index 2088743..cacf44f 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/notification/AlertItem.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/notification/AlertItem.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/notification/AlertItem.java,v 1.3 2006/07/04 12:26:50 tszeredi Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -32,12 +30,14 @@
* The data syntax and semantics varies widely between various alerts, so does
* the optionality of particular parameters of an alert item. If an item, such
* as source or type, is not defined, the corresponding getter method returns
- * <code>null</code>. For example, for alert 1201 (client-initiated session)
- * all elements will be <code>null</code>.
+ * <code>null</code>. For example, for alert 1201 (client-initiated session) all
+ * elements will be <code>null</code>.
* <P>
* The syntax used in <code>AlertItem</code> class corresponds to the OMA DM
* alert format. {@link NotificationService} implementations on other management
* protocols should map these constructs to the underlying protocol.
+ *
+ * @version $Revision: 5673 $
*/
public class AlertItem {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/notification/NotificationService.java b/org.osgi.compendium/src/main/java/info/dmtree/notification/NotificationService.java
index 6ee9cd3..f1aa880 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/notification/NotificationService.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/notification/NotificationService.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/notification/NotificationService.java,v 1.5 2006/07/04 12:26:50 tszeredi Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -24,6 +22,8 @@
* NotificationService enables sending aynchronous notifications to a management
* server. The implementation of <code>NotificationService</code> should
* register itself in the OSGi service registry as a service.
+ *
+ * @version $Revision: 5673 $
*/
public interface NotificationService {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/notification/package.html b/org.osgi.compendium/src/main/java/info/dmtree/notification/package.html
new file mode 100644
index 0000000..b95e61c
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/notification/package.html
@@ -0,0 +1,13 @@
+<!-- $Revision: 6204 $ -->
+<BODY>
+<p>Device Management Tree Notification Package Version 1.0.
+This package contains the public API of the Notification service. This service
+enables the sending of asynchronous notifications to management servers.
+Permission classes are provided by the <code>info.dmtree.security</code> package.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree.notification;version="[1.0,2.0)"
+</pre>
+</BODY>
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/notification/packageinfo b/org.osgi.compendium/src/main/java/info/dmtree/notification/packageinfo
new file mode 100644
index 0000000..7c8de03
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/notification/packageinfo
@@ -0,0 +1 @@
+version 1.0
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/notification/spi/RemoteAlertSender.java b/org.osgi.compendium/src/main/java/info/dmtree/notification/spi/RemoteAlertSender.java
index 3e28892..8b7bac4 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/notification/spi/RemoteAlertSender.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/notification/spi/RemoteAlertSender.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/notification/spi/RemoteAlertSender.java,v 1.2 2006/06/16 16:31:59 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -23,26 +21,26 @@
/**
* The RemoteAlertSender can be used to send notifications to (remote) entities
* identified by principal names. This service is provided by Protocol Adapters,
- * and is used by the
- * {@link info.dmtree.notification.NotificationService} when sending
- * alerts. Implementations of this interface have to be able to connect and send
- * alerts to one or more management servers in a protocol specific way.
+ * and is used by the {@link info.dmtree.notification.NotificationService} when
+ * sending alerts. Implementations of this interface have to be able to connect
+ * and send alerts to one or more management servers in a protocol specific way.
* <p>
* The properties of the service registration should specify a list of
* destinations (principals) where the service is capable of sending alerts.
- * This can be done by providing a <code>String</code> array of principal
- * names in the <code>principals</code> registration property. If this property
- * is not registered, the service will be treated as the default sender. The
- * default alert sender is only used when a more specific alert sender cannot be
- * found.
+ * This can be done by providing a <code>String</code> array of principal names
+ * in the <code>principals</code> registration property. If this property is not
+ * registered, the service will be treated as the default sender. The default
+ * alert sender is only used when a more specific alert sender cannot be found.
* <p>
* The <code>principals</code> registration property is used when the
- * {@link info.dmtree.notification.NotificationService#sendNotification}
- * method is called, to find the proper <code>RemoteAlertSender</code> for the
- * given destination. If the caller does not specify a principal, the alert is
- * only sent if the Notification Sender finds a default alert sender, or if the
+ * {@link info.dmtree.notification.NotificationService#sendNotification} method
+ * is called, to find the proper <code>RemoteAlertSender</code> for the given
+ * destination. If the caller does not specify a principal, the alert is only
+ * sent if the Notification Sender finds a default alert sender, or if the
* choice is unambiguous for some other reason (for example if only one alert
* sender is registered).
+ *
+ * @version $Revision: 5673 $
*/
public interface RemoteAlertSender {
/**
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/notification/spi/package.html b/org.osgi.compendium/src/main/java/info/dmtree/notification/spi/package.html
new file mode 100644
index 0000000..7a17cd9
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/notification/spi/package.html
@@ -0,0 +1,15 @@
+<!-- $Revision: 6204 $ -->
+<BODY>
+<p>Device Management Tree Notification SPI Package Version 1.0.
+This package contains the SPI (Service Provider Interface) of the Notification
+service. These interfaces are implemented by Protocol Adapters capable of
+delivering notifications to management servers on a specific protocol. Users of
+the <code>NotificationService</code> interface do not interact directly with this
+package.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree.notification.spi;version="[1.0,2.0)"
+</pre>
+</BODY>
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/notification/spi/packageinfo b/org.osgi.compendium/src/main/java/info/dmtree/notification/spi/packageinfo
new file mode 100644
index 0000000..7c8de03
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/notification/spi/packageinfo
@@ -0,0 +1 @@
+version 1.0
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/package.html b/org.osgi.compendium/src/main/java/info/dmtree/package.html
new file mode 100644
index 0000000..51602f5
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/package.html
@@ -0,0 +1,16 @@
+<!-- $Revision: 6204 $ -->
+<BODY>
+<p>Device Management Tree Package Version 1.0.
+This package contains the public API for the Device Management Tree
+manipulations. Permission classes are provided by the
+<code>info.dmtree.security</code> package, and DMT plugin interfaces can be found in
+the <code>info.dmtree.spi</code> package. Asynchronous notifications to remote
+management servers can be sent using the interfaces in the
+<code>info.dmtree.notification</code> package.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree;version="[1.0,2.0)"
+</pre>
+</BODY>
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/packageinfo b/org.osgi.compendium/src/main/java/info/dmtree/packageinfo
new file mode 100644
index 0000000..b3d1f97
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/packageinfo
@@ -0,0 +1 @@
+version 1.0.1
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/registry/DmtServiceFactory.java b/org.osgi.compendium/src/main/java/info/dmtree/registry/DmtServiceFactory.java
index 9820277..b94634a 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/registry/DmtServiceFactory.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/registry/DmtServiceFactory.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/registry/DmtServiceFactory.java,v 1.5 2006/07/11 09:38:25 tszeredi Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -23,7 +21,6 @@
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
-
/**
* This class is the central access point for Device Management services.
* Applications can use the static factory methods provided in this class to
@@ -32,7 +29,9 @@
* sending notifications to management servers.
* <p>
* These methods are not needed in an OSGi environment, clients should retrieve
- * the required service objects from the OSGi Service Registry.
+ * the required service objects from the OSGi Service Registry.
+ *
+ * @version $Revision: 5673 $
*/
public final class DmtServiceFactory {
private static BundleContext context = null;
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/registry/package.html b/org.osgi.compendium/src/main/java/info/dmtree/registry/package.html
new file mode 100644
index 0000000..b2122ac
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/registry/package.html
@@ -0,0 +1,15 @@
+<!-- $Revision: 6204 $ -->
+<BODY>
+<p>Device Management Tree Registry Package Version 1.0.
+This package contains the factory class providing access to the different
+Device Management services for non-OSGi applications. The
+<code>DmtServiceFactory</code> class contained in this package provides methods
+for retrieving <code>NotificationService</code> and <code>DmtAdmin</code>
+service implementations.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree.registry;version="[1.0,2.0)"
+</pre>
+</BODY>
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/registry/packageinfo b/org.osgi.compendium/src/main/java/info/dmtree/registry/packageinfo
new file mode 100644
index 0000000..7c8de03
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/registry/packageinfo
@@ -0,0 +1 @@
+version 1.0
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/security/AlertPermission.java b/org.osgi.compendium/src/main/java/info/dmtree/security/AlertPermission.java
index 6fc0209..99395d5 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/security/AlertPermission.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/security/AlertPermission.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/security/AlertPermission.java,v 1.4 2006/07/12 21:21:52 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -19,17 +17,22 @@
import java.security.Permission;
import java.security.PermissionCollection;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
/**
* Indicates the callers authority to send alerts to management servers,
* identified by their principal names.
* <p>
- * <code>AlertPermission</code> has a target string which controls the
- * principal names where alerts can be sent. A wildcard is allowed at the end of
- * the target string, to allow sending alerts to any principal with a name
- * matching the given prefix. The "*" target means that alerts can be
- * sent to any destination.
+ * <code>AlertPermission</code> has a target string which controls the principal
+ * names where alerts can be sent. A wildcard is allowed at the end of the
+ * target string, to allow sending alerts to any principal with a name matching
+ * the given prefix. The "*" target means that alerts can be sent to
+ * any destination.
+ *
+ * @version $Revision: 5673 $
*/
public class AlertPermission extends Permission {
private static final long serialVersionUID = -3206463101788245739L;
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/security/DmtPermission.java b/org.osgi.compendium/src/main/java/info/dmtree/security/DmtPermission.java
index aa9702b..5b85398 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/security/DmtPermission.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/security/DmtPermission.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/security/DmtPermission.java,v 1.10 2006/10/19 13:32:53 tszeredi Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -22,7 +20,11 @@
import java.security.Permission;
import java.security.PermissionCollection;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.StringTokenizer;
/**
* Controls access to management objects in the Device Management Tree (DMT). It
@@ -46,15 +48,16 @@
*
* This means that owner of this permission has Get access on every child node
* of ./OSGi/bundles. The asterix does not necessarily have to follow a '/'
- * character. For example the
- * <code>"./OSGi/a*"</code> target matches the
- * <code>./OSGi/applications</code> subtree.
+ * character. For example the <code>"./OSGi/a*"</code> target matches
+ * the <code>./OSGi/applications</code> subtree.
* <p>
- * If wildcard is present in the actions field, all legal OMA DM commands are
- * allowed on the designated nodes(s) by the owner of the permission. Action
+ * If wildcard is present in the actions field, all legal OMA DM commands are
+ * allowed on the designated nodes(s) by the owner of the permission. Action
* names are interpreted case-insensitively, but the canonical action string
- * returned by {@link #getActions} uses the forms defined by the action
+ * returned by {@link #getActions} uses the forms defined by the action
* constants.
+ *
+ * @version $Revision: 5673 $
*/
public class DmtPermission extends Permission {
private static final long serialVersionUID = -1910969921419407809L;
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/security/DmtPrincipalPermission.java b/org.osgi.compendium/src/main/java/info/dmtree/security/DmtPrincipalPermission.java
index e875055..9052454 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/security/DmtPrincipalPermission.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/security/DmtPrincipalPermission.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/security/DmtPrincipalPermission.java,v 1.4 2006/07/12 21:21:52 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -20,7 +18,10 @@
import java.security.Permission;
import java.security.PermissionCollection;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Iterator;
/**
* Indicates the callers authority to create DMT sessions on behalf of a remote
@@ -32,6 +33,8 @@
* wildcard is allowed at the end of the target string, to allow using any
* principal name with the given prefix. The "*" target means the
* adapter can create a session in the name of any principal.
+ *
+ * @version $Revision: 5673 $
*/
public class DmtPrincipalPermission extends Permission {
private static final long serialVersionUID = 6388752177325038332L;
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/security/package.html b/org.osgi.compendium/src/main/java/info/dmtree/security/package.html
new file mode 100644
index 0000000..f5c2fb4
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/security/package.html
@@ -0,0 +1,12 @@
+<!-- $Revision: 6204 $ -->
+<BODY>
+<p>Device Management Tree Security Package Version 1.0.
+This package contains the permission classes used by the Device
+Management API in environments that support the Java 2 security model.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree.security;version="[1.0,2.0)"
+</pre>
+</BODY>
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/security/packageinfo b/org.osgi.compendium/src/main/java/info/dmtree/security/packageinfo
new file mode 100644
index 0000000..7c8de03
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/security/packageinfo
@@ -0,0 +1 @@
+version 1.0
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/spi/DataPlugin.java b/org.osgi.compendium/src/main/java/info/dmtree/spi/DataPlugin.java
index ab3eea4..19fe359 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/spi/DataPlugin.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/spi/DataPlugin.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/spi/DataPlugin.java,v 1.4 2006/06/16 16:31:59 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -36,8 +34,8 @@
* method depends on the lock type of the current session. In case of
* {@link #openReadWriteSession(String[], DmtSession)} and
* {@link #openAtomicSession(String[], DmtSession)}, the plugin may return
- * <code>null</code> to indicate that the specified lock type is not
- * supported. In this case the DmtAdmin may call
+ * <code>null</code> to indicate that the specified lock type is not supported.
+ * In this case the DmtAdmin may call
* {@link #openReadOnlySession(String[], DmtSession)} to start a read-only
* plugin session, which can be used as long as there are no write operations on
* the nodes handled by this plugin.
@@ -47,6 +45,8 @@
* is an absolute path, so the first segment is always ".". Special
* characters appear escaped in the segments.
* <p>
+ *
+ * @version $Revision: 5673 $
*/
public interface DataPlugin {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/spi/ExecPlugin.java b/org.osgi.compendium/src/main/java/info/dmtree/spi/ExecPlugin.java
index b2fe0f3..c72784c 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/spi/ExecPlugin.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/spi/ExecPlugin.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/spi/ExecPlugin.java,v 1.3 2006/06/16 16:31:59 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -28,6 +26,8 @@
* service registry specifying the list of root node URIs in a
* <code>String</code> array in the <code>execRootURIs</code> registration
* parameter.
+ *
+ * @version $Revision: 5673 $
*/
public interface ExecPlugin {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/spi/ReadWriteDataSession.java b/org.osgi.compendium/src/main/java/info/dmtree/spi/ReadWriteDataSession.java
index 54e444b..3ec4a56 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/spi/ReadWriteDataSession.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/spi/ReadWriteDataSession.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/spi/ReadWriteDataSession.java,v 1.4 2006/07/12 21:21:52 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -17,7 +15,10 @@
*/
package info.dmtree.spi;
-import info.dmtree.*;
+import info.dmtree.DmtData;
+import info.dmtree.DmtException;
+import info.dmtree.DmtSession;
+import info.dmtree.MetaNode;
/**
* Provides non-atomic read-write access to the part of the tree handled by the
@@ -36,8 +37,7 @@
* certain circumstances for granted: that the path is valid and is within the
* subtree of the plugin and the session, the command can be applied to the
* given node (e.g. the target of <code>setNodeValue</code> is a leaf node),
- * etc. All errors described by the error codes {@link DmtException#INVALID_URI},
- * {@link DmtException#URI_TOO_LONG}, {@link DmtException#PERMISSION_DENIED},
+ * etc. All errors described by the error codes {@link DmtException#INVALID_URI}, {@link DmtException#URI_TOO_LONG}, {@link DmtException#PERMISSION_DENIED},
* {@link DmtException#COMMAND_NOT_ALLOWED} and
* {@link DmtException#TRANSACTION_ERROR} are fully filtered out before control
* reaches the plugin.
@@ -63,6 +63,8 @@
* The plugin can use the remaining error codes as needed. If an error does not
* fit into any other category, the {@link DmtException#COMMAND_FAILED} code
* should be used.
+ *
+ * @version $Revision: 5673 $
*/
public interface ReadWriteDataSession extends ReadableDataSession {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/spi/ReadableDataSession.java b/org.osgi.compendium/src/main/java/info/dmtree/spi/ReadableDataSession.java
index 7897bad..389e989 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/spi/ReadableDataSession.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/spi/ReadableDataSession.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/spi/ReadableDataSession.java,v 1.4 2006/07/12 21:21:52 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -17,7 +15,9 @@
*/
package info.dmtree.spi;
-import info.dmtree.*;
+import info.dmtree.DmtData;
+import info.dmtree.DmtException;
+import info.dmtree.MetaNode;
import java.util.Date;
@@ -38,15 +38,14 @@
* <p>
* <strong>Error handling</strong>
* <p>
- * When a tree access command is called on the DmtAdmin service, it must
- * perform an extensive set of checks on the parameters and the authority of the
- * caller before delegating the call to a plugin. Therefore plugins can take
- * certain circumstances for granted: that the path is valid and is within the
- * subtree of the plugin and the session, the command can be applied to the
- * given node (e.g. the target of <code>getChildNodeNames</code> is an
- * interior node), etc. All errors described by the error codes
- * {@link DmtException#INVALID_URI}, {@link DmtException#URI_TOO_LONG},
- * {@link DmtException#PERMISSION_DENIED},
+ * When a tree access command is called on the DmtAdmin service, it must perform
+ * an extensive set of checks on the parameters and the authority of the caller
+ * before delegating the call to a plugin. Therefore plugins can take certain
+ * circumstances for granted: that the path is valid and is within the subtree
+ * of the plugin and the session, the command can be applied to the given node
+ * (e.g. the target of <code>getChildNodeNames</code> is an interior node), etc.
+ * All errors described by the error codes {@link DmtException#INVALID_URI},
+ * {@link DmtException#URI_TOO_LONG}, {@link DmtException#PERMISSION_DENIED},
* {@link DmtException#COMMAND_NOT_ALLOWED} and
* {@link DmtException#TRANSACTION_ERROR} are fully filtered out before control
* reaches the plugin.
@@ -58,19 +57,21 @@
* indicate such discrepancies.
* <p>
* The DmtAdmin also ensures that the targeted nodes exist before calling the
- * plugin (except, of course, before the <code>isNodeUri</code> call).
- * However, some small amount of time elapses between the check and the call, so
- * in case of plugins where the node structure can change independantly from the
- * DMT, the target node might disappear in that time. For example, a whole
- * subtree can disappear when a Monitorable application is unregistered, which
- * might happen in the middle of a DMT session accessing it. Plugins managing
- * such nodes always need to check whether they still exist and throw
+ * plugin (except, of course, before the <code>isNodeUri</code> call). However,
+ * some small amount of time elapses between the check and the call, so in case
+ * of plugins where the node structure can change independantly from the DMT,
+ * the target node might disappear in that time. For example, a whole subtree
+ * can disappear when a Monitorable application is unregistered, which might
+ * happen in the middle of a DMT session accessing it. Plugins managing such
+ * nodes always need to check whether they still exist and throw
* {@link DmtException#NODE_NOT_FOUND} as necessary, but for more static
* subtrees there is no need for the plugin to use this error code.
* <p>
* The plugin can use the remaining error codes as needed. If an error does not
* fit into any other category, the {@link DmtException#COMMAND_FAILED} code
* should be used.
+ *
+ * @version $Revision: 5673 $
*/
public interface ReadableDataSession {
/**
@@ -118,7 +119,7 @@
/**
* Get the list of children names of a node. The returned array contains the
* names - not the URIs - of the immediate children nodes of the given node.
- * The returned child names must be mangled ({@link info.dmtree.Uri#mangle}).
+ * The returned child names must be mangled ({@link info.dmtree.Uri#mangle(String)}).
* The returned array may contain <code>null</code> entries, but these are
* removed by the DmtAdmin before returning it to the client.
*
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/spi/TransactionalDataSession.java b/org.osgi.compendium/src/main/java/info/dmtree/spi/TransactionalDataSession.java
index 4ddb694..477bd05 100644
--- a/org.osgi.compendium/src/main/java/info/dmtree/spi/TransactionalDataSession.java
+++ b/org.osgi.compendium/src/main/java/info/dmtree/spi/TransactionalDataSession.java
@@ -1,7 +1,5 @@
/*
- * $Header: /cvshome/build/info.dmtree/src/info/dmtree/spi/TransactionalDataSession.java,v 1.2 2006/06/16 16:31:59 hargrave Exp $
- *
- * Copyright (c) OSGi Alliance (2004, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2004, 2008). 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.
@@ -23,6 +21,8 @@
/**
* Provides atomic read-write access to the part of the tree handled by the
* plugin that created this session.
+ *
+ * @version $Revision: 5673 $
*/
public interface TransactionalDataSession extends ReadWriteDataSession {
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/spi/package.html b/org.osgi.compendium/src/main/java/info/dmtree/spi/package.html
new file mode 100644
index 0000000..63291f7
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/spi/package.html
@@ -0,0 +1,13 @@
+<!-- $Revision: 6204 $ -->
+<BODY>
+<p>Device Management Tree SPI Package Version 1.0.
+This package contains the interface classes that compose the Device Management
+SPI (Service Provider Interface). These interfaces are implemented by DMT plugins;
+users of the <code>DmtAdmin</code> interface do not interact directly with these.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree.spi;version="[1.0,2.0)"
+</pre>
+</BODY>
diff --git a/org.osgi.compendium/src/main/java/info/dmtree/spi/packageinfo b/org.osgi.compendium/src/main/java/info/dmtree/spi/packageinfo
new file mode 100644
index 0000000..7c8de03
--- /dev/null
+++ b/org.osgi.compendium/src/main/java/info/dmtree/spi/packageinfo
@@ -0,0 +1 @@
+version 1.0