You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gn...@apache.org on 2009/07/06 21:50:27 UTC

svn commit: r791585 [1/3] - in /geronimo/sandbox/blueprint: blueprint-api/src/main/java/org/osgi/service/blueprint/container/ blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ blueprint-bundle/ blueprint-cm/src/main/resources/org/apache/g...

Author: gnodet
Date: Mon Jul  6 19:50:26 2009
New Revision: 791585

URL: http://svn.apache.org/viewvc?rev=791585&view=rev
Log:
Upgrade to latest api / schemas

Modified:
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintContainer.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintEvent.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintListener.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ComponentDefinitionException.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/Converter.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/EventConstants.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/NoSuchComponentException.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ReifiedType.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ServiceUnavailableException.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/package.html
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/packageinfo
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListener.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/Target.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ValueMetadata.java
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/package.html
    geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/packageinfo
    geronimo/sandbox/blueprint/blueprint-bundle/pom.xml
    geronimo/sandbox/blueprint/blueprint-cm/src/main/resources/org/apache/geronimo/blueprint/compendium/cm/blueprint-cm.xsd
    geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/container/BlueprintEventDispatcher.java
    geronimo/sandbox/blueprint/blueprint-core/src/main/resources/org/apache/geronimo/blueprint/blueprint.xsd

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintContainer.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintContainer.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintContainer.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintContainer.java Mon Jul  6 19:50:26 2009
@@ -15,88 +15,85 @@
  */
 package org.osgi.service.blueprint.container;
 
-import java.util.*;
+import java.util.Collection;
+import java.util.Set;
 
-import org.osgi.service.blueprint.reflect.*;
+import org.osgi.service.blueprint.reflect.BeanMetadata;
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
+import org.osgi.service.blueprint.reflect.ReferenceListMetadata;
+import org.osgi.service.blueprint.reflect.ReferenceMetadata;
+import org.osgi.service.blueprint.reflect.ServiceMetadata;
+import org.osgi.service.blueprint.reflect.ServiceReferenceMetadata;
 
 /**
- * Blueprint Container provides access to all the managers. These are the beans,
- * registered services, and service references. Only bundles in the
- * <code>ACTIVE</code> (or also <code>STARTING</code> for bundles with a
- * lazy activation policy) state can have an associated Blueprint Container. A
- * given Bundle Context has at most one associated Blueprint Container.
+ * A Blueprint Container represents the managed state of a Blueprint bundle.
  * 
- * A Blueprint Container can be obtained by injecting the predefined
- * "blueprintContainer" environment manager. Alternatively the Blueprint
- * Container is registered as a service and its managers can be looked up.
+ * A Blueprint Container provides access to all managed components. These are
+ * the beans, services, and service references. Only bundles in the
+ * <code>ACTIVE</code> state (and also the <code>STARTING</code> state for
+ * bundles awaiting lazy activation) can have an associated Blueprint Container.
+ * A given Bundle Context has at most one associated Blueprint Container.
  * 
- * @see org.osgi.framework.Constants
+ * A Blueprint Container can be obtained by injecting the predefined
+ * &quot;blueprintContainer&quot; component id. The Blueprint Container is also
+ * registered as a service and its managed components can be queried.
  * 
  * @ThreadSafe
+ * @version $Revision$
  */
 public interface BlueprintContainer {
 	/**
-	 * The set of manager ids recognized by the Blueprint Container.
+	 * Returns the set of component ids managed by this Blueprint Container.
 	 * 
-	 * @return an immutable Set of Strings, containing the ids of all of the
-	 *         managers within the Blueprint Container.
+	 * @return An immutable Set of Strings, containing the ids of all of the
+	 *         components managed within this Blueprint Container.
 	 */
 	Set<String> getComponentIds();
 
 	/**
-	 * Get the component instance for a given named component. If the manager
-	 * has not yet been activated, calling this operation will cause the
-	 * component instance to be created and initialized. If the component has a
-	 * prototype scope then each call to the <code>getComponentInstance</code>
-	 * method will return a new component instance.
-	 * 
-	 * Calling {link #getComponentInstance} from logic executing during the
-	 * construction of a component, before the <code>initMethod</code> (if
-	 * specified) has returned, may trigger a circular dependency.
-	 * 
-	 * @param id
-	 *            The id of the manager for which the instance is to be
-	 *            provided.
+	 * Return the component instance for the specified component id.
 	 * 
-	 * @return The component instance, the type of the returned object is
-	 *         dependent on the manager, and may be determined with the
-	 *         Metadata.
+	 * If the component's manager has not yet been activated, calling this
+	 * operation will atomically activate it. If the component has singleton
+	 * scope, the activation will cause the component instance to be created and
+	 * initialized. If the component has prototype scope, then each call to this
+	 * method will return a new component instance.
 	 * 
-	 * @throws NoSuchComponentException
-	 *             If the id specified is not the id of a manager within the
-	 *             context.
+	 * @param id The component id for the requested component instance.
+	 * @return A component instance for the component with the specified
+	 *         component id.
+	 * @throws NoSuchComponentException If no component with the specified
+	 *         component id is managed by this Blueprint Container.
 	 */
 	Object getComponentInstance(String id);
 
 	/**
-	 * Get the Metadata for a given manager id.
-	 * 
-	 * @param id
-	 *            the id of the manager for which the Metadata is to be
-	 *            retrieved.
-	 * 
-	 * @return the Metadata for the manager with the given id.
+	 * Return the Component Metadata object for the component with the specified
+	 * component id.
 	 * 
-	 * @throws NoSuchComponentException
-	 *             if the id specified is not the id of a manager within the
-	 *             Blueprint Container.
+	 * @param id The component id for the requested Component Metadata.
+	 * @return The Component Metadata object for the component with the
+	 *         specified component id.
+	 * @throws NoSuchComponentException If no component with the specified
+	 *         component id is managed by this Blueprint Container.
 	 */
 	ComponentMetadata getComponentMetadata(String id);
 
 	/**
-	 * Returns all {@link ComponentMetadata} instances of the given type. The
-	 * supported Metadata types are {@link ComponentMetadata} (which returns the
-	 * Metadata for all defined manager types), {@link BeanMetadata},
+	 * Return all {@link ComponentMetadata} objects of the specified Component
+	 * Metadata type. The supported Component Metadata types are
+	 * {@link ComponentMetadata} (which returns the Component Metadata for all
+	 * defined manager types), {@link BeanMetadata} ,
 	 * {@link ServiceReferenceMetadata} (which returns both
-	 * {@link ReferenceMetadata} and {@link ReferenceListMetadata} instances),
-	 * and {@link ServiceMetadata}. The collection will include all Metadata
-	 * instances of the requested type, including components that are declared
-	 * as inline values.
-	 * 
-	 * @param type The super type or type of all returned Metadata 
-	 * 
-	 * @return An immutable collection of {@link ComponentMetadata} objects of the
-	 *         matching type.
+	 * {@link ReferenceMetadata} and {@link ReferenceListMetadata} objects), and
+	 * {@link ServiceMetadata}. The collection will include all Component
+	 * Metadata objects of the requested type, including components that are
+	 * declared inline.
+	 * 
+	 * @param type The super type or type of the requested Component Metadata
+	 *        objects.
+	 * @return An immutable collection of Component Metadata objects of the
+	 *         specified type.
 	 */
 	<T extends ComponentMetadata> Collection<T> getMetadata(
 			Class<T> type);

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintEvent.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintEvent.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintEvent.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintEvent.java Mon Jul  6 19:50:26 2009
@@ -22,44 +22,44 @@
  * 
  * <p>
  * <code>BlueprintEvent</code> objects are delivered to all registered
- * <code>BlueprintListener</code> service objects. Blueprint Events must be
- * asynchronously delivered in chronological order with respect to each
- * listener.
+ * {@link BlueprintListener} services. Blueprint Events must be asynchronously
+ * delivered in chronological order with respect to each listener.
  * 
  * <p>
- * In addition, when a listener is registered, the Blueprint extender will
- * synchronously send to this listener the last event for each ready Blueprint bundle
- * managed by this extender. This replay of events is designed so that the new
- * listener can be informed of the state of each Blueprint bundle. Events sent
- * during this replay will have the {@link #isReplay()} flag set. The Blueprint
- * extender must ensure that this replay phase does not interfere with new
- * events so that the chronological order of all events received by the listener
- * is preserved. If the last event for a given Blueprint bundle is
- * {@link #DESTROYED}, the extender must not send it during this replay phase.
+ * In addition, after a Blueprint Listener is registered, the Blueprint extender
+ * will synchronously send to this Blueprint Listener the last Blueprint Event
+ * for each ready Blueprint bundle managed by this extender. This
+ * <em>replay</em> of Blueprint Events is designed so that the new Blueprint
+ * Listener can be informed of the state of each Blueprint bundle. Blueprint
+ * Events sent during this replay will have the {@link #isReplay()} flag set.
+ * The Blueprint extender must ensure that this replay phase does not interfere
+ * with new Blueprint Events so that the chronological order of all Blueprint
+ * Events received by the Blueprint Listener is preserved. If the last Blueprint
+ * Event for a given Blueprint bundle is {@link #DESTROYED}, the extender must
+ * not send it during this replay phase.
  * 
  * <p>
  * A type code is used to identify the type of event. The following event types
  * are defined:
  * <ul>
- * <li>{@link #CREATING}
- * <li>{@link #CREATED}
- * <li>{@link #DESTROYING}
- * <li>{@link #DESTROYED}
- * <li>{@link #FAILURE}
- * <li>{@link #GRACE_PERIOD}
- * <li>{@link #WAITING}
+ * <li>{@link #CREATING}</li>
+ * <li>{@link #CREATED}</li>
+ * <li>{@link #DESTROYING}</li>
+ * <li>{@link #DESTROYED}</li>
+ * <li>{@link #FAILURE}</li>
+ * <li>{@link #GRACE_PERIOD}</li>
+ * <li>{@link #WAITING}</li>
  * </ul>
  * 
  * <p>
- * <h2>Blueprint Events and Event Admin service</h2>
  * In addition to calling the registered {@link BlueprintListener} services, the
  * Blueprint extender must also send those events to the Event Admin service, if
- * it is available. <br/> See {@link EventConstants} for more informations.
+ * it is available.
  * 
  * @see BlueprintListener
  * @see EventConstants
- *
  * @Immutable
+ * @version $Revision$
  */
 public class BlueprintEvent {
 
@@ -67,33 +67,33 @@
 	 * The Blueprint extender has started creating a Blueprint Container for the
 	 * bundle.
 	 */
-	public static final int CREATING = 1;
+	public static final int	CREATING		= 1;
 	/**
 	 * The Blueprint extender has created a Blueprint Container for the bundle.
-	 * This event is sent after the Blueprint Container service has been
-	 * registered.
+	 * This event is sent after the Blueprint Container has been registered as a
+	 * service.
 	 */
-	public static final int CREATED = 2;
+	public static final int	CREATED			= 2;
 	/**
 	 * The Blueprint extender has started destroying the Blueprint Container for
 	 * the bundle.
 	 */
-	public static final int DESTROYING = 3;
+	public static final int	DESTROYING		= 3;
 	/**
 	 * The Blueprint Container for the bundle has been completely destroyed.
-	 * This event is sent after the Blueprint Container service has been
-	 * unregistered.
+	 * This event is sent after the Blueprint Container has been unregistered as
+	 * a service.
 	 */
-	public static final int DESTROYED = 4;
+	public static final int	DESTROYED		= 4;
 	/**
 	 * The Blueprint Container creation for the bundle has failed. If this event
 	 * is sent after a timeout in the Grace Period, the
 	 * {@link #getDependencies()} method must return an array of missing
 	 * mandatory dependencies. The event must also contain the cause of the
-	 * failure as a <code>Throwable</code> through the {@link #getException()}
+	 * failure as a <code>Throwable</code> through the {@link #getCause()}
 	 * method.
 	 */
-	public static final int FAILURE = 5;
+	public static final int	FAILURE			= 5;
 	/**
 	 * The Blueprint Container has entered the grace period. The list of missing
 	 * dependencies must be made available through the
@@ -101,68 +101,67 @@
 	 * {@link #GRACE_PERIOD} event is sent each time the set of unsatisfied
 	 * dependencies changes.
 	 */
-	public static final int GRACE_PERIOD = 6;
+	public static final int	GRACE_PERIOD	= 6;
 	/**
-	 * The Blueprint Extender is waiting on the availability of a service to
+	 * The Blueprint Container is waiting on the availability of a service to
 	 * satisfy an invocation on a referenced service. The missing dependency
 	 * must be made available through the {@link #getDependencies()} method
 	 * which will return an array containing one filter object as a String.
 	 */
-	public static final int WAITING = 7;
+	public static final int	WAITING			= 7;
 
 	/**
 	 * Type of this event.
 	 * 
 	 * @see #getType()
 	 */
-	private final int type;
+	private final int		type;
 	/**
 	 * The time when the event occurred.
 	 * 
 	 * @see #getTimestamp()
 	 */
-	private final long timestamp;
+	private final long		timestamp;
 	/**
 	 * The Blueprint bundle.
 	 * 
 	 * @see #getBundle()
 	 */
-	private final Bundle bundle;
+	private final Bundle	bundle;
 	/**
 	 * The Blueprint extender bundle.
 	 * 
 	 * @see #getExtenderBundle()
 	 */
-	private final Bundle extenderBundle;
+	private final Bundle	extenderBundle;
 	/**
-	 * An array containing filters identifying the missing dependencies.
+	 * An array containing filters identifying the missing dependencies. Must
+	 * not be <code>null</code> when the event type requires it.
 	 * 
 	 * @see #getDependencies()
 	 */
-	private final String[] dependencies;
+	private final String[]	dependencies;
 	/**
 	 * Cause of the failure.
 	 * 
-	 * @see #getException()
+	 * @see #getCause()
 	 */
-	private final Throwable exception;
+	private final Throwable	cause;
 	/**
 	 * Indicate if this event is a replay event or not.
 	 * 
 	 * @see #isReplay()
 	 */
-	private final boolean replay;
+	private final boolean	replay;
 
 	/**
 	 * Create a simple <code>BlueprintEvent</code> object.
 	 * 
-	 * @param type
-	 *            The type of the event.
-	 * @param bundle
-	 *            The Blueprint bundle this event is originating from.
-	 * @param extenderBundle
-	 *            The bundle of the Blueprint extender that is generating the
-	 *            event.
+	 * @param type The type of this event.
+	 * @param bundle The Blueprint bundle associated with this event. This
+	 *        parameter must not be <code>null</code>.
+	 * @param extenderBundle The Blueprint extender bundle that is generating
+	 *        this event. This parameter must not be <code>null</code>.
 	 */
 	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle) {
 		this(type, bundle, extenderBundle, null, null);
@@ -172,16 +171,15 @@
 	 * Create a <code>BlueprintEvent</code> object associated with a set of
 	 * dependencies.
 	 * 
-	 * @param type
-	 *            The type of the event.
-	 * @param bundle
-	 *            The Blueprint bundle this event is originating from.
-	 * @param extenderBundle
-	 *            The bundle of the Blueprint extender that is generating the
-	 *            event.
-	 * @param dependencies
-	 *            An array of <code>String</code> filters for each dependency
-	 *            associated with this event.
+	 * @param type The type of this event.
+	 * @param bundle The Blueprint bundle associated with this event. This
+	 *        parameter must not be <code>null</code>.
+	 * @param extenderBundle The Blueprint extender bundle that is generating
+	 *        this event. This parameter must not be <code>null</code>.
+	 * @param dependencies An array of <code>String</code> filters for each
+	 *        dependency associated with this event. Must be a non-empty array
+	 *        for event types {@link #FAILURE}, {@link #GRACE_PERIOD} and
+	 *        {@link #WAITING}. Must be <code>null</code> for other event types.
 	 */
 	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle,
 			String[] dependencies) {
@@ -192,60 +190,82 @@
 	 * Create a <code>BlueprintEvent</code> object associated with a failure
 	 * cause.
 	 * 
-	 * @param type
-	 *            The type of the event.
-	 * @param bundle
-	 *            The Blueprint bundle this event is originating from.
-	 * @param extenderBundle
-	 *            The bundle of the Blueprint extender that is generating the
-	 *            event.
-	 * @param exception
-	 *            A <code>Throwable</code> object describing the root cause of
-	 *            the event.
+	 * @param type The type of this event.
+	 * @param bundle The Blueprint bundle associated with this event. This
+	 *        parameter must not be <code>null</code>.
+	 * @param extenderBundle The Blueprint extender bundle that is generating
+	 *        this event. This parameter must not be <code>null</code>.
+	 * @param cause A <code>Throwable</code> object describing the root cause of
+	 *        the event. May be <code>null</code>.
 	 */
 	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle,
-			Throwable exception) {
-		this(type, bundle, extenderBundle, null, exception);
+			Throwable cause) {
+		this(type, bundle, extenderBundle, null, cause);
 	}
 
 	/**
 	 * Create a <code>BlueprintEvent</code> object associated with a failure
 	 * cause and related to a set of dependencies.
 	 * 
-	 * @param type
-	 *            The type of the event.
-	 * @param bundle
-	 *            The Blueprint bundle this event is originating from.
-	 * @param extenderBundle
-	 *            The bundle of the Blueprint extender that is generating the
-	 *            event.
-	 * @param dependencies
-	 *            An array of <code>String</code> filters for each dependency
-	 *            associated with this event.
-	 * @param exception
-	 *            A <code>Throwable</code> object describing the root cause of
-	 *            the event.
+	 * @param type The type of this event.
+	 * @param bundle The Blueprint bundle associated with this event. This
+	 *        parameter must not be <code>null</code>.
+	 * @param extenderBundle The Blueprint extender bundle that is generating
+	 *        this event. This parameter must not be <code>null</code>.
+	 * @param dependencies An array of <code>String</code> filters for each
+	 *        dependency associated with this event. Must be a non-empty array
+	 *        for event types {@link #FAILURE}, {@link #GRACE_PERIOD} and
+	 *        {@link #WAITING}. Must be <code>null</code> for other event types.
+	 * @param cause A <code>Throwable</code> object describing the root cause of
+	 *        this event. May be <code>null</code>.
 	 */
 	public BlueprintEvent(int type, Bundle bundle, Bundle extenderBundle,
-			String[] dependencies, Throwable exception) {
+			String[] dependencies, Throwable cause) {
 		this.type = type;
 		this.timestamp = System.currentTimeMillis();
 		this.bundle = bundle;
 		this.extenderBundle = extenderBundle;
 		this.dependencies = dependencies;
-		this.exception = exception;
+		this.cause = cause;
 		this.replay = false;
+		if (bundle == null) {
+			throw new NullPointerException("bundle must not be null");
+		}
+		if (extenderBundle == null) {
+			throw new NullPointerException("extenderBundle must not be null");
+		}
+		switch (type) {
+			case WAITING :
+			case GRACE_PERIOD :
+			case FAILURE :
+				if (dependencies == null) {
+					throw new NullPointerException(
+							"dependencies must not be null");
+				}
+				if (dependencies.length == 0) {
+					throw new IllegalArgumentException(
+							"dependencies must not be length zero");
+				}
+				break;
+			default :
+				if (dependencies != null) {
+					throw new IllegalArgumentException(
+							"dependencies must be null");
+				}
+				break;
+		}
 	}
 
 	/**
-	 * Create a new Blueprint Event from the given Blueprint event. The
-	 * <code>timestamp</code> property will be copied from the original event
-	 * and only the replay property will be overridden with the given value.
-	 * 
-	 * @param event
-	 *            the original event to copy
-	 * @param replay
-	 *            if the copied event should be used as a replay event
+	 * Create a new <code>BlueprintEvent</code> from the specified
+	 * <code>BlueprintEvent</code>. The <code>timestamp</code> property will be
+	 * copied from the original event and only the replay property will be
+	 * overridden with the given value.
+	 * 
+	 * @param event The original <code>BlueprintEvent</code> to copy. Must not
+	 *        be <code>null</code>.
+	 * @param replay <code>true</code> if this event should be used as a replay
+	 *        event.
 	 */
 	public BlueprintEvent(BlueprintEvent event, boolean replay) {
 		this.type = event.type;
@@ -253,7 +273,7 @@
 		this.bundle = event.bundle;
 		this.extenderBundle = event.extenderBundle;
 		this.dependencies = event.dependencies;
-		this.exception = event.exception;
+		this.cause = event.cause;
 		this.replay = replay;
 	}
 
@@ -262,13 +282,13 @@
 	 * <p>
 	 * The type values are:
 	 * <ul>
-	 * <li>{@link #CREATING}
-	 * <li>{@link #CREATED}
-	 * <li>{@link #DESTROYING}
-	 * <li>{@link #DESTROYED}
-	 * <li>{@link #FAILURE}
-	 * <li>{@link #GRACE_PERIOD}
-	 * <li>{@link #WAITING}
+	 * <li>{@link #CREATING}</li>
+	 * <li>{@link #CREATED}</li>
+	 * <li>{@link #DESTROYING}</li>
+	 * <li>{@link #DESTROYED}</li>
+	 * <li>{@link #FAILURE}</li>
+	 * <li>{@link #GRACE_PERIOD}</li>
+	 * <li>{@link #WAITING}</li>
 	 * </ul>
 	 * 
 	 * @return The type of this event.
@@ -278,27 +298,27 @@
 	}
 
 	/**
-	 * Return the time at which this event occured.
+	 * Return the time at which this event was created.
 	 * 
-	 * @return The time at which this event occured.
+	 * @return The time at which this event was created.
 	 */
 	public long getTimestamp() {
 		return timestamp;
 	}
 
 	/**
-	 * Return the Blueprint bundle.
+	 * Return the Blueprint bundle associated with this event.
 	 * 
-	 * @return The Blueprint bundle. Never <code>null</code>.
+	 * @return The Blueprint bundle associated with this event.
 	 */
 	public Bundle getBundle() {
 		return bundle;
 	}
 
 	/**
-	 * Return the Bundle of the Blueprint extender.
+	 * Return the Blueprint extender bundle that is generating this event.
 	 * 
-	 * @return The Bundle of the Blueprint extender. Never <code>null</code>.
+	 * @return The Blueprint extender bundle that is generating this event.
 	 */
 	public Bundle getExtenderBundle() {
 		return extenderBundle;
@@ -307,32 +327,33 @@
 	/**
 	 * Return the filters identifying the missing dependencies that caused this
 	 * event.
-	 * <p>
-	 * This field is only valid for {@link #WAITING}, {@link #GRACE_PERIOD} and
-	 * {@link #FAILURE} events.
 	 * 
-	 * @return The missing dependencies informations. May be <code>null</code>.
+	 * @return The filters identifying the missing dependencies that caused this
+	 *         event if the event type is one of {@link #WAITING},
+	 *         {@link #GRACE_PERIOD} or {@link #FAILURE} or <code>null</code>
+	 *         for the other event types.
 	 */
 	public String[] getDependencies() {
-		return dependencies != null ? (String[]) dependencies.clone() : null;
+		return dependencies == null ? null : (String[]) dependencies.clone();
 	}
 
 	/**
-	 * Return the cause for a {@link #FAILURE} event.
+	 * Return the cause for this {@link #FAILURE} event.
 	 * 
-	 * @return The cause of the failure. May be <code>null</code>.
+	 * @return The cause of the failure for this event. May be <code>null</code>
+	 *         .
 	 */
-	public Throwable getException() {
-		return exception;
+	public Throwable getCause() {
+		return cause;
 	}
 
 	/**
-	 * Return the fact that this event is a replay event or not.
+	 * Return whether this event is a replay event.
 	 * 
-	 * @return a boolean indicating if this event is a replay event.
+	 * @return <code>true</code> if this event is a replay event and
+	 *         <code>false</code> otherwise.
 	 */
 	public boolean isReplay() {
 		return replay;
 	}
-
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintListener.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintListener.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintListener.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/BlueprintListener.java Mon Jul  6 19:50:26 2009
@@ -16,27 +16,36 @@
 package org.osgi.service.blueprint.container;
 
 /**
- * Listener for <code>BlueprintEvent</code>s. Implementers should register
- * this a Blueprint Event Listener service. The Blueprint extender must inform
- * the Blueprint Event Listener synchronously with the registration the last
- * non-DESTROYED event of all managed bundles with the replay flag set before
- * any of the other events are delivered. The delivery must maintain the time
- * ordering.
+ * A <code>BlueprintEvent</code> Listener.
  * 
- * @see BlueprintEvent
+ * <p>
+ * To receive Blueprint Events, a bundle must register a Blueprint Listener
+ * service.
+ * 
+ * After a Blueprint Listener is registered, the Blueprint extender
+ * must synchronously send to this Blueprint Listener the last Blueprint Event
+ * for each ready Blueprint bundle managed by this extender. This replay of
+ * Blueprint Events is designed so that the new Blueprint Listener can be
+ * informed of the state of each Blueprint bundle. Blueprint Events sent during
+ * this replay will have the {@link BlueprintEvent#isReplay()} flag set. The
+ * Blueprint extender must ensure that this replay phase does not interfere with
+ * new Blueprint Events so that the chronological order of all Blueprint Events
+ * received by the Blueprint Listener is preserved. If the last Blueprint Event
+ * for a given Blueprint bundle is {@link BlueprintEvent#DESTROYED}, the
+ * extender must not send it during this replay phase.
  * 
+ * @see BlueprintEvent
  * @ThreadSafe
+ * @version $Revision$
  */
 public interface BlueprintListener {
 
 	/**
-	 * Receives synchronous notifications of a Blueprint Event.
+	 * Receives notifications of a Blueprint Event.
 	 * 
-	 * Implementers should quickly process the events and return.
+	 * Implementers should quickly process the event and return.
 	 * 
-	 * @param event
-	 *            The <code>BlueprintEvent</code>.
+	 * @param event The {@link BlueprintEvent}.
 	 */
 	void blueprintEvent(BlueprintEvent event);
-
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ComponentDefinitionException.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ComponentDefinitionException.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ComponentDefinitionException.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ComponentDefinitionException.java Mon Jul  6 19:50:26 2009
@@ -16,53 +16,50 @@
 package org.osgi.service.blueprint.container;
 
 /**
- * Exception thrown when a configuration-related error occurs during creation of
- * a Blueprint Container.
+ * A Blueprint exception indicating that a component definition is in error.
+ * 
+ * This exception is thrown when a configuration-related error occurs during
+ * creation of a Blueprint Container.
+ * 
+ * @version $Revision$
  */
 public class ComponentDefinitionException extends RuntimeException {
-	private static final long serialVersionUID = 1L;
+	private static final long	serialVersionUID	= 1L;
 
 	/**
-	 * Creates a <code>ComponentDefinitionException</code> with no message or
-	 * exception cause.
+	 * Creates a Component Definition Exception with no message or exception
+	 * cause.
 	 */
 	public ComponentDefinitionException() {
 		super();
 	}
 
 	/**
-	 * Creates a <code>ComponentDefinitionException</code> with the specified
-	 * message
+	 * Creates a Component Definition Exception with the specified message
 	 * 
-	 * @param explanation
-	 *            The associated message.
+	 * @param explanation The associated message.
 	 */
 	public ComponentDefinitionException(String explanation) {
 		super(explanation);
 	}
 
 	/**
-	 * Creates a <code>ComponentDefinitionException</code> with the specified
-	 * message and exception cause.
+	 * Creates a Component Definition Exception with the specified message and
+	 * exception cause.
 	 * 
-	 * @param explanation
-	 *            The associated message.
-	 * @param cause
-	 *            The cause of this exception.
+	 * @param explanation The associated message.
+	 * @param cause The cause of this exception.
 	 */
 	public ComponentDefinitionException(String explanation, Throwable cause) {
 		super(explanation, cause);
 	}
 
 	/**
-	 * Creates a <code>ComponentDefinitionException</code> with the exception
-	 * cause.
+	 * Creates a Component Definition Exception with the exception cause.
 	 * 
-	 * @param cause
-	 *            The cause of this exception.
+	 * @param cause The cause of this exception.
 	 */
 	public ComponentDefinitionException(Throwable cause) {
 		super(cause);
 	}
-
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/Converter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/Converter.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/Converter.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/Converter.java Mon Jul  6 19:50:26 2009
@@ -16,38 +16,36 @@
 package org.osgi.service.blueprint.container;
 
 /**
- * Provides access to the type conversions (both predefined and user registered)
- * that are defined for the Blueprint Container.
+ * Type converter to convert an object to a target type.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface Converter {
 
 	/**
-	 * Check if the converter is able to convert the given value to the
+	 * Return if this converter is able to convert the specified object to the
 	 * specified type.
 	 * 
-	 * @param s
-	 *            The source object to convert from
-	 * @param T
-	 *            The target type
+	 * @param sourceObject The source object <code>s</code> to convert.
+	 * @param targetType The target type <code>T</code>.
 	 * 
 	 * @return <code>true</code> if the conversion is possible,
 	 *         <code>false</code> otherwise.
 	 */
-	boolean canConvert(Object s, ReifiedType T);
+	boolean canConvert(Object sourceObject, ReifiedType targetType);
 
 	/**
-	 * Convert an object to an instance of the given class.
+	 * Convert the specified object to an instance of the specified type.
 	 * 
-	 * @param s
-	 *            The source object to convert from
-	 * @param T
-	 *            The target type
-	 * @return an instance with a type that is assignable from T's raw class
-	 * @throws Exception
-	 *             If the conversion cannot succeed. This exception should not
-	 *             be thrown when the {@link #canConvert} method has returned
-	 *             <code>true</code>.
+	 * @param sourceObject The source object <code>s</code> to convert.
+	 * @param targetType The target type <code>T</code>.
+	 * @return An instance with a type that is assignable from targetType's raw
+	 *         class
+	 * @throws Exception If the conversion cannot succeed. This exception should
+	 *         not be thrown when the {@link #canConvert} method has returned
+	 *         <code>true</code>.
 	 */
-	Object convert(Object s, ReifiedType T) throws Exception;
-
+	Object convert(Object sourceObject, ReifiedType targetType)
+			throws Exception;
 }
\ No newline at end of file

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/EventConstants.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/EventConstants.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/EventConstants.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/EventConstants.java Mon Jul  6 19:50:26 2009
@@ -15,39 +15,44 @@
  */
 package org.osgi.service.blueprint.container;
 
-import org.osgi.framework.*;
-
 /**
  * Event property names used in Event Admin events published by a Blueprint
- * container.
+ * Container.
+ * 
+ * Each type of event is sent to a different topic:
  * 
- * Each type of event is sent to a different topic:<br/>
+ * <code>org/osgi/service/blueprint/container/</code><em>&lt;event-type&gt;</em>
  * 
- * <pre>
- *   org/osgi/service/blueprint/container/&lt;event-type&gt;
- * </pre>
+ * where <em>&lt;event-type&gt;</em> can have the values
+ * {@link BlueprintEvent#CREATING CREATING}, {@link BlueprintEvent#CREATED
+ * CREATED}, {@link BlueprintEvent#DESTROYING DESTROYING},
+ * {@link BlueprintEvent#DESTROYED DESTROYED}, {@link BlueprintEvent#FAILURE
+ * FAILURE}, {@link BlueprintEvent#GRACE_PERIOD GRACE_PERIOD}, or
+ * {@link BlueprintEvent#WAITING WAITING}.
  * 
- * where <code>&lt;event-type&gt;</code> can have the values
- * <code>CREATING</code>, <code>CREATED</code>, <code>DESTROYING</code>,
- * <code>DESTROYED</code>, <code>FAILURE</code>, <code>GRACE_PERIOD</code>
- * or <code>WAITING</code>. <br/> Such events have the following properties:
+ * Such events have the following properties:
  * <ul>
- * <li><code>type<code>
- *   <li><code>event<code>
- *   <li><code>timestamp<code>
- *   <li><code>bundle<code>
- *   <li><code>bundle.symbolicName<code>
- *   <li><code>bundle.id<code>
- *   <li><code>bundle.version<code>
- *   <li><code>extender.bundle<code>
- *   <li><code>extender.bundle.symbolicName<code>
- *   <li><code>extender.bundle.id<code>
- *   <li><code>extender.bundle.version<code>
- *   <li><code>dependencies<code>
- *   <li><code>cause<code>
+ * <li>{@link #TYPE type}</li>
+ * <li>{@link #EVENT event}</li>
+ * <li>{@link #TIMESTAMP timestamp}</li>
+ * <li>{@link #BUNDLE bundle}</li>
+ * <li>{@link #BUNDLE_SYMBOLICNAME bundle.symbolicName}</li>
+ * <li>{@link #BUNDLE_ID bundle.id}</li>
+ * <li>{@link #BUNDLE_VERSION bundle.version}</li>
+ * <li>{@link #EXTENDER_BUNDLE_SYMBOLICNAME extender.bundle.symbolicName}</li>
+ * <li>{@link #EXTENDER_BUNDLE_ID extender.bundle.id}</li>
+ * <li>{@link #EXTENDER_BUNDLE_VERSION extender.bundle.version}</li>
+ * <li>{@link #DEPENDENCIES dependencies}</li>
+ * <li>{@link #CAUSE cause}</li>
  * </ul>
+ * 
+ * @Immutable
+ * @version $Revision$
  */
-public interface EventConstants {
+public class EventConstants {
+	private EventConstants() {
+		// non-instantiable class
+	}
 
 	/**
 	 * The type of the event that has been issued. This property is of type
@@ -63,126 +68,118 @@
 	public static final String EVENT = "event";
 
 	/**
-	 * The type of the event that has been issued. This property is of type
+	 * The time the event was created. This property is of type
 	 * <code>Long</code>.
 	 */
 	public static final String TIMESTAMP = "timestamp";
 
 	/**
-	 * The bundle property defining the blueprint bundle for which an event has
-	 * been issued. This property is of type {@link org.osgi.framework.Bundle}.
-	 * 
-	 * @see Bundle
+	 * The Blueprint bundle associated with this event. This property is of type
+	 * <code>Bundle</code>.
 	 */
 	public static final String BUNDLE = "bundle";
 
 	/**
-	 * The bundle id property defining the id of the blueprint bundle for which
-	 * an event has been issued. This property is of type <code>Long</code>.
+	 * The bundle id of the Blueprint bundle associated with this event. This
+	 * property is of type <code>Long</code>.
 	 */
 	public static final String BUNDLE_ID = "bundle.id";
 
 	/**
-	 * The bundle symbolic name property defining the symbolic name of the
-	 * blueprint bundle for which an event has been issued. This property is of
-	 * type <code>String</code>.
+	 * The bundle symbolic name of the Blueprint bundle associated with this
+	 * event. This property is of type <code>String</code>.
 	 */
 	public static final String BUNDLE_SYMBOLICNAME = "bundle.symbolicName";
 
 	/**
-	 * The bundle id property defining the id of the blueprint bundle for which
-	 * an event has been issued. This property is of type <code>Version</code>.
+	 * The bundle version of the Blueprint bundle associated with this event.
+	 * This property is of type <code>Version</code>.
 	 */
 	public static final String BUNDLE_VERSION = "bundle.version";
 
 	/**
-	 * The extender bundle property defining the extender bundle processing the
-	 * Blueprint Container for which an event has been issued. This property is
-	 * of type {@link org.osgi.framework.Bundle}.
-	 * 
-	 * @see Bundle
+	 * The Blueprint extender bundle that is generating this event. This
+	 * property is of type <code>Bundle</code>.
 	 */
 	public static final String EXTENDER_BUNDLE = "extender.bundle";
 
 	/**
-	 * The Blueprint extender bundle id property defining the id of the extender bundle
-	 * processing the Blueprint Container for which an event has been issued.
-	 * This property is of type <code>Long</code>.
+	 * The bundle id of the Blueprint extender bundle that is generating this
+	 * event. This property is of type <code>Long</code>.
 	 */
 	public static final String EXTENDER_BUNDLE_ID = "extender.bundle.id";
 
 	/**
-	 * The extender bundle symbolic name property defining the symbolic name of
-	 * the extender bundle processing the Blueprint Container for which an event
-	 * has been issued. This property is of type <code>String</code>.
+	 * The bundle symbolic of the Blueprint extender bundle that is generating
+	 * this event. This property is of type <code>String</code>.
 	 */
 	public static final String EXTENDER_BUNDLE_SYMBOLICNAME = "extender.bundle.symbolicName";
 
 	/**
-	 * The Blueprint extender bundle version property defining the version of the Blueprint extender
-	 * bundle processing the Blueprint Container for which an event has been
-	 * issued. This property is of type <code>Version</code>.
+	 * The bundle version of the Blueprint extender bundle that is generating
+	 * this event. This property is of type <code>Version</code>.
 	 */
 	public static final String EXTENDER_BUNDLE_VERSION = "extender.bundle.version";
 
 	/**
-	 * The dependencies property containing an array of filters describing the
-	 * missing mandatory dependencies for a FAILED, GRACE_PERIOD or WAITING
-	 * event. This property is an array of <code>String</code>.
+	 * The filters identifying the missing dependencies that caused this event
+	 * for a {@link BlueprintEvent#FAILURE FAILURE},
+	 * {@link BlueprintEvent#GRACE_PERIOD GRACE_PERIOD}, or
+	 * {@link BlueprintEvent#WAITING WAITING} event. This property type is an
+	 * array of <code>String</code>.
 	 */
 	public static final String DEPENDENCIES = "dependencies";
 
 	/**
-	 * The exception property containing the cause for a FAILED event. This
+	 * The cause for a {@link BlueprintEvent#FAILURE FAILURE} event. This
 	 * property is of type <code>Throwable</code>.
 	 */
-	public static final String EXCEPTION = "exception";
+	public static final String CAUSE = "cause";
 
 	/**
 	 * Topic prefix for all events issued by the Blueprint Container
 	 */
-	public static final String TOPIC_BLUEPRINT_EVENTS = "org/osgi/service/blueprint";
+	public static final String TOPIC_BLUEPRINT_EVENTS = "org/osgi/service/blueprint/container";
 
 	/**
 	 * Topic for Blueprint Container CREATING events
 	 */
 	public static final String TOPIC_CREATING = TOPIC_BLUEPRINT_EVENTS
-			+ "/container/CREATING";
+			+ "/CREATING";
 
 	/**
 	 * Topic for Blueprint Container CREATED events
 	 */
 	public static final String TOPIC_CREATED = TOPIC_BLUEPRINT_EVENTS
-			+ "/container/CREATED";
+			+ "/CREATED";
 
 	/**
 	 * Topic for Blueprint Container DESTROYING events
 	 */
 	public static final String TOPIC_DESTROYING = TOPIC_BLUEPRINT_EVENTS
-			+ "/container/DESTROYING";
+			+ "/DESTROYING";
 
 	/**
 	 * Topic for Blueprint Container DESTROYED events
 	 */
 	public static final String TOPIC_DESTROYED = TOPIC_BLUEPRINT_EVENTS
-			+ "/container/DESTROYED";
+			+ "/DESTROYED";
 
 	/**
 	 * Topic for Blueprint Container FAILURE events
 	 */
 	public static final String TOPIC_FAILURE = TOPIC_BLUEPRINT_EVENTS
-			+ "/container/FAILURE";
+			+ "/FAILURE";
 
 	/**
 	 * Topic for Blueprint Container GRACE_PERIOD events
 	 */
 	public static final String TOPIC_GRACE_PERIOD = TOPIC_BLUEPRINT_EVENTS
-			+ "/container/GRACE_PERIOD";
+			+ "/GRACE_PERIOD";
 
 	/**
 	 * Topic for Blueprint Container WAITING events
 	 */
 	public static final String TOPIC_WAITING = TOPIC_BLUEPRINT_EVENTS
-			+ "/container/WAITING";
-
+			+ "/WAITING";
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/NoSuchComponentException.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/NoSuchComponentException.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/NoSuchComponentException.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/NoSuchComponentException.java Mon Jul  6 19:50:26 2009
@@ -16,45 +16,50 @@
 package org.osgi.service.blueprint.container;
 
 /**
- * Thrown when an attempt is made to lookup a component by id and no such
- * component exists in the Blueprint Container.
+ * A Blueprint exception indicating that a component does not exist in a
+ * Blueprint Container.
+ * 
+ * This exception is thrown when an attempt is made to create a component
+ * instance or lookup Component Metadata using a component id that does not
+ * exist in the Blueprint Container.
+ * 
+ * @version $Revision$
  */
 public class NoSuchComponentException extends RuntimeException {
-	private static final long serialVersionUID = 1L;
-
+	private static final long	serialVersionUID	= 1L;
 	/**
-	 * The id of the component request that generated the exception.
+	 * The requested component id that generated the exception.
 	 */
-	private final String managerId;
+	private final String		componentId;
 
 	/**
-	 * Create an exception for a single manager id request.
+	 * Create a No Such Component Exception for a non-existent component.
 	 * 
-	 * @param id
-	 *            The id of the non-existent manager.
+	 * @param msg The associated message.
+	 * @param id The id of the non-existent component.
 	 */
-	public NoSuchComponentException(String id) {
-		this.managerId = id;
+	public NoSuchComponentException(String msg, String id) {
+		super(msg);
+		this.componentId = id;
 	}
 
 	/**
-	 * Returns the manager id that generated the Exception.
+	 * Create a No Such Component Exception for a non-existent component.
 	 * 
-	 * @return The id of the component associated with an unresolved
-	 *         request.
+	 * @param id The id of the non-existent component.
 	 */
-	public String getComponentId() {
-		return this.managerId;
+	public NoSuchComponentException(String id) {
+		super("No component with id '" + (id == null ? "<null>" : id)
+				+ "' could be found");
+		this.componentId = id;
 	}
 
 	/**
-	 * Returns a human readable message associated with the exception.
+	 * Returns the id of the non-existent component.
 	 * 
-	 * @return The descriptive message for the exception.
+	 * @return The id of the non-existent component.
 	 */
-	public String getMessage() {
-		return "No manager with id '"
-				+ (this.managerId == null ? "<null>" : this.managerId)
-				+ "' could be found";
+	public String getComponentId() {
+		return componentId;
 	}
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ReifiedType.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ReifiedType.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ReifiedType.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ReifiedType.java Mon Jul  6 19:50:26 2009
@@ -16,99 +16,107 @@
 package org.osgi.service.blueprint.container;
 
 /**
- * Provides access to a concrete type and its optional generic type arguments.
+ * Provides access to a concrete type and its optional generic type parameters.
  * 
  * Java 5 and later support generic types. These types consist of a raw class
- * with type arguments. This class models such a <code>Type</code> class but
+ * with type parameters. This class models such a <code>Type</code> class but
  * ensures that the type is <em>reified</em>. Reification means that the Type
- * graph associated with a Java 5 <code>Type</code> instance is traversed
- * until the type becomes a concrete class. In Java 1.4 a class has no
- * arguments. This concrete class implements the Reified Type for Java 1.4.
+ * graph associated with a Java 5 <code>Type</code> instance is traversed until
+ * the type becomes a concrete class. This class is available with the
+ * {@link #getRawClass()} method. The optional type parameters are recursively
+ * represented as Reified Types.
+ * 
+ * In Java 1.4, a class has by definition no type parameters. This class
+ * implementation provides the Reified Type for Java 1.4 by making the raw class
+ * the Java 1.4 class and using a Reified Type based on the <code>Object</code>
+ * class for any requested type parameter.
+ * 
+ * A Blueprint extender implementations can subclass this class and provide
+ * access to the generic type parameter graph for conversion. Such a subclass
+ * must <em>reify</em> the different Java 5 <code>Type</code> instances into the
+ * reified form. That is, a form where the raw Class is available with its
+ * optional type parameters as Reified Types.
  * 
- * In Java 1.4, this class works with non-generic types. In that cases, a
- * Reified Type provides access to the class and has zero type arguments, though
- * a subclass that provide type arguments should be respected. Blueprint
- * extender implementations can subclass this class and provide access to the
- * generics type graph if used in a conversion. Such a subclass must
- * <em>reify<em> the different Java 5 <code>Type</code> instances into the 
- * reified form. That is, a form where the raw Class is available with its optional type arguments as Reified Types.
- *
  * @Immutable
+ * @version $Revision$
  */
 public class ReifiedType {
-	final static ReifiedType ALL = new ReifiedType(Object.class);
+	private final static ReifiedType	OBJECT	= new ReifiedType(Object.class);
 
-	private final Class clazz;
+	private final Class					clazz;
 
 	/**
-	 * Create a Reified Type for a raw Java class without any generic arguments.
-	 * Subclasses can provide the optional generic argument information. Without
-	 * subclassing, this instance has no type arguments.
+	 * Create a Reified Type for a raw Java class without any generic type
+	 * parameters. Subclasses can provide the optional generic type parameter
+	 * information. Without subclassing, this instance has no type parameters.
 	 * 
-	 * @param clazz
-	 *            The raw class of the Reified Type.
+	 * @param clazz The raw class of the Reified Type.
 	 */
 	public ReifiedType(Class clazz) {
 		this.clazz = clazz;
 	}
 
 	/**
-	 * Access to the raw class.
+	 * Return the raw class represented by this type.
 	 * 
 	 * The raw class represents the concrete class that is associated with a
 	 * type declaration. This class could have been deduced from the generics
-	 * type graph of the declaration. For example, in the following example:
+	 * type parameter graph of the declaration. For example, in the following
+	 * example:
 	 * 
 	 * <pre>
-	 * Map&lt;String, Object&gt; map;
+	 * Map&lt;String, ? extends Metadata&gt;	map;
 	 * </pre>
 	 * 
 	 * The raw class is the Map class.
 	 * 
-	 * @return the collapsed raw class that represents this type.
+	 * @return The raw class represented by this type.
 	 */
 	public Class getRawClass() {
 		return clazz;
 	}
 
 	/**
-	 * Access to a type argument.
+	 * Return a type parameter for this type.
 	 * 
-	 * The type argument refers to a argument in a generic type declaration
-	 * given by index <code>i</code>. This method returns a Reified Type that
-	 * has Object as class when no generic type information is available. Any
-	 * object is assignable to Object and therefore no conversion is then
-	 * necessary, this is compatible with older Javas than 5. For this reason,
-	 * the implementation in this class always returns the
-	 * <code>Object<code> class, regardless of the given index.
-	 * 
-	 * This method should be overridden by a subclass that provides access to
-	 * the generic information.
+	 * The type parameter refers to a parameter in a generic type declaration
+	 * given by the zero-based index <code>i</code>.
 	 * 
 	 * For example, in the following example:
 	 * 
 	 * <pre>
-	 * Map&lt;String, Object&gt; map;
+	 * Map&lt;String, ? extends Metadata&gt;	map;
 	 * </pre>
 	 * 
-	 * The type argument 0 is <code>String</code>, and type argument 1 is
-	 * <code>Object</code>.
+	 * type parameter 0 is <code>String</code>, and type parameter 1 is
+	 * <code>Metadata</code>.
+	 * 
+	 * <p>
+	 * This implementation returns a Reified Type that has <code>Object</code>
+	 * as class. Any object is assignable to Object and therefore no conversion
+	 * is then necessary. This is compatible with versions of Java language
+	 * prior to Java 5.
+	 * 
+	 * This method should be overridden by a subclass that provides access to
+	 * the generic type parameter information for Java 5 and later.
 	 * 
-	 * @param i
-	 *            The index of the type argument
-	 * @return <code>ReifiedType(Object.class)<code>, subclasses must override this and return the generic argument at index <code>i</code>
+	 * @param i The zero-based index of the requested type parameter.
+	 * @return The <code>ReifiedType</code> for the generic type parameter at
+	 *         the specified index.
 	 */
 	public ReifiedType getActualTypeArgument(int i) {
-		return ALL;
+		return OBJECT;
 	}
 
 	/**
-	 * Return the number of type arguments.
+	 * Return the number of type parameters for this type.
 	 * 
-	 * This method should be overridden by a subclass to support Java 5 types.
+	 * <p>
+	 * This implementation returns <code>0</code>. This method should be
+	 * overridden by a subclass that provides access to the generic type
+	 * parameter information for Java 5 and later.
 	 * 
-	 * @return 0, subclasses must override this and return the number of generic
-	 *         arguments
+	 * @return The number of type parameters for this type.
 	 */
 	public int size() {
 		return 0;

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ServiceUnavailableException.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ServiceUnavailableException.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ServiceUnavailableException.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/ServiceUnavailableException.java Mon Jul  6 19:50:26 2009
@@ -18,24 +18,25 @@
 import org.osgi.framework.ServiceException;
 
 /**
- * Thrown when an invocation is made on a service reference, and
- * a backing service is not available.
+ * A Blueprint exception indicating that a service is unavailable.
+ * 
+ * This exception is thrown when an invocation is made on a service reference
+ * and a backing service is not available.
+ * 
+ * @version $Revision$
  */
 public class ServiceUnavailableException extends ServiceException {
-	private static final long serialVersionUID = 1L;
-
+	private static final long	serialVersionUID	= 1L;
 	/**
 	 * The filter string associated with the exception.
 	 */
-	private final String filter;
+	private final String		filter;
 
 	/**
 	 * Creates a Service Unavailable Exception with the specified message.
 	 * 
-	 * @param message
-	 *            The associated message.
-	 * @param filter
-	 *            The filter used for the service lookup.
+	 * @param message The associated message.
+	 * @param filter The filter used for the service lookup.
 	 */
 	public ServiceUnavailableException(String message, String filter) {
 		super(message, UNREGISTERED);
@@ -46,12 +47,9 @@
 	 * Creates a Service Unavailable Exception with the specified message and
 	 * exception cause.
 	 * 
-	 * @param message
-	 *            The associated message.
-	 * @param filter
-	 *            The filter used for the service lookup.
-	 * @param cause
-	 *            The cause of this exception.
+	 * @param message The associated message.
+	 * @param filter The filter used for the service lookup.
+	 * @param cause The cause of this exception.
 	 */
 	public ServiceUnavailableException(String message, String filter,
 			Throwable cause) {

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/package.html
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/package.html?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/package.html (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/package.html Mon Jul  6 19:50:26 2009
@@ -1,6 +1,6 @@
-<!-- $Revision: 5654 $ -->
+<!-- $Revision$ -->
 <BODY>
-<p>Blueprint Service Container Package Version 1.0.</p>
+<p>Blueprint Container Package Version 1.0.</p>
 <p>Bundles wishing to use this package must list the package
 in the Import-Package header of the bundle's manifest.
 For example:</p>
@@ -8,14 +8,14 @@
 Import-Package: org.osgi.service.blueprint.container; version=&quot;[1.0,2.0)&quot;
 </pre>
 <p>
-	This package defines the primary interface to a blueprint container,
+	This package defines the primary interface to a Blueprint Container,
 	<code>BlueprintContainer</code>. An instance of this type is available
-        inside a blueprint context as an implicitly defined component with name
-        "blueprintContainer".
+        inside a Blueprint Container as an implicitly defined component with the name
+        &quot;blueprintContainer&quot;.
 </p>
 <p>
-	This package also declares the supporting exception types, listener, and constants for working with a blueprint
-	container.
+	This package also declares the supporting exception types, listener, and constants for working with a Blueprint
+	Container.
 </p>
 </BODY>
 

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/packageinfo
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/packageinfo?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/packageinfo (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/container/packageinfo Mon Jul  6 19:50:26 2009
@@ -1 +1 @@
-version 1.0
+version 1.0

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java Mon Jul  6 19:50:26 2009
@@ -16,41 +16,49 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Metadata used in a Bean Manager to inject arguments in a method or
- * constructor. This Metadata class describes the <code>argument</element>
+ * Metadata for a Bean Manager to describe the injection of arguments in a
+ * method or constructor, it is obtained from the
+ * {@link BeanMetadata#getArguments()}. This Metadata class describes the
+ * <code>argument</code> element of the <code>bean</code> element.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface BeanArgument {
 
 	/**
 	 * The Metadata for the value to inject into the argument.
-	 *
+	 * 
 	 * This is the <code>value</code> attribute.
-	 *
+	 * 
 	 * @return the Metadata for the value
 	 */
 	Metadata getValue();
 
 	/**
-	 * The type to convert the value into when invoking the constructor or
-	 * factory method. If no explicit type was specified on the
-	 * definition then this method returns <code>null</code>.
-	 *
+	 * The type to match the argument and convert the value into when invoking
+	 * the constructor or factory method. If no explicit type was specified on
+	 * the definition then this method returns <code>null</code>.
+	 * 
 	 * This is the <code>type</code> attribute.
-	 *
-	 * @return the explicitly specified type to convert the value into, or <code>null</code>
-	 *         if no type was specified in the definition.
+	 * 
+	 * @return the explicitly specified type to convert the value into, or
+	 *         <code>null</code> if no type was specified in the definition.
 	 */
 	String getValueType();
 
 	/**
 	 * The (zero-based) index into the parameter list of the method or
-	 * constructor to be invoked for this argument. This is determined either
-	 * by explicitly specifying the <code>index</code> attribute in the component
-	 * declaration.  If not explicitly set, this will return -1.
-	 *
+	 * constructor to be invoked for this argument. This is determined either by
+	 * explicitly specifying the <code>index</code> attribute in the component
+	 * declaration. If not explicitly set, this will return -1 and the initial
+	 * ordering is defined by its position in the
+	 * {@link BeanMetadata#getArguments()} list.
+	 * 
 	 * This is the <code>index</code> attribute.
-	 *
-	 * @return the zero-based parameter index, or -1 if the argument position was not set.
+	 * 
+	 * @return the zero-based parameter index, or -1 if the argument position
+	 *         was not set.
 	 */
 	int getIndex();
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java Mon Jul  6 19:50:26 2009
@@ -20,6 +20,8 @@
 /**
  * Metadata for a Bean Manager.
  * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface BeanMetadata extends Target, ComponentMetadata {
 
@@ -71,13 +73,14 @@
 	 * 
 	 * Specified in all the child
 	 * <code>argument<code> elements. The return is a list of {@link BeanArgument} objects.
-	 *
-	 * @return The arguments Metadata for the factory method or constructor, can be empty if no arguments are specified
+	 * 
+	 * @return List of Bean Arguments for the factory method or constructor, can
+	 *         be empty if no arguments are specified
 	 */
 	List<BeanArgument> getArguments();
 
 	/**
-	 * The property injection Metadata for this component.
+	 * The property injection {@link BeanProperty} Metadata for this bean.
 	 * 
 	 * Specified in all the child <code>property</code> elements.
 	 * 
@@ -101,7 +104,8 @@
 	 * The component instance on which to invoke the factory method (if
 	 * specified).
 	 * 
-	 * The component is defined in the <code>factory-component</code>.
+	 * The to be used component instance is referred to by the
+	 * <code>factory-component</code>.
 	 * 
 	 * When a factory method and factory ref has been specified for this
 	 * component, this operation returns the Metadata specifying the manager on
@@ -109,12 +113,13 @@
 	 * factory component has been specified this operation will return
 	 * <code>null</code>.
 	 * 
-	 * A return value of <code>null with a <code>non-null</code> factory method indicates that the
-	 * factory method should be invoked as a static method on the given
-	 * class itself. For a <code>non-null</code> return value, the Metadata returned
-	 * will be a {@link Target} instance.
+	 * A return value of <code>null with a <code>non-null</code> factory method
+	 * indicates that the factory method should be invoked as a static method on
+	 * the given class itself. For a <code>non-null</code> return value, the
+	 * Metadata returned will be a {@link Target} instance.
 	 * 
-	 * @return A {@link Target} or <code>null</code> if no factory component was specified.
+	 * @return A {@link Target} or <code>null</code> if no factory component was
+	 *         specified.
 	 */
 	Target getFactoryComponent();
 

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java Mon Jul  6 19:50:26 2009
@@ -17,12 +17,16 @@
 
 /**
  * Metadata describing a property to be injected. Properties are defined
- * following Java Beans conventions.
+ * according to the Java Beans conventions.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface BeanProperty {
 
 	/**
-	 * The name of the property to be injected, following Java Beans conventions.
+	 * The name of the property to be injected, following Java Beans
+	 * conventions.
 	 * 
 	 * Defined in the <code>name</code> attribute.
 	 * 

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java Mon Jul  6 19:50:26 2009
@@ -19,8 +19,11 @@
 
 /**
  * Metadata for a collection based value. Members of the collection are
- * instances of Metadata. This Metadata can constrain the members to a specific
- * type.
+ * instances of Metadata. This Collection Metadata can constrain the members of
+ * its collection to a specific type.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 
 public interface CollectionMetadata extends NonNullMetadata {
@@ -47,7 +50,7 @@
 	String getValueType();
 
 	/**
-	 * The of Metadata that describe the actual Collection or array.
+	 * The Metadata that describe the member values of the Collection or array.
 	 * 
 	 * @return A list of Metadata for the values of a collection or array.
 	 */

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java Mon Jul  6 19:50:26 2009
@@ -19,51 +19,53 @@
 
 /**
  * Base class for all managers.
- *
+ * 
  * @see BeanMetadata
  * @see ServiceReferenceMetadata
  * @see ServiceMetadata
  * @see Target
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface ComponentMetadata extends NonNullMetadata {
 
 	/**
 	 * The manager will be eagerly activate
 	 */
-	static final int ACTIVATION_EAGER = 1;
+	static final int	ACTIVATION_EAGER	= 1;
 
 	/**
- 	 * The manager will be lazily activated
- 	 */
-	static final int ACTIVATION_LAZY = 2;
+	 * The manager will be lazily activated
+	 */
+	static final int	ACTIVATION_LAZY		= 2;
 
 	/**
 	 * The id of the manager.
-	 *
-	 * @return manager id. The manager id can be <code>null</code> if this
-	 *         is an anonymously defined and/or inlined manager.
+	 * 
+	 * @return manager id. The manager id can be <code>null</code> if this is an
+	 *         anonymously defined and/or inlined manager.
 	 */
 	String getId();
 
 	/**
- 	 * Activation strategy for this manager.
- 	 *
- 	 * This is the <code>activation</code> attribute or the
- 	 * <code>default-activation</code> in the <code>blueprint</code> element
- 	 * if not set. If this is also not set, it is {@link #ACTIVATION_EAGER}.
- 	 *
- 	 * @return the activation method
- 	 * @see #ACTIVATION_EAGER
- 	 * @see #ACTIVATION_LAZY
- 	 */
+	 * Activation strategy for this manager.
+	 * 
+	 * This is the <code>activation</code> attribute or the
+	 * <code>default-activation</code> in the <code>blueprint</code> element if
+	 * not set. If this is also not set, it is {@link #ACTIVATION_EAGER}.
+	 * 
+	 * @return the activation method
+	 * @see #ACTIVATION_EAGER
+	 * @see #ACTIVATION_LAZY
+	 */
 	int getActivation();
 
 	/**
-	 * The id of any managers listed in a <code>depends-on</code> attribute for this
-	 * manager.
-	 *
-	 * @return an immutable List of manager ids that are
-	 *         explicitly declared as a dependency, or an empty List if none.
+	 * The id of any managers listed in a <code>depends-on</code> attribute for
+	 * this manager.
+	 * 
+	 * @return an immutable List of manager ids that are explicitly declared as
+	 *         a dependency, or an empty List if none.
 	 */
 	List<String> getDependsOn();
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java Mon Jul  6 19:50:26 2009
@@ -16,9 +16,12 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * A value which represents the id of another manager in the Blueprint Container.
- * The id itself will be injected, not the manager that the id refers to.
+ * A value which represents the verified id of another manager in the Blueprint
+ * Container. The id itself will be injected, not the manager that the id refers
+ * to. No implicit dependency is created.
  * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface IdRefMetadata extends NonNullMetadata {
 	/**

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java Mon Jul  6 19:50:26 2009
@@ -17,17 +17,18 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Metadata for an entry. An entry is the member of a {@link MapMetadata} so that it can
- * be treated as a {@link CollectionMetadata} with entries.
+ * Metadata for a map entry. A map entry is the member of a {@link MapMetadata} List, so
+ * that it can be treated as a {@link CollectionMetadata} with entries.
  * 
  * Defined in the <code>entry</code> element.
  * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface MapEntry {
 	/**
 	 * Keys must be <code>non-null</code>.
 	 * 
-	 * 
 	 * Defined in the <code>key</code> attribute or element.
 	 * 
 	 * @return the Metadata for the key

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java Mon Jul  6 19:50:26 2009
@@ -22,6 +22,8 @@
  * 
  * A Map is defined in the <code>map</code> element.
  * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface MapMetadata extends NonNullMetadata {
 	/**

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java Mon Jul  6 19:50:26 2009
@@ -18,7 +18,9 @@
 /**
  * Top level Metadata.
  * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface Metadata {
-
+	// marker interface
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java Mon Jul  6 19:50:26 2009
@@ -16,9 +16,13 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Base interfaces for Metadata that cannot result in a <code>null</code>
- * value. The {@link NullMetadata} is the only element not implementing this.
- * Mainly used for keys in Maps because they cannot be <code>null</code>.
+ * Base interfaces for Metadata that cannot result in a <code>null</code> value.
+ * The {@link NullMetadata} is the only element not implementing this. Mainly
+ * used for keys in Maps because they cannot be <code>null</code>.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface NonNullMetadata extends Metadata {
+	// marker interface
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java Mon Jul  6 19:50:26 2009
@@ -17,12 +17,16 @@
 
 /**
  * A value specified to be <code>null</code> via the &lt;null/&gt; element.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface NullMetadata extends Metadata {
 
 	/**
 	 * Singleton instance of the <code>NULL</code> Metadata.
 	 */
-	static final NullMetadata NULL = new NullMetadata() {
-	};
+	static final NullMetadata	NULL	= new NullMetadata() {
+											// empty body
+										};
 }

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java Mon Jul  6 19:50:26 2009
@@ -18,11 +18,13 @@
 import java.util.List;
 
 /**
- * A <code>java.util.Properties</code> based value. The properties are
- * defined as string to string.
+ * A <code>java.util.Properties</code> based value. The properties are defined
+ * as string to string.
  * 
  * Defined in the <code>props</code> element.
  * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface PropsMetadata extends NonNullMetadata {
 

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java Mon Jul  6 19:50:26 2009
@@ -17,6 +17,9 @@
 
 /**
  * A value which refers by its id to another manager in the Blueprint Container.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface RefMetadata extends Target, NonNullMetadata {
 	/**

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListMetadata.java Mon Jul  6 19:50:26 2009
@@ -16,26 +16,28 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * A reference-list Metadata
+ * A reference-list Metadata.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface ReferenceListMetadata extends ServiceReferenceMetadata {
 
 	/**
 	 * The List member types must be the proxies to the service objects
 	 */
-	public static final int USE_SERVICE_OBJECT = 1;
+	public static final int	USE_SERVICE_OBJECT		= 1;
 
 	/**
- 	 * The List member types must be Service Reference objects
- 	 */
-	public static final int USE_SERVICE_REFERENCE = 2;
+	 * The List member types must be Service Reference objects
+	 */
+	public static final int	USE_SERVICE_REFERENCE	= 2;
 
 	/**
 	 * Whether the collection will contain service objects, or service
-	 * references
-	 * Defined in the <code>member-type</code> attribute.
-	 *
-	 * @return one of USE_SERVICE_OBJECT and USE_SERVICE_REFERENCE
+	 * references Defined in the <code>member-type</code> attribute.
+	 * 
+	 * @return one of {@link #USE_SERVICE_OBJECT} and {@link #USE_SERVICE_REFERENCE}
 	 * @see #USE_SERVICE_OBJECT
 	 * @see #USE_SERVICE_REFERENCE
 	 */

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListener.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListener.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListener.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceListener.java Mon Jul  6 19:50:26 2009
@@ -16,15 +16,18 @@
 package org.osgi.service.blueprint.reflect;
 
 /**
- * Metadata for a reference listener interested in the reference bind and unbind events for a
- * service reference.
+ * Metadata for a reference listener interested in the reference bind and unbind
+ * events for a service reference.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface ReferenceListener {
 
 	/**
 	 * The component instance that will receive bind and unbind events. The
-	 * returned value must reference a {@link Target} either directly
-	 * or indirectly.
+	 * returned value must reference a {@link Target} either directly or
+	 * indirectly.
 	 * 
 	 * Defined in the <code>ref</code> attribute or via an inlined manager.
 	 * 

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java Mon Jul  6 19:50:26 2009
@@ -22,12 +22,14 @@
  * 
  * Defines the <code>reference</code> element.
  * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface ReferenceMetadata extends ServiceReferenceMetadata, Target {
 
 	/**
-	 * Timeout for service invocations when a backing service is
-	 * is unavailable. Defined in the <code>timeout</code> attribute.
+	 * Timeout for service invocations when a backing service is is unavailable.
+	 * Defined in the <code>timeout</code> attribute.
 	 * 
 	 * @return service invocation timeout in milliseconds
 	 */

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java Mon Jul  6 19:50:26 2009
@@ -17,7 +17,11 @@
 
 /**
  * Metadata for a registration listener interested in service registration and
- * unregistration events.
+ * unregistration events. Available from the
+ * {@link ServiceMetadata#getRegistrationListeners()} method.
+ * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface RegistrationListener {
 
@@ -27,7 +31,8 @@
 	 * directly or indirectly. The return type will be a {@link Target}
 	 * instance.
 	 * 
-	 * Defined in the <code>registration-listener</code> child element.
+	 * Defined in the <code>registration-listener</code> child element of the
+	 * <code>service</code> element.
 	 * 
 	 * @return The registration listener target.
 	 */

Modified: geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java?rev=791585&r1=791584&r2=791585&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java (original)
+++ geronimo/sandbox/blueprint/blueprint-api/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java Mon Jul  6 19:50:26 2009
@@ -19,8 +19,11 @@
 import java.util.List;
 
 /**
- * Metadata representing a service to registered by the Blueprint Container.
+ * Metadata representing a service to registered by the Blueprint Container when
+ * enabled.
  * 
+ * @ThreadSafe
+ * @version $Revision$
  */
 public interface ServiceMetadata extends ComponentMetadata {
 
@@ -72,8 +75,8 @@
 	 * Defined in the <code>interface</code> attribute or
 	 * <code>interfaces</code> element.
 	 * 
-	 * @return an immutable set of (<code>String</code>) interface names, or an
-	 *         empty set if using <code>auto-export</code> or not set.
+	 * @return an immutable set of (<code>String</code>) interface names, or
+	 *         an empty set if using <code>auto-export</code> or not set.
 	 */
 	List<String> getInterfaces();
 
@@ -94,7 +97,8 @@
 	 * 
 	 * Defined in the <code>service-properties</code> element.
 	 * 
-	 * @return <code>List</code> containing {@link MapEntry} objects, can be empty.
+	 * @return <code>List</code> containing {@link MapEntry} objects, can be
+	 *         empty.
 	 */
 	List<MapEntry> getServiceProperties();
 
@@ -109,8 +113,8 @@
 	int getRanking();
 
 	/**
-	 * The registration listeners to be notified when the
-	 * service is registered and unregistered with the framework.
+	 * The registration listeners to be notified when the service is registered
+	 * and unregistered with the framework.
 	 * 
 	 * Defined in the <code>registration-listener</code> elements.
 	 *