You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gn...@apache.org on 2009/04/13 20:49:24 UTC
svn commit: r764556 [4/5] - in /geronimo/sandbox/gnodet/blueprint: ./
itests/ itests/src/ itests/src/test/ itests/src/test/java/
itests/src/test/java/org/ itests/src/test/java/org/apache/
itests/src/test/java/org/apache/felix/ itests/src/test/java/org/...
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentMetadata.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.Set;
+
+
+/**
+ * Metadata for a component defined within a given module context.
+ *
+ * @see LocalComponentMetadata
+ * @see ServiceReferenceComponentMetadata
+ * @see ServiceExportComponentMetadata
+ */
+public interface ComponentMetadata {
+
+ /**
+ * The name of the component.
+ *
+ * @return component name. The component name may be null if this is an anonymously
+ * defined inner component.
+ */
+ String getName();
+
+ /**
+ * The names of any components listed in a "depends-on" attribute for this
+ * component.
+ *
+ * @return an immutable set of component names for components that we have explicitly
+ * declared a dependency on, or an empty set if none.
+ */
+ Set getExplicitDependencies();
+
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentValue.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentValue.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentValue.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ComponentValue.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:40:31 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface ComponentValue extends Value {
+
+ ComponentMetadata getComponentMetadata();
+
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ConstructorInjectionMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ConstructorInjectionMetadata.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ConstructorInjectionMetadata.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ConstructorInjectionMetadata.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ */
+public interface ConstructorInjectionMetadata {
+
+ /**
+ * The parameter specifications that determine which constructor to invoke
+ * (in the case of overloading) and what arguments to pass to it.
+ *
+ * @return an immutable list of ParameterSpecification, or an empty list if the default
+ * constructor is to be invoked. The list is ordered by ascending parameter index.
+ * I.e., the first parameter is first in the list, and so on.
+ */
+ List getParameterSpecifications();
+
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ListValue.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ListValue.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ListValue.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ListValue.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:42:02 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface ListValue extends Value {
+
+ List getList();
+
+ String getValueType();
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/LocalComponentMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/LocalComponentMetadata.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/LocalComponentMetadata.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/LocalComponentMetadata.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+public interface LocalComponentMetadata extends 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.
+ *
+ * @return the name of the component class.
+ */
+ String getClassName();
+
+ /**
+ * The name of the init method specified for this component, if any.
+ *
+ * @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.
+ *
+ * @return the method name of th * destroy method was specified.
+ */
+ String getDestroyMethodName();
+
+ /**
+ * The constructor injection metadata for this component.
+ *
+ * @return the constructor injection metadata. This is guaranteed to be
+ * non-null and will refer to the default constructor if no explicit
+ * constructor injection was specified for the component.
+ */
+ ConstructorInjectionMetadata getConstructorInjectionMetadata();
+
+ /**
+ * The property injection metadata for this component.
+ *
+ * @return an array containing one entry for each property to be injected. If
+ * no property injection was specified for this component then an empty array
+ * will be returned.
+ */
+ Collection getPropertyInjectionMetadata();
+
+ /**
+ * Is this component to be lazily instantiated?
+ *
+ * @return true, iff this component definition specifies lazy
+ * instantiation.
+ */
+ boolean isLazy();
+
+ /**
+ * The metadata describing how to create the component instance by invoking a
+ * method (as opposed to a constructor) if factory methods are used.
+ *
+ * @return the method injection metadata for the specified factory method, or null if no
+ * factory method is used for this component.
+ */
+ MethodInjectionMetadata getFactoryMethodMetadata();
+
+ /**
+ * The component instance on which to invoke the factory method (if specified).
+ *
+ * @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 Value object returned will
+ * be either a ComponentValue or a ReferenceValue
+ */
+ Value 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();
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapValue.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapValue.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapValue.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/MapValue.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.Map;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:41:21 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface MapValue extends Value {
+
+ String getValueType();
+
+ String getKeyType();
+
+ Map getMap();
+
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/MethodInjectionMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/MethodInjectionMetadata.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/MethodInjectionMetadata.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/MethodInjectionMetadata.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:34:45 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface MethodInjectionMetadata {
+
+ /**
+ * The name of the method to be invoked.
+ *
+ * @return the method name, overloaded methods are disambiguated by
+ * parameter specifications.
+ */
+ String getName();
+
+ /**
+ * The parameter specifications that determine which method to invoke
+ * (in the case of overloading) and what arguments to pass to it.
+ *
+ * @return an array of parameter specifications, or an empty array if the
+ * method takes no arguments.
+ */
+ List getParameterSpecifications();
+
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/NullValue.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/NullValue.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/NullValue.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/NullValue.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:42:41 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface NullValue extends Value {
+
+ public static final NullValue NULL = new NullValue() {};
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ParameterSpecification.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ParameterSpecification.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ParameterSpecification.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ParameterSpecification.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:37:03 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface ParameterSpecification {
+
+
+ /**
+ * The value to inject into the parameter.
+ *
+ * @return the parameter value
+ */
+ Value 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.
+ *
+ * @return the explicitly specified type to convert the value into, or
+ * null if no type was specified in the component definition.
+ */
+ String getTypeName();
+
+ /**
+ * 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.
+ *
+ * @return the zero-based parameter index
+ */
+ int getIndex();
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropertiesValue.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropertiesValue.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropertiesValue.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropertiesValue.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.Properties;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:42:24 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface PropertiesValue extends Value {
+
+ Properties getPropertiesValue();
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropertyInjectionMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropertyInjectionMetadata.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropertyInjectionMetadata.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/PropertyInjectionMetadata.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:34:23 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface PropertyInjectionMetadata {
+
+ /**
+ * The name of the property to be injected, following JavaBeans
+ * conventions.
+ *
+ * @return the property name.
+ */
+ String getName();
+
+ /**
+ * The value to inject the property with.
+ *
+ * @return the property value.
+ */
+ Value getValue();
+
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceNameValue.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceNameValue.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceNameValue.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceNameValue.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:41:04 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface ReferenceNameValue extends Value {
+
+ String getReferenceName();
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceValue.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceValue.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceValue.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ReferenceValue.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:40:48 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface ReferenceValue extends Value {
+
+ /**
+ * The name of the referenced component.
+ */
+ String getComponentName();
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListenerMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListenerMetadata.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListenerMetadata.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/RegistrationListenerMetadata.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:44:46 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface RegistrationListenerMetadata {
+
+ /**
+ * The component instance that will receive registration and unregistration
+ * events. The returned value must reference a component and therefore be
+ * either a ComponentValue, ReferenceValue, or ReferenceNameValue.
+ *
+ * @return the listener component reference.
+ */
+ Value getListenerComponent();
+
+ /**
+ * The name of the method to invoke on the listener component when
+ * the exported service is registered with the service registry.
+ *
+ * @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.
+ *
+ * @return the unregistration callback method name.
+ */
+ String getUnregistrationMethodName();}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceExportComponentMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceExportComponentMetadata.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceExportComponentMetadata.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceExportComponentMetadata.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.Properties;
+import java.util.Collection;
+import java.util.Set;
+import java.util.Map;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:43:22 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface ServiceExportComponentMetadata extends ComponentMetadata {
+
+ /**
+ * Do not auto-detect types for advertised service intefaces
+ */
+ public static final int EXPORT_MODE_DISABLED = 1;
+
+ /**
+ * Advertise all Java interfaces implemented by the exported component as
+ * service interfaces.
+ */
+ public static final int EXPORT_MODE_INTERFACES = 2;
+
+ /**
+ * Advertise all Java classes in the hierarchy of the exported component's type
+ * as service interfaces.
+ */
+ public static final int EXPORT_MODE_CLASS_HIERARCHY = 3;
+
+ /**
+ * Advertise all Java classes and interfaces in the exported component's type as
+ * service interfaces.
+ */
+ public static final int EXPORT_MODE_ALL = 4;
+
+ /**
+ * The component that is to be exported as a service. Value must refer to a component and
+ * therefore be either a ComponentValue, ReferenceValue, or ReferenceNameValue.
+ *
+ * @return the component to be exported as a service.
+ */
+ Value getExportedComponent();
+
+ /**
+ * The type names of the set of interface types that the service should be advertised
+ * as supporting.
+ *
+ * @return an immutable set of (String) type names, or an empty set if using auto-export
+ */
+ Set getInterfaceNames();
+
+ /**
+ * Return the auto-export mode specified.
+ *
+ * @return One of EXPORT_MODE_DISABLED, EXPORT_MODE_INTERFACES, EXPORT_MODE_CLASS_HIERARCHY, EXPORT_MODE_ALL
+ */
+ int getAutoExportMode();
+
+ /**
+ * The user declared properties to be advertised with the service.
+ *
+ * @return Properties object containing the set of user declared service properties (may be
+ * empty if no properties were specified).
+ */
+ Map getServiceProperties();
+
+ /**
+ * The ranking value to use when advertising the service
+ *
+ * @return service ranking
+ */
+ int getRanking();
+
+ /**
+ * The listeners that have registered to be notified when the exported service
+ * is registered and unregistered with the framework.
+ *
+ * @return an immutable collection of RegistrationListenerMetadata
+ */
+ Collection getRegistrationListeners();
+
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceComponentMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceComponentMetadata.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceComponentMetadata.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/ServiceReferenceComponentMetadata.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.Set;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:45:26 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface ServiceReferenceComponentMetadata 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.
+ *
+ * @return one of MANDATORY_AVAILABILITY or OPTIONAL_AVAILABILITY
+ */
+ int getServiceAvailabilitySpecification();
+
+ /**
+ * The interface types that the matching service must support
+ *
+ * @return an array of type names
+ */
+ Set getInterfaceNames();
+
+ /**
+ * The value of the component name attribute, if specified.
+ *
+ * @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
+ *
+ * @return filter expression
+ */
+ String getFilter();
+
+ /**
+ * The set of listeners registered to receive bind and unbind events for
+ * backing services.
+ *
+ * @return an immutable collection of registered BindingListenerMetadata
+ */
+ Collection getBindingListeners();
+
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/SetValue.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/SetValue.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/SetValue.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/SetValue.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.Set;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:41:41 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface SetValue extends Value {
+
+ String getValueType();
+
+ Set getSet();
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/TypedStringValue.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/TypedStringValue.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/TypedStringValue.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/TypedStringValue.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:42:53 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface TypedStringValue extends Value {
+
+ /**
+ * The string value (unconverted) of this value).
+ */
+ String getStringValue();
+
+
+ /**
+ * The name of the type to which this value should be coerced. May be
+ * null.
+ */
+ String getTypeName();
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/UnaryServiceReferenceComponentMetadata.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/UnaryServiceReferenceComponentMetadata.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/UnaryServiceReferenceComponentMetadata.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/UnaryServiceReferenceComponentMetadata.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: gnodet
+ * Date: Mar 26, 2009
+ * Time: 11:46:14 AM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface UnaryServiceReferenceComponentMetadata extends
+ ServiceReferenceComponentMetadata {
+
+ /**
+ * Timeout for service invocations when a matching backing service
+ * is unavailable.
+ *
+ * @return service invocation timeout in milliseconds
+ */
+ long getTimeout();
+
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/Value.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/Value.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/Value.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/Value.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 to inject into a field, property, method argument or constructor
+ * argument.
+ */
+public interface Value {
+ // deliberately left empty
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/package.html
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/package.html?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/package.html (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/java/org/osgi/service/blueprint/reflect/package.html Mon Apr 13 18:49:20 2009
@@ -0,0 +1,109 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+-->
+<html>
+<head>
+</head>
+<body>
+
+Blueprint Reflection Package Version 1.0.
+
+Bundles wishing to use this package must list the package in the Import-Package
+header of the bundle's manifest. For example:
+
+<code>Import-Package: org.osgi.service.blueprint.reflect;version="[1.0,2.0)"</code>
+
+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:
+
+ <table>
+ <tr>
+ <th>Configuration Element</th>
+ <th>Corresponding Reflection Type(s)</th>
+ </tr>
+ <tr>
+ <td>component</td>
+ LocalComponentMetadata, ComponentValue
+ <td></td>
+ </tr>
+ <tr>
+ <td>reference</td>
+ <td>UnaryServiceReferenceComponentMetadata</td>
+ </tr>
+ <tr>
+ <td>ref-set,ref-list</td>
+ <td>CollectionBasedServiceReferenceComponentMetadata</td>
+ </tr>
+ <tr>
+ <td>service</td>
+ <td>ServiceExportComponentMetadata</td>
+ </tr>
+ <tr>
+ <td>constructor-arg</td>
+ <td>ConstructorInjectionMetadata, ParameterSpecification</td>
+ </tr>
+ <tr>
+ <td>property</td>
+ <td>PropertyInjectionMetadata</td>
+ </tr>
+ <tr>
+ <td>listener</td>
+ <td>BindingListenerMetadata</td>
+ </tr>
+ <tr>
+ <td>registration-listener</td>
+ <td>RegistrationListenerMetadata</td>
+ </tr>
+ <tr>
+ <td>array</td>
+ <td>ArrayValue</td>
+ </tr>
+ <tr>
+ <td>ref</td>
+ <td>ReferenceValue</td>
+ </tr>
+ <tr>
+ <td>id-ref</td>
+ <td>ReferenceNameValue</td>
+ </tr>
+ <tr>
+ <td>list</td>
+ <td>ListValue</td>
+ </tr>
+ <tr>
+ <td>map</td>
+ <td>MapValue</td>
+ </tr>
+ <tr>
+ <td>null</td>
+ <td>NullValue</td>
+ </tr>
+ <tr>
+ <td>props</td>
+ <td>PropertiesValue</td>
+ </tr>
+ <tr>
+ <td>set</td>
+ <td>SetValue</td>
+ </tr>
+ <tr>
+ <td>value</td>
+ <td>TypedStringValue</td>
+ </tr>
+ </table>
+
+</body>
+</html>
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/resources/org/apache/felix/blueprint/blueprint-compendium.xsd
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/resources/org/apache/felix/blueprint/blueprint-compendium.xsd?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/resources/org/apache/felix/blueprint/blueprint-compendium.xsd (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/resources/org/apache/felix/blueprint/blueprint-compendium.xsd Mon Apr 13 18:49:20 2009
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xsd:schema xmlns="http://www.osgi.org/xmlns/blueprint-compendium/v1.0.0"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:osgi="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ targetNamespace="http://www.osgi.org/xmlns/blueprint-compendium/v1.0.0"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"
+ version="1.0.0">
+
+ <xsd:import namespace="blueprint.xsd"/>
+
+ <!-- property placeholder -->
+
+ <xsd:element name="property-placeholder" type="TpropertyPlaceholder"/>
+
+
+ <xsd:complexType name="TpropertyPlaceholder">
+ <xsd:complexContent>
+ <xsd:extension base="osgi:TidentifiedType">
+ <xsd:sequence minOccurs="0" maxOccurs="1">
+ <!-- nested properties declaration -->
+ <xsd:element name="default-properties" type="TdefaultProperties" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="persistent-id" type="xsd:string" use="required"/>
+ <xsd:attribute name="placeholder-prefix" type="xsd:string" use="optional" default="${"/>
+ <xsd:attribute name="placeholder-suffix" type="xsd:string" use="optional" default="}"/>
+ <xsd:attribute name="defaults-ref" type="xsd:string" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="TdefaultProperties">
+ <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="osgi:property"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <!-- managed-property -->
+
+ <xsd:element name="managed-properties" type="TmanagedProperties"/>
+
+ <xsd:complexType name="TmanagedProperties">
+ <xsd:attribute name="persistent-id" type="xsd:string" use="required"/>
+ <xsd:attribute name="update-strategy" type="TupdateStrategyType" use="optional"/>
+ <xsd:attribute name="update-method" type="xsd:string" use='optional'/>
+ </xsd:complexType>
+
+ <xsd:simpleType name="TupdateStrategyType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="none"/>
+ <xsd:enumeration value="component-managed"/>
+ <xsd:enumeration value="container-managed"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- managed-service-factory -->
+
+ <xsd:element name="managed-service-factory" type="TmanagedServiceFactory"/>
+
+ <xsd:complexType name="TmanagedServiceFactory">
+ <xsd:complexContent>
+ <xsd:extension base="osgi:TidentifiedType">
+ <xsd:sequence>
+ <xsd:group ref="osgi:serviceElements"/>
+ <xsd:element name="managed-component" type="TmanagedComponent" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="factory-pid" type="xsd:string" use="required"/>
+ <xsd:attribute name="auto-export" type="osgi:TautoExportModes" default="disabled"/>
+ <xsd:attribute name="ranking" type="xsd:int" default="0"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="TmanagedComponent">
+ <xsd:group ref="osgi:componentElements"/>
+ <xsd:attribute name="class" type="xsd:string"/>
+ <xsd:attribute name="init-method" type="xsd:string"/>
+ <xsd:attribute name="destroy-method" type="xsd:string"/>
+ <xsd:attribute name="factory-method" type="xsd:string"/>
+ <xsd:attribute name="factory-component" type="xsd:string"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <!-- cm-properties -->
+
+ <xsd:element name="cm-properties" type="TcmProperties"/>
+
+ <xsd:complexType name="TcmProperties">
+ <xsd:attribute name="persistent-id" type="xsd:string" use="required"/>
+ <xsd:attribute name="update" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:complexType>
+
+</xsd:schema>
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/resources/org/apache/felix/blueprint/blueprint.xsd
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/resources/org/apache/felix/blueprint/blueprint.xsd?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/resources/org/apache/felix/blueprint/blueprint.xsd (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/main/resources/org/apache/felix/blueprint/blueprint.xsd Mon Apr 13 18:49:20 2009
@@ -0,0 +1,468 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<xsd:schema xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"
+ version="1.0.0">
+
+ <!--
+
+ TODO: service/interfaces can have child elements other than "value"
+ TODO: service can not have a nested component element
+ TODO: ref and idref elements have the same schema definition, are both actually needed ?
+ TODO: what is reference/@component-name about ?
+
+ 5.3.1: the component/@name attribute has been removed from the schema
+ 5.3.3.1: idref/@local and ref/@local do not exist in the schema
+ the Converter describe in the spec in "Type Conversion" paragraph is inconsistent with the javadoc in the spec
+ the Module-Context-Type-Converter manifest header should not contain the from, as it's not part of the Converter interface anymore
+
+ TODO: section 5.3.3.1 shows an example with component/@name which attribute does not exist
+
+ -->
+
+ <!-- Schema elements for core component declarations -->
+
+ <xsd:complexType name="TidentifiedType" abstract="true">
+ <xsd:attribute name="id" type="xsd:ID"/>
+ </xsd:complexType>
+
+ <xsd:element name="components">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="description" minOccurs="0"/>
+ <xsd:element ref="type-converters" minOccurs="0" maxOccurs="1"/>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="component"/>
+ <xsd:element ref="ref-list"/>
+ <xsd:element ref="ref-set"/>
+ <xsd:element ref="reference"/>
+ <xsd:element ref="service"/>
+ <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attribute name="default-lazy-init" default="false" type="xsd:boolean"/>
+ <xsd:attribute name="default-init-method" type="xsd:string"/>
+ <xsd:attribute name="default-destroy-method" type="xsd:string"/>
+ <xsd:attributeGroup ref="defaults"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="description">
+ <xsd:complexType mixed="true">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="type-converters">
+ <xsd:complexType mixed="true">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="component"/>
+ <xsd:element ref="ref"/>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:group name="componentElements">
+ <xsd:sequence>
+ <xsd:element ref="description" minOccurs="0"/>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="constructor-arg"/>
+ <xsd:element ref="property"/>
+ <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:choice>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:attributeGroup name="componentAttributes">
+ <xsd:attribute name="class" type="xsd:string"/>
+ <xsd:attribute name="scope" type="xsd:string"/>
+ <xsd:attribute name="lazy-init" default="default" type="Tdefaultable-boolean"/>
+ <xsd:attribute name="depends-on" type="xsd:string"/>
+ <xsd:attribute name="init-method" type="xsd:string"/>
+ <xsd:attribute name="destroy-method" type="xsd:string"/>
+ <xsd:attribute name="factory-method" type="xsd:string"/>
+ <xsd:attribute name="factory-component" type="xsd:string"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:attributeGroup>
+
+ <xsd:element name="component">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="TidentifiedType">
+ <xsd:group ref="componentElements"/>
+ <xsd:attributeGroup ref="componentAttributes"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:group name="valueElement">
+ <xsd:sequence>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="component"/>
+ <xsd:element ref="ref"/>
+ <xsd:element ref="idref"/>
+ <xsd:element ref="value"/>
+ <xsd:element ref="null"/>
+ <xsd:element ref="list"/>
+ <xsd:element ref="set"/>
+ <xsd:element ref="map"/>
+ <xsd:element ref="array"/>
+ <xsd:element ref="props"/>
+ <xsd:element ref="ref-list"/>
+ <xsd:element ref="ref-set"/>
+ <xsd:element ref="reference"/>
+ <xsd:element ref="service"/>
+ <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:choice>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:group name="keyElement">
+ <xsd:sequence>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="component"/>
+ <xsd:element ref="ref"/>
+ <xsd:element ref="idref"/>
+ <xsd:element ref="value"/>
+ <xsd:element ref="list"/>
+ <xsd:element ref="set"/>
+ <xsd:element ref="map"/>
+ <xsd:element ref="array"/>
+ <xsd:element ref="props"/>
+ <xsd:element ref="ref-list"/>
+ <xsd:element ref="ref-set"/>
+ <xsd:element ref="reference"/>
+ <xsd:element ref="service"/>
+ <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:choice>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:element name="constructor-arg">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="description" minOccurs="0"/>
+ <xsd:group ref="valueElement"/>
+ </xsd:sequence>
+ <xsd:attribute name="index" type="xsd:string"/>
+ <xsd:attribute name="type" type="xsd:string"/>
+ <xsd:attribute name="ref" type="xsd:string"/>
+ <xsd:attribute name="value" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="property" type="TpropertyType"/>
+
+ <xsd:element name="ref">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:restriction base="xsd:anyType">
+ <xsd:attribute name="component" type="xsd:string" use="required"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="idref">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:restriction base="xsd:anyType">
+ <xsd:attribute name="component" type="xsd:string" use="required"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+
+ <xsd:element name="value">
+ <xsd:complexType mixed="true">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:attribute name="type" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="null">
+ <xsd:complexType mixed="true">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="list" type="TlistSetArrayType"/>
+ <xsd:element name="set" type="TlistSetArrayType"/>
+ <xsd:element name="map" type="TmapType"/>
+ <xsd:element name="array" type="TlistSetArrayType"/>
+ <xsd:element name="entry" type="TentryType"/>
+ <xsd:element name="props" type="TpropsType"/>
+
+ <xsd:element name="key">
+ <xsd:complexType>
+ <xsd:group ref="keyElement"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="prop">
+ <xsd:complexType mixed="true">
+ <xsd:attribute name="key" type="xsd:string" use="required"/>
+ <xsd:attribute name="value" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="TpropertyType">
+ <xsd:sequence>
+ <xsd:element ref="description" minOccurs="0"/>
+ <xsd:group ref="valueElement"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="ref" type="xsd:string"/>
+ <xsd:attribute name="value" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- Collection Types -->
+
+ <!-- base collection type -->
+ <xsd:complexType name="TbaseCollectionType"/>
+
+ <!-- base type for collections that have (possibly) typed nested values -->
+ <xsd:complexType name="TtypedCollectionType">
+ <xsd:complexContent>
+ <xsd:extension base="TbaseCollectionType">
+ <xsd:attribute name="value-type" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+
+ <!-- 'map' element type -->
+ <xsd:complexType name="TmapType">
+ <xsd:complexContent>
+ <xsd:extension base="TtypedCollectionType">
+ <xsd:sequence>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="entry"/>
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attribute name="key-type" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <!-- 'entry' element type -->
+ <xsd:complexType name="TentryType">
+ <xsd:sequence>
+ <xsd:element ref="key" minOccurs="0"/>
+ <xsd:group ref="valueElement"/>
+ </xsd:sequence>
+ <xsd:attribute name="key" type="xsd:string"/>
+ <xsd:attribute name="key-ref" type="xsd:string"/>
+ <xsd:attribute name="value" type="xsd:string"/>
+ <xsd:attribute name="value-ref" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- 'list' and 'set' collection type -->
+ <xsd:complexType name="TlistSetArrayType">
+ <xsd:complexContent>
+ <xsd:extension base="TtypedCollectionType">
+ <xsd:group ref="valueElement" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <!-- 'props' collection type -->
+ <xsd:complexType name="TpropsType">
+ <xsd:complexContent>
+ <xsd:extension base="TbaseCollectionType">
+ <xsd:sequence>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="prop"/>
+ </xsd:choice>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <!-- simple internal types -->
+ <xsd:simpleType name="Tdefaultable-boolean">
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="default"/>
+ <xsd:enumeration value="true"/>
+ <xsd:enumeration value="false"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- Elements from Spring Dynamic Modules project -->
+
+ <xsd:attributeGroup name="defaults">
+ <xsd:attribute name="default-timeout" type="xsd:long" default="30000"/>
+ <xsd:attribute name="default-availability" type="Tavailability" default="mandatory" />
+ </xsd:attributeGroup>
+
+ <xsd:simpleType name="TdefaultCardinalityOptions">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="1..X"/>
+ <xsd:enumeration value="0..X"/>
+ </xsd:restriction>
+
+ </xsd:simpleType>
+
+ <!-- reference -->
+ <xsd:element name="reference" type="TsingleReference"/>
+
+
+ <xsd:complexType name="Treference">
+ <xsd:complexContent>
+ <xsd:extension base="TidentifiedType">
+ <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="interfaces" type="TlistSetArrayType" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="listener" type="Tlistener" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="interface" use="optional" type="xsd:token"/>
+ <xsd:attribute name="filter" use="optional" type="xsd:string"/>
+ <xsd:attribute name="component-name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="availability" use="optional" type="Tavailability" default="mandatory"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Tlistener">
+ <xsd:choice>
+ <xsd:element ref="ref"/>
+ <xsd:element ref="component"/>
+ <xsd:element ref="reference"/>
+ <xsd:element ref="service"/>
+ <xsd:sequence minOccurs="0" maxOccurs="1">
+ <!-- nested component declaration -->
+ <xsd:any namespace="##other" minOccurs="1" maxOccurs="1" processContents="skip"/>
+ </xsd:sequence>
+ </xsd:choice>
+ <!-- shortcut for bean references -->
+ <xsd:attribute name="ref" type="xsd:string" use="optional"/>
+ <xsd:attribute name="bind-method" type="xsd:token" use="required"/>
+ <xsd:attribute name="unbind-method" type="xsd:token" use="required"/>
+ </xsd:complexType>
+
+ <!-- single reference -->
+ <xsd:complexType name="TsingleReference">
+ <xsd:complexContent>
+ <xsd:extension base="Treference">
+ <xsd:attribute name="timeout" use="optional" type="xsd:long"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="Tavailability">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="mandatory"/>
+ <xsd:enumeration value="optional"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- reference collections (set, list) -->
+ <xsd:element name="ref-list" type="TreferenceCollection"/>
+
+ <xsd:element name="ref-set" type="TreferenceCollection"/>
+
+
+ <xsd:complexType name="TreferenceCollection">
+ <xsd:complexContent>
+ <xsd:extension base="Treference">
+ <xsd:sequence minOccurs="0" maxOccurs="1">
+ <xsd:element name="comparator" type="Tcomparator"/>
+ </xsd:sequence>
+ <xsd:attribute name="comparator-ref" type="xsd:string" use="optional"/>
+ <xsd:attribute name="member-type" type="TmemberType" use="optional"/>
+ <xsd:attribute name="ordering-basis" type="TorderingBasis" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="TmemberType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="service-instance"/>
+ <xsd:enumeration value="service-reference"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="Tcomparator">
+ <xsd:choice>
+ <xsd:element ref="ref"/>
+ <xsd:element ref="component"/>
+ <xsd:element ref="reference"/>
+ <xsd:element ref="service"/>
+ <xsd:sequence minOccurs="1" maxOccurs="1">
+ <!-- nested component declaration -->
+ <xsd:any namespace="##other" minOccurs="1" maxOccurs="1" processContents="skip"/>
+ </xsd:sequence>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:simpleType name="TorderingBasis">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="service"/>
+ <xsd:enumeration value="service-reference"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+ <!-- service -->
+ <xsd:element name="service" type="Tservice"/>
+
+
+ <xsd:complexType name="Tservice">
+ <xsd:complexContent>
+ <xsd:extension base="TidentifiedType">
+ <xsd:choice>
+ <xsd:group ref="serviceElements"/>
+ <!-- nested component declaration -->
+ <xsd:any namespace="##other" minOccurs="0" maxOccurs="1" processContents="skip"/>
+ </xsd:choice>
+ <xsd:attribute name="interface" type="xsd:token" use="optional"/>
+ <xsd:attribute name="ref" type="xsd:string" use="optional"/>
+ <xsd:attribute name="depends-on" type="xsd:string" use="optional"/>
+ <xsd:attribute name="auto-export" type="TautoExportModes" default="disabled"/>
+ <xsd:attribute name="ranking" type="xsd:int" default="0"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:group name="serviceElements">
+ <xsd:sequence>
+ <xsd:element name="interfaces" type="TlistSetArrayType" minOccurs="0"/>
+ <xsd:element name="service-properties" minOccurs="0" type="TmapType"/>
+ <xsd:element name="registration-listener" type="TserviceRegistrationListener" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:group>
+
+ <xsd:complexType name="TserviceRegistrationListener">
+ <xsd:choice>
+ <xsd:element ref="ref"/>
+ <xsd:element ref="component"/>
+ <xsd:element ref="reference"/>
+ <xsd:element ref="service"/>
+ <xsd:sequence minOccurs="0" maxOccurs="1">
+ <!-- nested bean declaration -->
+ <xsd:any namespace="##other" minOccurs="1" maxOccurs="1" processContents="skip"/>
+ </xsd:sequence>
+ </xsd:choice>
+
+ <!-- shortcut for bean references -->
+ <xsd:attribute name="ref" type="xsd:string" use="optional"/>
+ <xsd:attribute name="registration-method" type="xsd:token" use="required"/>
+ <xsd:attribute name="unregistration-method" type="xsd:token" use="required"/>
+ </xsd:complexType>
+
+ <xsd:simpleType name="TautoExportModes">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="disabled"/>
+ <xsd:enumeration value="interfaces"/>
+ <xsd:enumeration value="class-hierarchy"/>
+ <xsd:enumeration value="all-classes"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
+</xsd:schema>
\ No newline at end of file
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/test/java/org/apache/felix/blueprint/ParserTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/test/java/org/apache/felix/blueprint/ParserTest.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/test/java/org/apache/felix/blueprint/ParserTest.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/test/java/org/apache/felix/blueprint/ParserTest.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.felix.blueprint;
+
+import java.net.URL;
+import java.util.Set;
+import java.util.List;
+
+import junit.framework.TestCase;
+import org.osgi.service.blueprint.reflect.ComponentMetadata;
+import org.osgi.service.blueprint.reflect.LocalComponentMetadata;
+import org.osgi.service.blueprint.reflect.ConstructorInjectionMetadata;
+import org.osgi.service.blueprint.reflect.ParameterSpecification;
+import org.osgi.service.blueprint.reflect.TypedStringValue;
+import org.osgi.service.blueprint.reflect.NullValue;
+import org.osgi.service.blueprint.reflect.ReferenceValue;
+import org.osgi.service.blueprint.reflect.ArrayValue;
+import org.osgi.service.blueprint.reflect.ComponentValue;
+import org.osgi.service.blueprint.namespace.ComponentDefinitionRegistry;
+import org.apache.felix.blueprint.context.Parser;
+
+/**
+ * TODO: constructor injection
+ * TODO: Dependency#setMethod
+ */
+public class ParserTest extends TestCase {
+
+ public void testParseComponent() throws Exception {
+ Parser parser = parse("/test-simple-component.xml");
+ ComponentDefinitionRegistry registry = parser.getRegistry();
+ assertNotNull(registry);
+ ComponentMetadata component = registry.getComponentDefinition("pojoA");
+ assertNotNull(component);
+ assertEquals("pojoA", component.getName());
+ Set<String> deps = component.getExplicitDependencies();
+ assertNotNull(deps);
+ assertEquals(2, deps.size());
+ assertTrue(deps.contains("pojoB"));
+ assertTrue(deps.contains("pojoC"));
+ assertTrue(component instanceof LocalComponentMetadata);
+ LocalComponentMetadata local = (LocalComponentMetadata) component;
+ assertEquals("org.apache.felix.blueprint.pojos.PojoA", local.getClassName());
+ ConstructorInjectionMetadata cns = local.getConstructorInjectionMetadata();
+ assertNotNull(cns);
+ List<ParameterSpecification> params = cns.getParameterSpecifications();
+ assertNotNull(params);
+ assertEquals(6, params.size());
+ ParameterSpecification param = params.get(0);
+ assertNotNull(param);
+ assertEquals(0, param.getIndex());
+ assertNull(param.getTypeName());
+ assertNotNull(param.getValue());
+ assertTrue(param.getValue() instanceof TypedStringValue);
+ assertEquals("val0", ((TypedStringValue) param.getValue()).getStringValue());
+ assertNull(((TypedStringValue) param.getValue()).getTypeName());
+ param = params.get(1);
+ assertNotNull(param);
+ assertEquals(2, param.getIndex());
+ assertNull(param.getTypeName());
+ assertNotNull(param.getValue());
+ assertTrue(param.getValue() instanceof ReferenceValue);
+ assertEquals("val1", ((ReferenceValue) param.getValue()).getComponentName());
+ param = params.get(2);
+ assertNotNull(param);
+ assertEquals(1, param.getIndex());
+ assertNull(param.getTypeName());
+ assertNotNull(param.getValue());
+ assertTrue(param.getValue() instanceof NullValue);
+ param = params.get(3);
+ assertNotNull(param);
+ assertEquals(3, param.getIndex());
+ assertEquals("java.lang.String", param.getTypeName());
+ assertNotNull(param.getValue());
+ assertTrue(param.getValue() instanceof TypedStringValue);
+ assertEquals("val3", ((TypedStringValue) param.getValue()).getStringValue());
+ assertNull(((TypedStringValue) param.getValue()).getTypeName());
+ param = params.get(4);
+ assertNotNull(param);
+ assertEquals(4, param.getIndex());
+ assertNull(param.getTypeName());
+ assertNotNull(param.getValue());
+ assertTrue(param.getValue() instanceof ArrayValue);
+ ArrayValue array = (ArrayValue) param.getValue();
+ assertNull(array.getValueType());
+ assertNotNull(array.getArray());
+ assertEquals(3, array.getArray().length);
+ assertTrue(array.getArray()[0] instanceof TypedStringValue);
+ assertTrue(array.getArray()[1] instanceof ComponentValue);
+ assertTrue(array.getArray()[2] instanceof NullValue);
+ param = params.get(5);
+ assertNotNull(param);
+ assertEquals(5, param.getIndex());
+ assertNull(param.getTypeName());
+ assertNotNull(param.getValue());
+ assertTrue(param.getValue() instanceof ReferenceValue);
+ assertEquals("pojoB", ((ReferenceValue) param.getValue()).getComponentName());
+ }
+
+ public void testParse() throws Exception {
+ Parser parser = new Parser();
+ parser.parse(new URL[] { getClass().getResource("/test.xml") });
+ ComponentDefinitionRegistry registry = parser.getRegistry();
+ assertNotNull(registry);
+
+ }
+
+
+ protected Parser parse(String name) throws Exception {
+ Parser parser = new Parser();
+ parser.parse(new URL[] { getClass().getResource(name) });
+ return parser;
+ }
+}
Added: geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/test/java/org/apache/felix/blueprint/WiringTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/test/java/org/apache/felix/blueprint/WiringTest.java?rev=764556&view=auto
==============================================================================
--- geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/test/java/org/apache/felix/blueprint/WiringTest.java (added)
+++ geronimo/sandbox/gnodet/blueprint/org.apache.felix.blueprint/src/test/java/org/apache/felix/blueprint/WiringTest.java Mon Apr 13 18:49:20 2009
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.felix.blueprint;
+
+import java.net.URL;
+
+import junit.framework.TestCase;
+import org.apache.felix.blueprint.context.Instanciator;
+import org.apache.felix.blueprint.context.Parser;
+import org.apache.felix.blueprint.pojos.PojoA;
+import org.apache.xbean.recipe.ObjectGraph;
+import org.apache.xbean.recipe.Repository;
+
+public class WiringTest extends TestCase {
+
+ public void testWiring() throws Exception {
+ Parser parser = parse("/test-wiring.xml");
+
+ Repository repository = Instanciator.createRepository(parser.getRegistry());
+ ObjectGraph graph = new ObjectGraph(repository);
+ Object obj = graph.create("pojoA");
+ assertNotNull(obj);
+ assertTrue(obj instanceof PojoA);
+ PojoA pojoa = (PojoA) obj;
+ assertNotNull(pojoa.getPojob());
+ assertNotNull(pojoa.getPojob().getUri());
+ }
+
+ protected Parser parse(String name) throws Exception {
+ Parser parser = new Parser();
+ parser.parse(new URL[] { getClass().getResource(name) });
+ return parser;
+ }
+
+}