You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2009/04/08 19:06:58 UTC

svn commit: r763317 - in /geronimo/sandbox/gawor/rfc124: ./ extender/ extender/src/ extender/src/main/ extender/src/main/java/ extender/src/main/java/org/ extender/src/main/java/org/apache/ extender/src/main/java/org/apache/geronimo/ extender/src/main/...

Author: gawor
Date: Wed Apr  8 17:06:57 2009
New Revision: 763317

URL: http://svn.apache.org/viewvc?rev=763317&view=rev
Log:
rfc124 experiment

Added:
    geronimo/sandbox/gawor/rfc124/
    geronimo/sandbox/gawor/rfc124/README   (with props)
    geronimo/sandbox/gawor/rfc124/extender/
    geronimo/sandbox/gawor/rfc124/extender/pom.xml   (with props)
    geronimo/sandbox/gawor/rfc124/extender/src/
    geronimo/sandbox/gawor/rfc124/extender/src/main/
    geronimo/sandbox/gawor/rfc124/extender/src/main/java/
    geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/
    geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/
    geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/
    geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/osgi/
    geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/osgi/Activator.java   (with props)
    geronimo/sandbox/gawor/rfc124/extender/src/main/xsd/
    geronimo/sandbox/gawor/rfc124/extender/src/main/xsd/blueprint.xsd   (with props)
    geronimo/sandbox/gawor/rfc124/pom.xml   (with props)
    geronimo/sandbox/gawor/rfc124/sample/
    geronimo/sandbox/gawor/rfc124/sample/pom.xml   (with props)
    geronimo/sandbox/gawor/rfc124/sample/src/
    geronimo/sandbox/gawor/rfc124/sample/src/main/
    geronimo/sandbox/gawor/rfc124/sample/src/main/java/
    geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/
    geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/
    geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/
    geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/
    geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/
    geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Activator.java   (with props)
    geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Bar.java   (with props)
    geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Foo.java   (with props)
    geronimo/sandbox/gawor/rfc124/sample/src/main/resources/
    geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/
    geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/blueprint/
    geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/blueprint/config.xml   (with props)

Added: geronimo/sandbox/gawor/rfc124/README
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gawor/rfc124/README?rev=763317&view=auto
==============================================================================
--- geronimo/sandbox/gawor/rfc124/README (added)
+++ geronimo/sandbox/gawor/rfc124/README Wed Apr  8 17:06:57 2009
@@ -0,0 +1,24 @@
+
+1) Start Felix under Java 6
+ 
+  java -jar bin/felix.jar
+
+2) Install the following bundles:
+
+  a) install http://repo1.maven.org/maven2/org/apache/xbean/xbean-reflect/3.5/xbean-reflect-3.5.jar
+  b) install http://www.springsource.com/repository/app/bundle/version/download?name=com.springsource.org.apache.commons.logging&version=1.1.1&type=binary
+  c) install http://www.springsource.com/repository/app/bundle/version/download?name=com.springsource.org.apache.log4j&version=1.2.15&type=binary
+  d) install http://www.springsource.com/repository/app/bundle/version/download?name=com.springsource.org.objectweb.asm&version=3.1.0&type=binary
+  e) install http://www.springsource.com/repository/app/bundle/version/download?name=com.springsource.org.objectweb.asm.tree&version=3.1.0&type=binary
+  f) install http://www.springsource.com/repository/app/bundle/version/download?name=com.springsource.org.objectweb.asm.commons&version=3.1.0&type=binary
+
+3) Build the rfc124 project and install the extender and sample bundles:
+
+  a) install file://<m2_repo>/org/apache/geronimo/osgi/extender/1.0-SNAPSHOT/extender-1.0-SNAPSHOT.jar
+  b) install file://<m2_repo>/org/apache/geronimo/osgi/sample/1.0-SNAPSHOT/sample-1.0-SNAPSHOT.jar
+
+4) Start the extender and sample bundles:
+
+  a) start <bundle id for extender bundle>
+  b) start <bundle id for sample bundle>
+

Propchange: geronimo/sandbox/gawor/rfc124/README
------------------------------------------------------------------------------
    svn:executable = 

Added: geronimo/sandbox/gawor/rfc124/extender/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gawor/rfc124/extender/pom.xml?rev=763317&view=auto
==============================================================================
--- geronimo/sandbox/gawor/rfc124/extender/pom.xml (added)
+++ geronimo/sandbox/gawor/rfc124/extender/pom.xml Wed Apr  8 17:06:57 2009
@@ -0,0 +1,103 @@
+<!--
+    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.
+-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.geronimo.osgi</groupId>
+        <artifactId>rfc124</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>extender</artifactId>
+    <packaging>jar</packaging>
+    <name>Extender Bundle</name>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
+                        <Bundle-Activator>org.apache.geronimo.osgi.Activator</Bundle-Activator>
+                    </instructions>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>bundle-manifest</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+                    </archive>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <inherited>true</inherited>
+                <configuration>
+                    <source>1.5</source>
+                    <target>1.5</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxb2-maven-plugin</artifactId>
+                <version>1.2</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>xjc</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <packageName>org.apache.geronimo.blueprint</packageName>
+                    <extension>true</extension>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.1</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.xbean</groupId>
+            <artifactId>xbean-reflect</artifactId>
+            <version>3.5</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+</project>

Propchange: geronimo/sandbox/gawor/rfc124/extender/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gawor/rfc124/extender/pom.xml
------------------------------------------------------------------------------
    svn:executable = 

Propchange: geronimo/sandbox/gawor/rfc124/extender/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/gawor/rfc124/extender/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/osgi/Activator.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/osgi/Activator.java?rev=763317&view=auto
==============================================================================
--- geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/osgi/Activator.java (added)
+++ geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/osgi/Activator.java Wed Apr  8 17:06:57 2009
@@ -0,0 +1,167 @@
+/**
+ *  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.geronimo.osgi;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.List;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Unmarshaller;
+
+import org.apache.geronimo.blueprint.Component;
+import org.apache.geronimo.blueprint.Components;
+import org.apache.geronimo.blueprint.ConstructorArg;
+import org.apache.geronimo.blueprint.TpropertyType;
+import org.apache.geronimo.blueprint.Value;
+import org.apache.xbean.recipe.DefaultRepository;
+import org.apache.xbean.recipe.ObjectGraph;
+import org.apache.xbean.recipe.ObjectRecipe;
+import org.apache.xbean.recipe.Option;
+import org.apache.xbean.recipe.ReferenceRecipe;
+import org.apache.xbean.recipe.Repository;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.BundleListener;
+
+public class Activator implements BundleActivator, BundleListener {
+
+    public void start(BundleContext context) {
+        System.out.println("Starting to listen for bundle events.");
+        context.addBundleListener(this);
+
+        Bundle[] bundles = context.getBundles();
+        for (Bundle b : bundles) {
+            if (b.getState() == Bundle.ACTIVE) {
+                checkBundle(b);
+            }
+        }
+    }
+
+    public void stop(BundleContext context) {
+        context.removeBundleListener(this);
+        System.out.println("Stopped listening for bundle events.");
+    }
+
+    public void bundleChanged(BundleEvent event) {
+        System.out.println("bundle changed:" + event.getBundle().getSymbolicName() + "  "+ event.getType());
+        if (event.getType() == BundleEvent.STARTED) {
+            checkBundle(event.getBundle());
+        }
+    }
+
+    private void checkBundle(Bundle b) {
+        System.out.println("Checking: " + b.getSymbolicName());
+        
+        Enumeration e = b.findEntries("OSGI-INF/blueprint", "*.xml", true);
+        if (e != null) {
+            while (e.hasMoreElements()) {
+                URL u = (URL)e.nextElement();
+                System.out.println("found xml config:" + u);
+                try {
+                    readConfig(b, u);
+                } catch (Exception ee) {
+                    ee.printStackTrace();
+                }
+            }
+        }
+        
+        Dictionary d = b.getHeaders();
+        System.out.println(d.get("Bundle-Blueprint"));
+    }
+
+
+    private void readConfig(Bundle bundle, URL u) throws Exception {
+        JAXBContext context = JAXBContext.newInstance("org.apache.geronimo.blueprint", getClass().getClassLoader());
+        Unmarshaller um = context.createUnmarshaller();
+        Object o = um.unmarshal(u);
+        Components components = (Components)o;
+        List<Object> objects = components.getComponentOrRefListOrRefSet();
+
+        Repository repository = new DefaultRepository();
+        ObjectGraph graph = new ObjectGraph(repository);
+        List<String> com = new ArrayList<String>();
+
+        for (Object obj : objects) {
+            if (obj instanceof Component) {
+                Component component = (Component)obj;
+                System.out.println(component.getId() + " " + component.getClazz());
+                
+                Class clazz = bundle.loadClass(component.getClazz());
+                System.out.println(clazz);
+                
+                ObjectRecipe objectRecipe = new ObjectRecipe(clazz);
+                objectRecipe.setName(component.getId());
+                objectRecipe.allow(Option.PRIVATE_PROPERTIES);
+                repository.add(component.getId(), objectRecipe);
+                com.add(component.getId());
+
+                List<Object> props = component.getConstructorArgOrPropertyOrAny();
+                for (Object prop : props) {
+                    System.out.println(prop);
+                    if (prop instanceof ConstructorArg) {
+                        ConstructorArg carg = (ConstructorArg)prop;
+                    } else if (prop instanceof JAXBElement) {
+                        JAXBElement elem = (JAXBElement)prop;
+                        System.out.println(elem.getValue());
+                        TpropertyType trop = (TpropertyType)elem.getValue();
+
+                        String refName = getRef(trop);
+                        String propValue = getValue(trop);
+                        System.out.println(trop.getName() + " " + propValue + " " + refName);
+                        
+                        if (refName != null) {
+                            objectRecipe.setProperty(trop.getName(), new ReferenceRecipe(refName));
+                        } else {
+                            objectRecipe.setProperty(trop.getName(), propValue);
+                        }
+                    }
+                }
+                
+            }
+        }
+
+        System.out.println(graph.createAll(com));
+    }
+
+    private String getRef(TpropertyType prop) {
+        if (prop.getRef() != null) {
+            return prop.getRef();
+        } else if (prop.getRefElement() != null) {
+            return prop.getRefElement().getComponent();
+        } else {
+            return null;
+        }
+    }
+
+    private String getValue(TpropertyType prop) {
+        if (prop.getValue() != null) {
+            return prop.getValue();
+        } else if (prop.getValueElement() != null) {
+            Value v = prop.getValueElement();
+            return (v.getContent().isEmpty()) ? null : v.getContent().get(0);
+        } else {
+            return null;
+        }
+    }
+    
+}
\ No newline at end of file

Propchange: geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/osgi/Activator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/osgi/Activator.java
------------------------------------------------------------------------------
    svn:executable = 

Propchange: geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/osgi/Activator.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/gawor/rfc124/extender/src/main/java/org/apache/geronimo/osgi/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/gawor/rfc124/extender/src/main/xsd/blueprint.xsd
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gawor/rfc124/extender/src/main/xsd/blueprint.xsd?rev=763317&view=auto
==============================================================================
--- geronimo/sandbox/gawor/rfc124/extender/src/main/xsd/blueprint.xsd (added)
+++ geronimo/sandbox/gawor/rfc124/extender/src/main/xsd/blueprint.xsd Wed Apr  8 17:06:57 2009
@@ -0,0 +1,398 @@
+<?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" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" targetNamespace="http://www.osgi.org/xmlns/blueprint/v1.0.0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0" jxb:version="1.0">
+  <!-- Schema elements for core component declarations -->
+  <xsd:complexType name="TidentifiedType" abstract="true">
+    <xsd:attribute name="id" type="xsd:ID">
+     </xsd:attribute>
+  </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="1">
+        <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="1">
+        <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:annotation>
+      <xsd:appinfo>
+        <jxb:property name="refElement"/>
+      </xsd:appinfo>
+    </xsd:annotation>
+    <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:annotation>
+      <xsd:appinfo>
+        <jxb:property name="valueElement"/>
+      </xsd:appinfo>
+    </xsd:annotation>
+    <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:annotation>
+      <xsd:appinfo>
+        <jxb:property name="keyElement"/>
+      </xsd:appinfo>
+    </xsd:annotation>
+    <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>
+  <xsd:attributeGroup name="defaults">
+    <xsd:attribute name="default-timeout" type="xsd:long" default="300000"/>
+    <xsd:attribute name="default-availability" type="Tavailability" default="mandatory"/>
+  </xsd:attributeGroup>
+  <!-- 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 component 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 component declaration -->
+        <xsd:any namespace="##other" minOccurs="1" maxOccurs="1" processContents="skip"/>
+      </xsd:sequence>
+    </xsd:choice>
+    <!-- shortcut for component 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>

Propchange: geronimo/sandbox/gawor/rfc124/extender/src/main/xsd/blueprint.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gawor/rfc124/extender/src/main/xsd/blueprint.xsd
------------------------------------------------------------------------------
    svn:executable = 

Propchange: geronimo/sandbox/gawor/rfc124/extender/src/main/xsd/blueprint.xsd
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/gawor/rfc124/extender/src/main/xsd/blueprint.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: geronimo/sandbox/gawor/rfc124/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gawor/rfc124/pom.xml?rev=763317&view=auto
==============================================================================
--- geronimo/sandbox/gawor/rfc124/pom.xml (added)
+++ geronimo/sandbox/gawor/rfc124/pom.xml Wed Apr  8 17:06:57 2009
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>org.apache.geronimo.osgi</groupId>
+    <artifactId>rfc124</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>RFC 124</name>
+    <description>RFC 124</description>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>org.osgi.core</artifactId>
+                <version>1.2.0</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <modules>
+        <module>extender</module>
+        <module>sample</module>
+    </modules>
+
+</project>

Propchange: geronimo/sandbox/gawor/rfc124/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gawor/rfc124/pom.xml
------------------------------------------------------------------------------
    svn:executable = 

Propchange: geronimo/sandbox/gawor/rfc124/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/gawor/rfc124/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: geronimo/sandbox/gawor/rfc124/sample/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gawor/rfc124/sample/pom.xml?rev=763317&view=auto
==============================================================================
--- geronimo/sandbox/gawor/rfc124/sample/pom.xml (added)
+++ geronimo/sandbox/gawor/rfc124/sample/pom.xml Wed Apr  8 17:06:57 2009
@@ -0,0 +1,52 @@
+<!--
+    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.
+-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.geronimo.osgi</groupId>
+        <artifactId>rfc124</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>sample</artifactId>
+    <packaging>bundle</packaging>
+    <name>Sample RFC-124 Bundle</name>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin
+                </artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
+                        <Bundle-Activator>
+                            org.apache.geronimo.osgi.example.Activator
+                        </Bundle-Activator>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+</project>

Propchange: geronimo/sandbox/gawor/rfc124/sample/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gawor/rfc124/sample/pom.xml
------------------------------------------------------------------------------
    svn:executable = 

Propchange: geronimo/sandbox/gawor/rfc124/sample/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/gawor/rfc124/sample/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Activator.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Activator.java?rev=763317&view=auto
==============================================================================
--- geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Activator.java (added)
+++ geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Activator.java Wed Apr  8 17:06:57 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.apache.geronimo.osgi.example;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+    public void start(BundleContext context) {
+        System.out.println("Bundle start");
+    }
+
+    public void stop(BundleContext context) {
+        System.out.println("Bundle stop");
+    }
+   
+}

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Activator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Activator.java
------------------------------------------------------------------------------
    svn:executable = 

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Activator.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Bar.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Bar.java?rev=763317&view=auto
==============================================================================
--- geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Bar.java (added)
+++ geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Bar.java Wed Apr  8 17:06:57 2009
@@ -0,0 +1,28 @@
+/**
+ *  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.geronimo.osgi.example;
+
+public class Bar {
+    
+    private String value;
+    
+    public String toString() {
+        return hashCode() + ": " + value;
+    }
+
+}
+

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Bar.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Bar.java
------------------------------------------------------------------------------
    svn:executable = 

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Bar.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Bar.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Foo.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Foo.java?rev=763317&view=auto
==============================================================================
--- geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Foo.java (added)
+++ geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Foo.java Wed Apr  8 17:06:57 2009
@@ -0,0 +1,30 @@
+/**
+ *  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.geronimo.osgi.example;
+
+public class Foo {
+    
+    private int a;
+    private int b;
+    private Bar bar;
+
+    public String toString() {
+        return a + " " + b + " " + bar;
+    }
+
+}
+

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Foo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Foo.java
------------------------------------------------------------------------------
    svn:executable = 

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Foo.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/java/org/apache/geronimo/osgi/example/Foo.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/blueprint/config.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/blueprint/config.xml?rev=763317&view=auto
==============================================================================
--- geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/blueprint/config.xml (added)
+++ geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/blueprint/config.xml Wed Apr  8 17:06:57 2009
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<components xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+
+    <component id="foo" class="org.apache.geronimo.osgi.example.Foo">
+        <property name="a" value="5" />
+        <property name="b" value="10" />
+        <property name="bar" ref="bar" />
+    </component>
+
+    <component id="bar" class="org.apache.geronimo.osgi.example.Bar">
+        <property name="value"><value>Hello FooBar</value></property>
+    </component>
+
+</components>
+

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/blueprint/config.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/blueprint/config.xml
------------------------------------------------------------------------------
    svn:executable = 

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/blueprint/config.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/gawor/rfc124/sample/src/main/resources/OSGI-INF/blueprint/config.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml