Installing and running the blueprint-sample bundle:
---------------------------------------------------
0) Download Felix (v2.0.0 at the time of this writing):
   
   http://www.apache.org/dist/felix/felix-framework-2.0.0.tar.gz

1) Start Felix under Java SE 5:
 
  java -jar bin/felix.jar

2) Install the following PAX Log service:

  a) install http://repo1.maven.org/maven2/org/ops4j/pax/logging/pax-logging-api/1.4/pax-logging-api-1.4.jar
  b) install http://repo1.maven.org/maven2/org/ops4j/pax/logging/pax-logging-service/1.4/pax-logging-service-1.4.jar

3) Install Felix EventAdmin and ConfigurationAdmin:

  a) install http://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.eventadmin/1.0.0/org.apache.felix.eventadmin-1.0.0.jar
  b) install http://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.configadmin/1.2.4/org.apache.felix.configadmin-1.2.4.jar

4) Build the blueprint project and install the extender and sample bundles:

  a) install file:///<m2_repo>/org/apache/aries/blueprint/aries-blueprint/<version>/aries-blueprint-<version>.jar
  b) install file:///<m2_repo>/org/apache/aries/blueprint/org.apache.aries.blueprint.sample/<version>/org.apache.aries.blueprint.sample-<version>.jar

5) Start the ConfigurationAdmin, extender and sample bundles:

  a) start <bundle id for config admin>
  b) start <bundle id for blueprint-bundle>
  c) start <bundle id for blueprint-sample>


Installing and running the Web Console and Jetty:
-------------------------------------------------
1) Install the following bundles:

   a) install http://www.apache.org/dist/felix/org.osgi.compendium-1.2.0.jar
   b) install http://www.apache.org/dist/felix/org.apache.felix.scr-1.0.8.jar
   c) install http://www.apache.org/dist/felix/org.apache.felix.http.jetty-1.0.0.jar
   d) install http://www.apache.org/dist/felix/org.apache.felix.webconsole-1.2.10.jar

2) Start the web console:

   a) start <bundle id for org.apache.felix.http.jetty>
   b) start <bundle id for org.apache.felix.webconsole>

   Note:  You will have to start the Config, Event and Scr bundles for those
     tabs to function in the web console.

3) Access the web console in a browser:

   http://localhost:8080/system/console
   uid = admin
   pwd = admin


