[jboss-cvs] JBossAS SVN: r88808 - in projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service: blueprint and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed May 13 07:50:27 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-05-13 07:50:27 -0400 (Wed, 13 May 2009)
New Revision: 88808

Added:
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/BlueprintContext.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/BlueprintContextListener.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/ComponentDefinitionException.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/EventConstants.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/NoSuchComponentException.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/ServiceUnavailableException.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/package.html
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/packageinfo
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/ConversionService.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/Converter.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/package.html
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/packageinfo
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ComponentDefinitionRegistry.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ComponentNameAlreadyInUseException.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/NamespaceHandler.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ParserContext.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/package.html
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/packageinfo
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Listener.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RefCollectionMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Target.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ValueMetadata.java
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/package.html
   projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/packageinfo
Log:
update blueprint api

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/BlueprintContext.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/BlueprintContext.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/BlueprintContext.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.context;
+
+import java.util.Collection;
+import java.util.Set;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
+
+/**
+ * BlueprintContext providing access to the components, service exports, and
+ * service references of a bundle using blueprint services. Only bundles in the
+ * ACTIVE state may have an associated BlueprintContext. A given BundleContext
+ * has at most one associated BlueprintContext.
+ *
+ * An instance of BlueprintContext may be obtained from within a blueprint context by
+ * injecting the predefined "blueprintContext" component.
+ * Alternatively you can look up BlueprintContext services in the service registry.
+ * The Constants.BUNDLE_SYMBOLICNAME and Constants.BUNDLE_VERSION service
+ * properties can be used to determine which bundle the published BlueprintContext
+ * service is associated with.
+ *
+ * A BlueprintContext implementation must support safe concurrent access. It is
+ * legal for the set of named components and component metadata to change
+ * between invocations on the same thread if another thread is concurrently
+ * modifying the same mutable BlueprintContext implementation object.
+ *
+ * @see org.osgi.framework.Constants
+ *
+ */
+public interface BlueprintContext {
+
+	/**
+	 * reason code for destroy method callback of a managed service factory
+	 * created component, when the component is being disposed because the
+	 * corresponding configuration admin object was deleted.
+	 */
+	static final int CONFIGURATION_ADMIN_OBJECT_DELETED = 1;
+
+	/**
+	 * reason code for destroy method callback of a managed service factory
+	 * created component, when the component is being disposed because the
+	 * bundle is being stopped.
+	 */
+	static final int BUNDLE_STOPPING = 2;
+
+	/**
+	 * The set of component names recognized by the blueprint context.
+	 *
+	 * @return an immutable set (of Strings) containing the names of all of the components within the
+	 * context.
+	 */
+	Set getComponentNames();
+
+	/**
+	 * Get the component instance for a given named component. If the component has
+	 * not yet been instantiated, calling this operation will cause the component instance
+	 * to be created and initialized. If the component
+	 * has a prototype scope then each call to getComponent will return a new
+	 * component instance. If the component has a bundle scope then the component
+	 * instance returned will be the instance for the caller's bundle (and that
+	 * instance will be instantiated if it has not already been created).
+	 *
+	 * Note: calling getComponent from logic executing during the instantiation and
+	 * configuration of a component, before the init method (if specified) has returned,
+	 * may trigger a circular dependency (for a trivial example, consider a component
+	 * that looks itself up by name during its init method). Implementations of the
+	 * Blueprint Service are not required to support cycles in the dependency graph
+	 * and may throw an exception if a cycle is detected. Implementations that can
+	 * support certain kinds of cycles are free to do so.
+	 *
+	 * @param name the name of the component for which the instance is to be
+	 * retrieved.
+	 *
+	 * @return the component instance, the type of the returned object is
+	 * dependent on the component definition, and may be determined by
+	 * introspecting the component metadata.
+	 *
+	 * @throws NoSuchComponentException if the name specified is not the
+	 * name of a component within the context.
+	 */
+	Object getComponent(String name);
+
+	/**
+	 * Get the component metadata for a given named component.
+	 *
+	 * @param name the name of the component for which the metadata is to be
+	 * retrieved.
+	 *
+	 * @return the component metadata for the component.
+	 *
+	 * @throws NoSuchComponentException if the name specified is not the
+	 * name of a component within the context.
+	 */
+	ComponentMetadata getComponentMetadata(String name);
+
+	/**
+	 * Get the service reference metadata for every OSGi service referenced by
+	 * this context.
+	 *
+	 * @return an immutable collection of ServiceComponentMetadata, with one entry for each referenced service.
+	 */
+	Collection /*<ServiceReferenceMetadata>*/ getReferencedServicesMetadata();
+
+	/**
+	 * Get the service export metadata for every service exported by this
+	 * context.
+	 *
+	 * @return an immutable collection of ServiceMetadata, with one entry for each service export.
+	 */
+	Collection /*<ServiceMetadata>*/ getExportedServicesMetadata();
+
+	/**
+	 * Get the metadata for all components defined locally within this context.
+	 *
+	 * @return an immutable collection of BeanMetadata, with one entry for each component.
+	 */
+	Collection /*<BeanMetadata>*/ getBeanComponentsMetadata();
+
+	/**
+	 * Get the bundle context of the bundle this blueprint context is associated
+	 * with.
+	 *
+	 * @return the blueprint context's bundle context
+	 */
+	BundleContext getBundleContext();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/BlueprintContext.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/BlueprintContextListener.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/BlueprintContextListener.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/BlueprintContextListener.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.context;
+
+import org.osgi.framework.Bundle;
+
+public interface BlueprintContextListener {
+
+	void contextCreated(Bundle forBundle);
+
+	void contextCreationFailed(Bundle forBundle, Throwable rootCause);
+
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/BlueprintContextListener.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/ComponentDefinitionException.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/ComponentDefinitionException.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/ComponentDefinitionException.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.context;
+
+/**
+ * Exception thrown when a configuration-related error occurs during
+ * creation of a module context. 
+ */
+public class ComponentDefinitionException extends RuntimeException {
+
+	public ComponentDefinitionException(String explanation) {
+		super(explanation);
+	}
+	
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/ComponentDefinitionException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/EventConstants.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/EventConstants.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/EventConstants.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.context;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.Version;
+
+/**
+ * Event property names used in EventAdmin events published for a
+ * module context.
+ *
+ */
+public interface EventConstants {
+	/**
+	 * The extender bundle property defining the extender bundle processing the
+	 * module context for which an event has been issued.
+	 *
+	 * @see Bundle
+	 */
+	public static final String EXTENDER_BUNDLE = "extender.bundle";
+
+	/**
+	 * The extender bundle id property defining the id of the extender bundle
+	 * processing the module context for which an event has been issued.
+	 */
+	public static final String EXTENDER_ID = "extender.bundle.id";
+
+	/**
+	 * The extender bundle symbolic name property defining the symbolic name of
+	 * the extender bundle processing the module context for which an event
+	 * has been issued.
+	 */
+	public static final String EXTENDER_SYMBOLICNAME = "extender.bundle.symbolicName";
+
+	/**
+	 * Topic prefix for all events issued by the Blueprint Service
+	 */
+	public static final String TOPIC_BLUEPRINT_EVENTS = "org/osgi/service/blueprint";
+
+	/**
+	 * Topic for Blueprint Service CREATING events
+	 */
+	public static final String TOPIC_CREATING = TOPIC_BLUEPRINT_EVENTS + "/context/CREATING";
+
+	/**
+ 	 * Topic for Blueprint Service CREATED events
+ 	 */
+	public static final String TOPIC_CREATED = TOPIC_BLUEPRINT_EVENTS + "/context/CREATED";
+
+	/**
+ 	 * Topic for Blueprint Service DESTROYING events
+ 	 */
+	public static final String TOPIC_DESTROYING = TOPIC_BLUEPRINT_EVENTS + "/context/DESTROYING";
+
+	/**
+	 * Topic for Blueprint Service DESTROYED events
+	 */
+	public static final String TOPIC_DESTROYED = TOPIC_BLUEPRINT_EVENTS + "/context/DESTROYED";
+
+	/**
+	 * Topic for Blueprint Service WAITING events
+	 */
+	public static final String TOPIC_WAITING = TOPIC_BLUEPRINT_EVENTS + "/context/WAITING";
+
+	/**
+	 * Topic for Blueprint Service FAILURE events
+	 */
+	public static final String TOPIC_FAILURE = TOPIC_BLUEPRINT_EVENTS + "/context/FAILURE";
+
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/EventConstants.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/NoSuchComponentException.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/NoSuchComponentException.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/NoSuchComponentException.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.context;
+
+/**
+ * Thrown when an attempt is made to lookup a component by name and no such named
+ * component exists in the module context.
+ */
+public class NoSuchComponentException extends RuntimeException {
+
+	private final String componentName;
+	
+	public NoSuchComponentException(String componentName) {
+		this.componentName = componentName;
+	}
+	
+	public String getComponentName() {
+		return this.componentName;
+	}
+
+	public String getMessage() {
+		return "No component named '" + 
+		       (this.componentName == null ? "<null>" : this.componentName) + 
+		       "' could be found";
+	}
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/NoSuchComponentException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/ServiceUnavailableException.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/ServiceUnavailableException.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/ServiceUnavailableException.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.context;
+
+/**
+ * Thrown when an invocation is made on an OSGi service reference component, and 
+ * a backing service is not available.
+ */
+public class ServiceUnavailableException extends RuntimeException {
+
+	private final Class serviceType;
+	private final String filter;
+	
+	public ServiceUnavailableException(
+           String message,
+           Class serviceType,
+           String filterExpression) {
+		super(message);
+		this.serviceType = serviceType;
+		this.filter = filterExpression;
+	}
+  
+	/**
+	 * The type of the service that would have needed to be available in 
+	 * order for the invocation to proceed.
+	 */
+	public Class getServiceType() {
+		return this.serviceType;
+	}
+ 
+	/**
+	 * The filter expression that a service would have needed to satisfy in order
+	 * for the invocation to proceed.
+	 */
+	public String getFilter() {
+		return this.filter;
+	}
+}
+


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/ServiceUnavailableException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/package.html
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/package.html	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/package.html	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,19 @@
+<!-- $Revision: 5654 $ -->
+<BODY>
+<p>Blueprint Service Context 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>
+<pre>
+Import-Package: org.osgi.service.blueprint.context; version=&quot;[1.0,2.0)&quot;
+</pre>
+<p>
+	This package defines the primary interface to a blueprint context, <code>BlueprintContext</code>. An instance of this
+	type is available inside a blueprint context as an implicitly defined component with name "blueprintContext".
+</p>
+<p>
+	This package also declares the supporting exception types, listener, and constants for working with a blueprint
+	context.
+</p>
+</BODY>
+

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/packageinfo
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/packageinfo	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/context/packageinfo	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1 @@
+version 1.0

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/ConversionService.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/ConversionService.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/ConversionService.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.convert;
+
+/**
+ * Provides access to the type conversions (both predefined and user registered)
+ * that are defined for the module context
+ */
+public interface ConversionService {
+	
+	/**
+	 * Convert an object to an instance of the given class, using the built-in and 
+	 * user-registered type converters as necessary.
+	 * @param fromValue the object to be converted
+	 * @param toType the type that the instance is to be converted to
+	 * @return an instance of the class 'toType'
+	 * @throws Exception if the conversion cannot succeed. This exception is
+	 * checked because callers should expect that not all source objects
+	 * can be successfully converted.
+	 */
+	Object convert(Object fromValue, Class toType) throws Exception;
+	
+}
\ No newline at end of file


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/ConversionService.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/Converter.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/Converter.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/Converter.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.convert;
+
+/**
+ * Implemented by type converters that extend the type conversion
+ * capabilties of a module context container.
+ */
+public interface Converter {
+	
+	/**
+	 * The type that this converter converts String values into.
+	 * @return Class object for the class that this converter converts to
+	 */
+	Class getTargetClass();
+
+	/**
+	 * Convert an object to an instance of the target class.
+	 * @param source the object to be converted
+	 * @return an instance of the class returned by getTargetClass
+	 * @throws Exception if the conversion cannot succeed. This exception is
+	 * checked because callers should expect that not all source objects
+	 * can be successfully converted.
+	 */
+	Object convert(Object source) throws Exception;
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/Converter.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/package.html
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/package.html	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/package.html	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,16 @@
+<!-- $Revision: 5654 $ -->
+<BODY>
+<p>Blueprint Service Type Conversion Package Version 1.0.
+<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: org.osgi.service.blueprint.convert; version=&quot;[1.0,2.0)&quot;
+</pre>
+<p> This package defines the <code>Converter</code> interface used to implement
+	type converters, and the <code>ConversionService</code> interface that provides access
+	to registered type converters. A module context contains an implicitly defined 
+	component "conversionService" that is an instance of <code>ConversionService</code>.
+</p>
+</BODY>
+

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/packageinfo
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/packageinfo	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/convert/packageinfo	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1 @@
+version 1.0

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ComponentDefinitionRegistry.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ComponentDefinitionRegistry.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ComponentDefinitionRegistry.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.namespace;
+
+import java.util.Set;
+
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
+
+/**
+ * A registry of the component definitions for a given context.
+ * 
+ * Implementations of ComponentDefinitionRegistry are required to support
+ * concurrent access. The state of a component registry
+ * may change between invocations on the same thread. For example, a single
+ * thread invoking containsComponentDefinition("foo") and getting a return value
+ * of 'true' may see a return value of null on a subsequent call to
+ * getComponentDefinition("foo") if another thread has removed the component
+ * definition in the meantime. 
+ */
+public interface ComponentDefinitionRegistry {
+
+	/**
+	 * Returns true iff the registry contains a component definition with
+	 * the given name. 
+	 */
+	boolean containsComponentDefinition(String name);
+	
+	/**
+	 * Get the component definition for the component with the given name.
+	 *
+	 * @return the matching component definition if present, or null if no
+	 * component with a matching name or alias is present.
+	 */
+	ComponentMetadata getComponentDefinition(String name);
+	
+	/**
+	 * Get the names of all the registered components.
+	 * 
+	 * @return an immutable set (of Strings) containing the names of all registered components.
+	 */
+	Set getComponentDefinitionNames();
+	
+	/**
+	 * Register a new component definition.
+	 * 
+	 * @throws ComponentNameAlreadyInUseException if the name of the 
+	 * component definition to be registered is already in use by an existing component
+	 * definition.
+	 */
+	void registerComponentDefinition(ComponentMetadata component);
+	
+	/**
+	 * Remove a component definition from the registry. If no matching component
+	 * is present then this operation does nothing.
+	 * 
+	 * @param name the name of the component to be removed.
+	 */
+	void removeComponentDefinition(String name);
+	
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ComponentDefinitionRegistry.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ComponentNameAlreadyInUseException.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ComponentNameAlreadyInUseException.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ComponentNameAlreadyInUseException.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.namespace;
+
+/**
+ * Exception thrown when an attempt is made to register a component with a 
+ * name that is already in use by an existing component.
+ */
+public class ComponentNameAlreadyInUseException extends RuntimeException {
+
+	private String duplicateName;
+	
+	public ComponentNameAlreadyInUseException(String name) {
+		this.duplicateName = name;
+	}
+	
+	public String getMessage() {
+		return "Name '" + this.duplicateName + "' is already in use by a registered component";
+	}
+	
+	public String getConflictingName() {
+		return this.duplicateName;
+	}
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ComponentNameAlreadyInUseException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/NamespaceHandler.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/NamespaceHandler.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/NamespaceHandler.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.namespace;
+
+import java.net.URL;
+
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * A namespace handler provides support for parsing custom namespace elements and attributes in 
+ * module context configuration files. It manipulates component definitions and the 
+ * component registry to implement the intended semantices of the namespace.
+ * 
+ * Instances of NamespaceHandler are discovered through the service registry where
+ * they should be published with a service property org.osgi.module.context.namespace set
+ * to the schema URI of the schema that they handle.
+ * 
+ * Implementations of NamespaceHandler are required to be thread-safe.
+ *
+ */
+public interface NamespaceHandler {
+	
+	/**
+	 * Return the location of the schema for a given namespace.
+	 *
+	 * @param namespace one of the advertized URIs supported by this handler (as registered in the
+	 * org.osgi.service.blueprint.namespace property of the service registration).
+	 * @return The URL where the xsd file for the schema may be found. Typically used to return a URL to a
+	 * bundle resource entry so as to avoid needing to lookup schemas remotely. 
+	 * If null is returned then the schema location will be determined from the xsi:schemaLocation attribute
+	 * value.
+	 * @throws IllegalArgumentException if the namespace parameter is not a recognized namespace supported
+	 * by this handler
+	 */
+	URL getSchemaLocation(String namespace);
+	
+	/**
+	 * Called when a top-level (i.e. non-nested) element from the namespace is encountered.
+	 * Implementers may register component definitions themselves, and/or return a component definition
+	 * to be registered.
+	 *
+	 * @param element the dom element from the namespace that has just been encountered
+	 * @param context parser context giving access component registry and context information about the
+	 *   current parsing location.
+	 *   
+	 * @return a component metadata instance to be registered for the context, or null if there are no
+	 * additional component descriptions to register.
+	 */
+	ComponentMetadata parse(Element element, ParserContext context);
+	
+	/**
+	 * Called when an attribute or nested element is encountered. Implementors should parse the 
+	 * supplied Node and decorate the provided component, returning the decorated component.
+	 *
+	 * @param node the dom Node from the namespace that has just been encountered
+	 * @param component the component metadata for the component in which the attribute or nested element
+	 * was encountered
+	 * @param context parser context giving access component registry and context information about the
+	 *   current parsing location.
+	 *   
+	 * @return the decorated component to replace the original, or simply the original component if no
+	 * decoration is required. 
+	 */
+	ComponentMetadata decorate(Node node, ComponentMetadata component, ParserContext context);
+
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/NamespaceHandler.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ParserContext.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ParserContext.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ParserContext.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.namespace;
+
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
+import org.w3c.dom.Node;
+
+/**
+ * A ParserContext provides contextual information to a NamespaceHandler when
+ * parsing an Element or Node from the namespace.
+ */
+public interface ParserContext {
+
+	/**
+	 * The dom Node which we are currently processing
+	 */
+	Node getSourceNode();
+	
+	/**
+	 * The component definition registry containing all of the registered component
+	 * definitions for this context
+	 */
+	ComponentDefinitionRegistry getComponentDefinitionRegistry();
+	
+	/**
+	 * The enclosing component definition in the context of which the
+	 * source node is to be processed.
+	 */
+	ComponentMetadata getEnclosingComponent();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/ParserContext.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/package.html
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/package.html	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/package.html	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,14 @@
+<!-- $Revision: 5654 $ -->
+<BODY>
+<p>Blueprint Namespace Package Version 1.0.
+<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: org.osgi.service.blueprint.namespace; version=&quot;[1.0,2.0)&quot;
+</pre>
+<p> This package provides the top-level interfaces needed for implementing a 
+	namespace handler.
+</p>
+</BODY>
+

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/packageinfo
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/packageinfo	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/namespace/packageinfo	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1 @@
+version 1.0

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * Metadata used in a Bean Component to inject arguments in a method or
+ * constructor. This metadata class describes the <code>argument</element>
+ */
+public interface BeanArgument {
+
+	/**
+	 * The metadata for the value to inject into the parameter.
+	 *
+	 * 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 component
+	 * definition then this method returns null.
+	 *
+	 * This is the <code>type</code> attribute.
+	 *
+	 * @return the explicitly specified type to convert the value into, or null
+	 *         if no type was specified in the component definition.
+	 */
+	String getValueType();
+
+	/**
+	 * The (zero-based) index into the parameter list of the method or
+	 * constructor to be invoked for this parameter. This is determined either
+	 * by explicitly specifying the index attribute in the component
+	 * declaration, or by declaration order of constructor-arg elements if the
+	 * index was not explicitly set.
+	 *
+	 * This is the <code>index</code> attribute.
+	 *
+	 *
+	 * @return the zero-based parameter index
+	 */
+	int getIndex();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanArgument.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+import java.util.List;
+
+/**
+ * Metadata for a Bean Component.
+ *
+ * This class describes a <code>bean</code> element.
+ */
+public interface BeanMetadata extends Target, ComponentMetadata {
+
+	static final String SCOPE_SINGLETON = "singleton";
+	static final String SCOPE_PROTOTYPE = "prototype";
+	static final String SCOPE_BUNDLE = "bundle";
+
+	/**
+	 * The name of the class type specified for this component.
+	 *
+	 * This is the <code>class</code> attribute.
+	 *
+	 * @return the name of the component class. If no class was specified in the
+	 *         component definition (because the a factory component is used
+	 *         instead) then this method will return null.
+	 */
+	String getClassName();
+
+	/**
+	 * The name of the init method specified for this component, if any.
+	 *
+	 * This is the <code>init-method</code> attribute.
+	 *
+	 * @return the method name of the specified init method, or null if no init
+	 *         method was specified.
+	 */
+	String getInitMethodName();
+
+	/**
+	 * The name of the destroy method specified for this component, if any.
+	 *
+	 * This is the <code>destroy-method</code> attribute.
+	 *
+	 * @return the method name of the specified destroy method, or null if no
+	 *         destroy method was specified.
+	 */
+	String getDestroyMethodName();
+
+	/**
+	 * The arguments for the factory method or constructor.
+	 *
+	 * Specified in all the child <code>argument<code> elements.
+	 *
+	 * @return The metadata for the factory method or constructor. Can be empty if no arguments are specified
+	 */
+	List/* <BeanArgument> */getArguments();
+
+	/**
+	 * The property injection metadata for this component.
+	 *
+	 * Specified in all the child <code>property</code> elements.
+	 *
+	 * @return an immutable collection of BeanProperty, with one
+	 *         entry for each property to be injected. If no property injection
+	 *         was specified for this component then an empty collection will be
+	 *         returned.
+	 *
+	 */
+	List /* <BeanProperty> */getProperties();
+
+	/**
+	 * Is this component to be lazily instantiated?
+	 *
+	 * ### I assume the default is processed here?
+	 *
+	 * This is the <code>lazy-init</code> attribute or the
+	 * <code>default-lazy-init</code> in the <code>blueprint</code> element
+	 * if not set. ### I've renamed this from isLazy
+	 *
+	 * @return true, iff this component definition specifies lazy instantiation.
+	 */
+	boolean isLazyInit();
+
+	/**
+	 * Provides the name of the optional factory method.
+	 *
+	 * This is the <code>factory-method</code> attribute.
+	 *
+	 * @return The name of the factory method or <code>null</code>.
+	 */
+	String getFactoryMethodName();
+
+	/**
+	 * The component instance on which to invoke the factory method (if
+	 * specified).
+	 *
+	 * The component is defined in the <code>factory-component</code>.
+	 *
+	 * @return when a factory method and factory component has been specified
+	 *         for this component, this operation returns the metadata
+	 *         specifying the component on which the factory method is to be
+	 *         invoked. When no factory component has been specified this
+	 *         operation will return null. A return value of null with a
+	 *         non-null factory method indicates that the factory method should
+	 *         be invoked as a static method on the component class itself. For
+	 *         a non-null return value, the Metadata object returned will be a
+	 *         RefMetadata or a TargetComponentMetadata instance.
+	 */
+	Target getFactoryComponent();
+
+	/**
+	 * The specified scope for the component lifecycle.
+	 *
+	 * @return a String indicating the scope specified for the component.
+	 *
+	 * @see #SCOPE_SINGLETON
+	 * @see #SCOPE_PROTOTYPE
+	 * @see #SCOPE_BUNDLE
+	 */
+	String getScope();
+
+	/**
+	 * Provide an actual class, this overrides the class name if set. This is
+	 * useful for Namespace Handler services that do not want to force the
+	 * Blueprint bundle to import implementation classes.
+	 *
+	 * @return Return the class to use in runtime or <code>null</code>.
+	 */
+
+	Class /* <?> */getRuntimeClass();
+
+    /**
+     * The names of any components listed in a "depends-on" attribute for this
+     * component.
+     *
+     * @return an immutable List of component names for components that we have explicitly
+     * declared a dependency on, or an empty set if none.
+     */
+    List/*<String>*/ getExplicitDependencies();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * Metadata describing a property to be injected. Properties are defined
+ * following JavaBeans conventions.
+ */
+public interface BeanProperty {
+
+	/**
+	 * The name of the property to be injected, following JavaBeans conventions.
+	 *
+	 * Defined in the <code>name</code> attribute.
+	 *
+	 * @return the property name.
+	 */
+	String getName();
+
+	/**
+	 * The metadata for the value to inject the property with.
+	 *
+	 * Defined in the <code>value</code> attribute or inlined component.
+	 *
+	 * @return the metadata for the property value.
+	 */
+	Metadata getValue();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/BeanProperty.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+import java.util.List;
+
+/**
+ * Metadata for a collection based value. Members of the array are instances of Metadata.
+ * The Collection metadata can constrain (### convert) to a specific type.
+ */
+
+public interface CollectionMetadata extends NonNullMetadata {
+
+	/**
+	 * Provide the interface that this collection must implement.
+	 *
+	 * This is used for Arrays (Object[]), Set, and List. This information
+	 * is encoded in the element name.
+	 *
+	 *
+	 * @return The interface class that the collection must implement.
+	 */
+	Class/*<?>*/ getCollectionClass();
+
+    /**
+     * The value-type specified for the array
+     *
+     * The <code>value-type</code> attribute.
+     * ### Shouldnt this also support getRuntimeValueType()?
+     */
+	String getValueTypeName();
+
+    /**
+     * The of Metadata objects that describe the value.
+     */
+	List /*<Metadata>*/ getValues();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/CollectionMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+
+/**
+ * Base class for all components.
+ *
+ * @see BeanMetadata
+ * @see ServiceReferenceMetadata
+ * @see ServiceMetadata
+ */
+public interface ComponentMetadata extends NonNullMetadata {
+
+	/**
+	 * The id of the component.
+	 *
+	 * ### renamed to getId
+	 * @return component id. The component id can be <code>null</code> if this is an anonymously
+	 * defined inner component.
+	 */
+	String getId();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * A value which represents the name of another component in the module context.
+ * The name itself will be injected, not the component that the name refers to.
+ *
+ */
+public interface IdRefMetadata extends NonNullMetadata {
+	/**
+	 * The name of the referenced component.
+	 * Defined in the <code>component</code> attribute.
+	 *
+	 */
+	String getComponentId();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/IdRefMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Listener.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Listener.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Listener.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * Metadata for a listener interested in service bind and unbind events for a service
+ * reference.
+ */
+public interface Listener {
+
+	/**
+	 * The component instance that will receive bind and unbind
+	 * events. The returned value must reference a TargetListenerComponent
+	 * either directly or indirectly.  The return type will be either
+     * a RefMetadata instance or an TargetListenerComponent instance.
+	 *
+	 * Defined in the <code>ref</code> attribute or inlined component.
+	 *
+	 * @return the listener component reference.
+	 */
+	Target getListenerComponent();
+
+	/**
+	 * The name of the method to invoke on the listener component when
+	 * a matching service is bound to the reference
+	 *
+	 * @return the bind callback method name.
+	 */
+	String getBindMethodName();
+
+	/**
+	 * The name of the method to invoke on the listener component when
+	 * a service is unbound from the reference.
+	 *
+	 * @return the unbind callback method name.
+	 */
+	String getUnbindMethodName();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Listener.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * Metadata for an entry. An entry is the member of a MapMetadata so that it
+ * can be treated as a CollectionMetadata with entries.
+ *
+ * Defined in the <code>entry</code> element.
+ *
+ */
+public interface MapEntry {
+	/**
+	 * Keys must be non-null.
+	 *
+	 * Defined in the <code>key</code> attribute or element.
+	 *
+	 * @return the metadata for the key
+	 */
+	NonNullMetadata getKey();
+
+	/**
+	 * Return the metadata for the value.
+	 *
+	 * Defined in the <code>value</code> attribute or element<.
+	 *
+	 * @return the metadata for the value
+	 */
+
+	Metadata getValue();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapEntry.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+import java.util.List;
+
+/**
+ * A map-based value. This represented as a collection of entries (as it is done in the schema).
+ *
+ * A map is defined in the <code>map</code> element.
+ *
+ */
+public interface MapMetadata extends NonNullMetadata {
+	/**
+	 * The key-type specified for map keys, or null if none given
+	 *
+	 * Defined in the <code>key-type</code> attribute.
+	 * ### should we have getRuntimeKeyType?
+	 */
+	String getKeyTypeName();
+
+    /**
+     * The value-type specified for the array
+     *
+	 * ### should we have getRuntimeValueType?
+     * The <code>value-type</code> attribute.
+     */
+	String getValueTypeName();
+
+    /**
+     * The of Metadata objects that describe the value.
+     */
+	List /*<MapEntry>*/ getEntries();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) OSGi Alliance (2009). All Rights Reserved.
+ *  
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * Top level metadata. This represents any possible value.
+ *
+ */
+public interface Metadata {
+
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Metadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * Base interfaces for metadata that cannot be null. The NullMetadata is the
+ * only element not implementing this. Mainly used for keys in maps because they
+ * cannot be null.
+ */
+public interface NonNullMetadata extends Metadata {
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/NonNullMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * A value specified to be null via the <null/> element.
+ */
+public interface NullMetadata extends Metadata {
+
+	static final NullMetadata NULL = new NullMetadata() {};
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/NullMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+import java.util.List;
+
+/**
+ * A java.util.Properties based value. The properties are defined as string to
+ * string. This means that the actual value can be returned.
+ *
+ * ### I do not like it that you loose the original order. And potential errors
+ * (like duplicate keys). I think this one should just go away. The
+ * CollectionMetadata has a collection type so the instantiation can ensure
+ *
+ * Defined in the <code>props</code> element.
+ *
+ */
+public interface PropsMetadata extends NonNullMetadata {
+
+	/**
+	 * This is the same as getValuesMetadata but more type safe.
+	 *
+	 * Defined in <code>prop</code> sub elements.
+	 *
+	 * @return
+	 */
+	List/*<MapEntry>*/ getEntries();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropsMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RefCollectionMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RefCollectionMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RefCollectionMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * Service reference that binds to a collection of matching services from the
+ * OSGi service registry. This is the <code>ref-list</code> or
+ * <code>ref-set</code> element.
+ *
+ */
+public interface RefCollectionMetadata extends ServiceReferenceMetadata {
+
+	/**
+	 * Create ordering based on comparison of service objects.
+	 */
+	public static final int ORDERING_BASIS_SERVICE= 1;
+
+	/**
+	 * Create ordering based on comparison of service reference objects.
+	 */
+	public static final int ORDERING_BASIS_SERVICE_REFERENCE = 2;
+
+	/**
+	 * Collection contains service instances
+	 *
+	 */
+	public static final int MEMBER_TYPE_SERVICE_INSTANCE = 1;
+
+	/**
+	 * Collection contains service references
+	 */
+	public static final int MEMBER_TYPE_SERVICE_REFERENCE = 2;
+
+	/**
+	 * The type of collection to be created.
+	 *
+	 * This is implied by the element name: <code>ref-list</code> or <code>ref-set</code>.
+	 *
+	 * @return Class object for the specified collection type (List, Set).
+	 */
+	Class/* <?> */getCollectionType();
+
+	/**
+	 * The comparator specified for ordering the collection, or <code>null</code> if no
+	 * comparator was specified.
+	 *
+	 * Defined in the <code>comparator</code> child element or <code>comparator-ref</code>
+	 * attribute.
+	 *
+	 * @return if a comparator was specified then a Value object identifying the
+	 *         comparator (a ComponentValue, ReferenceValue, or
+	 *         ReferenceNameValue) is returned. If no comparator was specified
+	 *         then null will be returned.
+	 */
+	Target getComparator();
+
+	/**
+	 * The basis on which to perform ordering, if specified.
+	 *
+	 * Defined in the <code>ordering-basis</code> attribute.
+	 *
+	 * @return one of ORDERING_BASIS_SERVICES and ORDERING_BASIS_SERVICE_REFERENCE
+	 */
+	int getOrderingBasis();
+
+	/**
+	 * Whether the collection will contain service instances, or service
+	 * references
+	 * Defined in the <code>member-type</code> attribute.
+	 */
+	int getMemberType();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RefCollectionMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * A value which refers to another component in the module context by name.
+ */
+public interface RefMetadata extends Target, NonNullMetadata {
+	/**
+	 * The name of the referenced component.
+	 * Defined in the <code>component</code> attribute.
+	 *
+	 */
+	String getComponentId();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RefMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ *
+ * Service reference that will bind to a single matching service in the service
+ * registry.
+ *
+ * Defines the <code>reference</code> element.
+ *
+ */
+public interface ReferenceMetadata extends ServiceReferenceMetadata,
+		Target {
+
+	/**
+	 * Timeout for service invocations when a matching backing service is
+	 * unavailable.
+	 * Defined in the <code>timeout</code> attribute.
+	 *
+	 * @return service invocation timeout in milliseconds
+	 */
+	long getTimeout();
+
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * Metadata for a listener interested in service registration and unregistration
+ * events for an exported service.
+ */
+public interface RegistrationListener {
+
+	/**
+	 * The component instance that will receive registration and unregistration
+	 * events. The returned value must reference a TargetListenerComponent
+	 * either directly or indirectly.  The return type will be either
+     * a RefMetadata instance or an TargetListenerComponent instance.
+	 *
+	 * Defined in the <code>listener</code> child element.
+	 *
+	 * @return the listener component reference.
+	 */
+	Target getListenerComponent();
+
+	/**
+	 * The name of the method to invoke on the listener component when
+	 * the exported service is registered with the service registry.
+	 *
+	 * Defined in the <code>registration-method</code> attribute.
+	 *
+	 * @return the registration callback method name.
+	 */
+	String getRegistrationMethodName();
+
+	/**
+	 * The name of the method to invoke on the listener component when
+	 * the exported service is unregistered from the service registry.
+	 *
+	 * Defined in the <code>unregistration-method</code> attribute.
+	 *
+	 * @return the unregistration callback method name.
+	 */
+	String getUnregistrationMethodName();
+
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListener.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+import java.util.Collection;
+import java.util.List;
+
+
+/**
+ * Metadata representing a service to be exported by a module context.
+ *
+ */
+public interface ServiceMetadata extends ComponentMetadata, Target {
+
+	/**
+	 * Do not auto-detect types for advertised service intefaces
+	 */
+	public static final int AUTO_EXPORT_DISABLED = 1;
+
+	/**
+	 * Advertise all Java interfaces implemented by the exported component as
+	 * service interfaces.
+	 */
+	public static final int AUTO_EXPORT_INTERFACES= 2;
+
+	/**
+	 * Advertise all Java classes in the hierarchy of the exported component's type
+	 * as service interfaces.
+	 */
+	public static final int AUTO_EXPORT_CLASS_HIERARCHY = 3;
+
+	/**
+	 * Advertise all Java classes and interfaces in the exported component's type as
+	 * service interfaces.
+	 */
+	public static final int AUTO_EXPORT_ALL_CLASSES = 4;
+
+	/**
+	 * The component that is to be exported as a service. Value must refer to a component and
+	 * therefore be either a RefMetadata or BeanMetadata.
+	 *
+	 * Defined in the <code>registration-method</code> attribute.
+	 *
+	 * @return the component to be exported as a service.
+	 */
+	Target getServiceComponent();
+
+	/**
+	 * The type names of the set of interface types that the service should be advertised
+	 * as supporting, as specified in the component declaration.
+	 *
+	 * Defined in the <code>interface</code> attribute or <code>interfaces</code> element.
+	 *
+	 * @return an immutable set of (String) type names, or an empty set if using auto-export
+	 */
+	List/*<String>*/ getInterfaceNames();
+
+	/**
+	 * Return the auto-export mode specified.
+	 *
+	 * Defined in the <code>auto-export</code> attribute.
+	 *
+	 * @return One of AUTO_EXPORT_DISABLED, AUTO_EXPORT_INTERFACES, AUTO_EXPORT_CLASS_HIERARCHY, AUTO_EXPORT_ALL_CLASSES
+	 */
+	int getAutoExportMode();
+
+	/**
+	 * The user declared properties to be advertised with the service.
+	 *
+	 * Defined in the <code>service-properties</code> element.
+	 *
+	 * @return Map containing the set of user declared service properties (may be
+	 * empty if no properties were specified).
+	 */
+	List/*<MapEntry>*/ getServiceProperties();
+
+	/**
+	 * The ranking value to use when advertising the service
+	 *
+	 * Defined in the <code>ranking</code> attribute.
+	 *
+	 * @return service ranking
+	 */
+	int getRanking();
+
+	/**
+	 * The listeners that have registered to be notified when the exported service
+	 * is registered and unregistered with the framework.
+	 *
+	 * Defined in the <code>registration-listener</code> elements.
+	 *
+	 * @return an immutable collection of RegistrationListenerMetadata
+	 */
+	Collection /*<RegistrationListener>*/ getRegistrationListeners();
+
+    /**
+     * The names of any components listed in a "depends-on" attribute for this
+     * component.
+     *
+     * @return an immutable List of component names for components that we have explicitly
+     * declared a dependency on, or an empty set if none.
+     */
+    List/*<String>*/ getExplicitDependencies();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+import java.util.Collection;
+import java.util.List;
+
+
+/**
+ * Metadata describing a reference to a service that is to be imported into the module
+ * context from the OSGi service registry.
+ *
+ */
+public interface ServiceReferenceMetadata extends ComponentMetadata {
+
+	/**
+	 * A matching service is required at all times.
+	 */
+	public static final int AVAILABILITY_MANDATORY = 1;
+
+	/**
+	 * A matching service is not required to be present.
+	 */
+	public static final int AVAILABILITY_OPTIONAL = 2;
+
+	/**
+	 * Whether or not a matching service is required at all times.
+	 *
+	 * Defined in the <code>availibility</code> attribute.
+	 *
+	 * @return one of AVAILABILITY_MANDATORY or AVAILABILITY_OPTIONAL
+	 */
+	int getAvailability();
+
+	/**
+	 * The interface types that the matching service must support
+	 *
+	 * Defined in the <code>interface</code> attribute or <code>interfaces</code> element.
+	 *
+	 * @return an immutable list of type names
+	 */
+	List/*<String>*/ getInterfaceNames();
+
+	/**
+	 * The value of the component-name attribute, if specified. This specifies
+	 * the name of a component that is registered in the service registry. This will
+	 * create an automatic filter (appended wit the filter if set) to select this
+	 * component based on its automatic ###name attribute.
+	 *
+	 * Defined in the <code>component-name</code> attribute.
+	 *
+	 * @return the component name attribute value, or null if the attribute was not specified
+	 */
+	String getComponentName();
+
+	/**
+	 * The filter expression that a matching service must pass
+	 *
+	 * Defined in the <code>filter</code> attribute.
+	 *
+	 * @return filter expression
+	 */
+	String getFilter();
+
+	/**
+	 * The set of listeners registered to receive bind and unbind events for
+	 * backing services.
+	 *
+	 * Defined in the <code>listener</code> elements.
+	 *
+	 * @return an immutable collection of registered ListenerMetadata
+	 */
+	Collection /*<Listener>*/ getServiceListeners();
+
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Target.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Target.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Target.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+
+/**
+ * Provides a common interface for components that can be used as a direct target
+ * for method calls. These are bean, reference, and ref.
+ *
+ */
+public interface Target extends Metadata {
+
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/Target.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ValueMetadata.java
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ValueMetadata.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ValueMetadata.java	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.osgi.service.blueprint.reflect;
+
+/**
+ * A simple string value that will be type-converted if necessary before
+ * injecting into a target.
+ *
+ * This class is representing the <code>value</code> element.
+ *
+ */
+public interface ValueMetadata extends NonNullMetadata {
+	/**
+	 * The string value (unconverted) of this value).
+	 *
+	 * Defined in the <code>value</code> attribute or text part.
+	 */
+	String getStringValue();
+
+	/**
+	 * The name of the type to which this value should be coerced. May be null.
+	 *
+	 * Defined in the <code>type</code> attribute.
+	 */
+	String getTypeName();
+}


Property changes on: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/ValueMetadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/package.html
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/package.html	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/package.html	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1,35 @@
+<!-- $Revision: 5654 $ -->
+<BODY>
+<p>Blueprint Reflection Package Version 1.0.
+<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: org.osgi.service.blueprint.reflect; version=&quot;[1.0,2.0)&quot;
+</pre>
+<p> This package provides a reflection-based view of the configuration information for a given
+	module context. The top-level mapping between configuration elements and reflection types is as follows:
+</p>
+
+<pre>
+	Configuration Element			Corresponding Reflection Type(s)
+	component						LocalComponentMetadata, ComponentValue
+	reference						UnaryServiceReferenceComponentMetadata
+	ref-set,ref-list				CollectionBasedServiceReferenceComponentMetadata
+	service							ServiceExportComponentMetadata
+	constructor-arg					ConstructorInjectionMetadata, ParameterSpecification
+	property						PropertyInjectionMetadata
+	listener						BindingListenerMetadata
+	registration-listener			RegistrationListenerMetadata
+	array<							ArrayValue
+	ref								ReferenceValue
+	id-ref							ReferenceNameValue
+	list							ListValue
+	map								MapValue
+	null							NullValue
+	props							PropertiesValue
+	set								SetValue
+	value							TypedStringValue
+<//pre>
+</BODY>
+

Added: projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/packageinfo
===================================================================
--- projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/packageinfo	                        (rev 0)
+++ projects/jboss-osgi/trunk/bundle/blueprint/src/main/java/org/osgi/service/blueprint/reflect/packageinfo	2009-05-13 11:50:27 UTC (rev 88808)
@@ -0,0 +1 @@
+version 1.0




More information about the jboss-cvs-commits mailing list