You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by zo...@apache.org on 2010/12/27 19:31:08 UTC

svn commit: r1053126 [4/4] - in /incubator/aries/branches/site/trunk/content: ./ community/ ct/ development/ development/compliancetesting/ documentation/ documentation/ariesprogrammingmodel/ documentation/tutorials/ downloads/ downloads/archived-relea...

Added: incubator/aries/branches/site/trunk/content/modules/blueprint.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/blueprint.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/blueprint.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/blueprint.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,473 @@
+Title: Blueprint
+<a name="Blueprint-Blueprint"></a>
+# Blueprint
+
+<a name="Blueprint-Introduction"></a>
+## Introduction
+
+Blueprint provides a dependency injection framework for OSGi and was
+standardized by the OSGi Alliance in OSGi Compendium R4.2. It is designed
+to deal with the dynamic nature of OSGi, where services can become
+available and unavailable at any time. The specification is also designed
+to work with plain old Java objects (POJOs) enabling simple components to
+be written and unit tested in a JSE environment without needing to be aware
+of how they are assembled. The Blueprint XML files that define and describe
+the assembly of various components are key to the Blueprint programming
+model. The specification describes how the components get instantiated and
+wired together to form a running module. 
+
+The following documentation covers the 80:20 usage of Blueprint.  For
+further details, please refer to the OSGi Compendium R4.2 specification.
+
+
+<a name="Blueprint-BlueprintBundles"></a>
+##  Blueprint Bundles
+
+The Blueprint Container specification uses an extender pattern, whereby an
+extender bundle monitors the state of bundles in the framework and performs
+actions on behalf of those bundles based on their state. The Blueprint
+extender bundle waits for the bundles to be activated and checks whether
+they are Blueprint bundles. A bundle is considered to be a Blueprint bundle
+when it contains one or more Blueprint XML files. These XML files are at a
+fixed location under the OSGI-INF/blueprint/ directory or are specified
+explicitly in the Bundle-Blueprint manifest header.
+
+Once the extender determines that a bundle is a Blueprint bundle, it
+creates a Blueprint Container on behalf of that bundle. The Blueprint
+Container is responsible for:
+
+    * Parsing the Blueprint XML files
+    * Instantiating the components
+    * Wiring the components together
+    * Registering services
+    * Looking up service references
+
+During initialization, the Blueprint Container ensures that mandatory
+service references are satisfied, registers all the services into the
+service registry, and creates initial component instances. The Blueprint
+extender bundle also destroys the Blueprint Container for a bundle when the
+bundle is stopped. 
+
+<a name="Blueprint-BlueprintXML"></a>
+##  Blueprint XML
+
+The Blueprint XML file is identified by a top-level blueprint element, as
+shown below:
+
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+        ...
+    </blueprint>
+
+
+The XML namespace identifies the document as conforming to the Blueprint
+version 1.0.0.	The top-level blueprint element identifies the document as
+a blueprint module definition.
+
+*TODO:* ensure id, activation and dependsOn get documented somewhere.
+
+
+<a name="Blueprint-Beans"></a>
+##  Beans
+
+Beans are declared using the bean element.  The following defines a single
+bean called *accountOne* implemented by the POJO
+*org.apache.aries.simple.Account*.
+
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+       <bean id="accountOne" class="org.apache.aries.simple.Account" />
+    </blueprint>
+
+
+<a name="Blueprint-BeanConstruction"></a>
+###  Bean Construction
+
+During object construction, the Blueprint Container must first find the
+right constructor or a factory method with a compatible set of parameters
+that matches the arguments specified in the XML. By default, the Blueprint
+Container uses the number and order of the argument elements in XML to find
+the right constructor or method. If the argument  elements cannot be mapped
+to the parameters in the order they are in, the Blueprint Container will
+attempt to reorder the argument elements and find the best-fitting
+arrangement.
+
+To help the Blueprint Container pick the right constructor, method, or
+parameter arrangement, additional attributes, such as index or type, can be
+specified on the argument element. For example, the type attribute
+specifies a class name used to match the argument element to a parameter by
+the exact type. 
+
+A bean can be constructed using a class constructor. In the following
+example, the *class* attribute specifies the name of the Java class to
+instantiate. The Blueprint Container will create the *Account* object by
+passing *1* as the argument to the constructor. 
+
+
+   public class Account {      
+       public Account(long number) {
+	  ...
+       }
+       ...
+   }
+
+
+
+       <bean id="accountOne" class="org.apache.aries.simple.Account">
+           <argument value="1"/>
+       </bean>
+
+
+
+A bean can be constructed using a static factory method.  In this example,
+the *class* attribute specifies the name of the class that contains a
+static factory method. The name of the static factory method is specified
+by the *factory-method*  attribute. The Blueprint Container will call the
+*createAccount()* static method on the *StaticAccountFactory* class and
+pass 2 as the argument to create the Account object. 
+
+
+       public class StaticAccountFactory {	    
+           public static Account createAccount(long number) {
+	      return new Account(number);
+           }
+       }
+
+
+
+       <bean id="accountTwo"
+        class="org.apache.aries.simple.StaticAccountFactory" 
+	     factory-method="createAccount">   
+           <argument value="2"/>
+       </bean>
+
+
+A bean can be constructed using an instance factory method.  In the
+example, the *accountFactory* bean is the factory. The Blueprint
+Container will first create the *AccountFactory* instance with its own
+arguments and properties. In this case, only a single argument is
+specified: the factory name. The Blueprint Container will then call the
+*createAccount()* method on the *AccountFactory* instance and pass 3 as
+the argument to create the Account object.
+
+
+   public class AccountFactory {      
+       public AccountFactory(String factoryName) {
+	  ...
+       }
+       public Account createAccount(long number) {
+	  return new Account(number);
+       }
+   }
+
+
+
+
+       <bean id="accountFactory"
+        class="org.apache.aries.simple.AccountFactory">  
+           <argument value="account factory"/>	
+       </bean>
+
+       <bean id="accountThree"
+	     factory-ref="accountFactory" 
+	     factory-method="createAccount">   
+           <argument value="3"/>
+       </bean>
+
+
+<a name="Blueprint-BeanProperties"></a>
+###  Bean Properties
+
+Beans can have property values injected.  Injection is performed
+immediately after the bean is constructed.  The following example creates
+the Account bean and then sets the description property using the Java
+Beans naming convention.
+
+
+
+   public class Account {      
+       public Account(long number) {
+	  ...
+       }
+       public String getDescription() {
+	  ...
+       }
+   }
+
+
+
+       <bean id="accountOne" class="org.apache.aries.simple.Account">
+           <argument value="1"/>
+           <property name="description" value="#1 account"/>
+       </bean>
+
+
+<a name="Blueprint-BeanWiring"></a>
+#### Bean Wiring
+
+Property injection is used for wiring beans together.  In the following
+example *accountOne* is injected with a *Currency* bean.
+
+
+       public class Account {      
+           public Account() {
+	      ...
+           }
+           public void setCurrency(Currency currency) {
+	      ...
+           }
+       }
+
+
+
+       public class Currency {	
+           public Currency() {
+	      ...
+           }
+       }
+
+
+
+       <bean id="accountOne" class="org.apache.aries.simple.Account">
+           <property name="currency" ref="currency" />
+       </bean>
+
+       <bean id="currency" class="org.apache.aries.simple.Currency" />
+
+
+
+
+<a name="Blueprint-Services"></a>
+##  Services
+
+In Blueprint XML, a service element defines the registration of a service
+in the OSGi service registry. 
+
+The bean that provides the service object can be referenced using the
+*ref* attribute.  The interfaces under which the service is registered
+can be specified using the *interface* attribute:
+
+
+       public class AccountImpl implements Account {      
+           public Account() {
+	      ...
+           }
+           public void setCurrency(Currency currency) {
+	      ...
+           }
+       }
+
+
+
+       <service id="serviceOne" ref="account"
+        interface="org.apache.aries.simple.Account" />
+
+       <bean id="account" class="org.apache.aries.simple.AccountImpl" />
+
+
+The bean that provides the service object can be inlined in the service
+element as follows:
+
+
+       <service id="serviceTwo"  interface="org.apache.aries.simple.Account">
+          <bean class="org.apache.aries.simple.AccountImpl" />
+       </service>
+
+
+The interfaces under which a service is registered can be determined by
+Blueprint using *auto-export*.  The following registers the service under
+all the bean's interfaces:
+
+
+       <service id="serviceOne" ref="account" auto-export="interfaces" />
+
+       <bean id="account" class="org.apache.aries.simple.AccountImpl" />
+
+
+Other values for *auto-export* are *disabled* (the default)
+*class-hierarchy* and *all-classes*.
+
+<a name="Blueprint-ServiceProperties"></a>
+### Service Properties
+
+A service can also be registered with a set of properties that can be
+specified using the *service-properties*  sub-element. The
+*service-properties* element contains multiple *entry* sub-elements
+that represent the individual properties. The property key is specified
+using a *key* attribute, but the property value can be specified as a
+*value* attribute or inlined within the element. The service property
+values can be of different types, but only OSGi service property types are
+permitted: primitives, primitive wrapper classes, collections, or arrays of
+primitive types. 
+
+The following is an example of a service registration with two service
+properties. The *active* service property has type of
+*java.lang.Boolean*. The *mode* property is of the default type,
+*String*. 
+
+
+       <service id="serviceFour" ref="account" autoExport="all-classes">
+          <service-properties>
+	      <entry key="active">
+	          <value type="java.lang.Boolean">true</value>
+	      </entry>
+	      <entry key="mode" value="shared"/>
+          </service-properties>
+       </service>
+
+
+<a name="Blueprint-ServiceRanking"></a>
+### Service Ranking
+
+Service ranking can be used to affect the choice of service when there are
+multiple matches.  When choosing between two services, the higher ranked
+service will be returned ahead of the lower.  The default ranking value is
+0. Service ranking is specified using the *ranking* attributes as
+follows:
+
+       <service id="serviceFive" ref="account" auto-export="all-classes"
+        ranking="3" />
+
+
+
+<a name="Blueprint-References"></a>
+## References
+
+Services are found in the service registry using the reference element. The
+following shows a reference named *accountRef* to an *Account* service.
+ If a service matching this reference is found in the service registry then
+it is set on the *accountClient* bean through the *account* property.
+
+       <bean id="accountClient" class="...">
+           <property name="account" ref="accountRef" />
+       </bean>
+
+       <reference id="accountRef" interface="org.apache.aries.simple.Account"
+    /> 
+
+
+<a name="Blueprint-ReferenceDynamism"></a>
+### Reference Dynamism
+
+The object that is injected for a reference is actually a proxy to the
+service registered in the service registry. A proxy enables the injected
+object to remain the same while the backing service can come and go or be
+replaced with another service. Calls on a proxy that does not have a
+backing service will block until a service becomes available or a timeout
+occurs at which point a ServiceUnavailableException will be thrown.
+
+       try {
+          balance = account.getBalance();
+       } catch (ServiceUnavailableException e) {
+          ...
+       }
+
+
+The default timeout Blueprint will wait for is 300000 milliseconds (5
+minutes).  This value can be changed on a per bundle basis using directives
+on the Bundle-SymbolicName.  The following switches the timeout off
+completely (the default is true):
+
+       Bundle-SymbolicName: org.apache.aries.simple.account;
+        blueprint.graceperiod:=false
+
+
+The following sets the timeout to 10000 milliseconds (10 seconds):
+
+       Bundle-SymbolicName: org.apache.aries.simple.account;
+        blueprint.graceperiod:=false; blueprint.timeout=10000;
+
+
+The timeout can also be set on an individual reference using the
+*timeout* attribute.	The following sets the timeout for the account
+reference to 20000 milliseconds (20 seconds).
+
+       <reference id="accountRef" timeout="20000"
+        interface="org.apache.aries.simple.Account" /> 
+
+
+In all cases, a value of 0 means wait indefinitely for the reference to
+become satisfied.
+
+<a name="Blueprint-ReferenceLists"></a>
+### Reference Lists
+
+Multiple matching services can be found using the *reference-list*
+element.  The *reference-list* provides a *List* object that contains
+the service proxy objects or *ServiceReference* objects, depending on the
+*member-type* setting. The provided *List* object is dynamic, as it can
+grow and shrink as matching services are added or removed from the service
+registry. The *List* object is read-only and only supports a subset of
+the *List* API.
+
+The proxies in a *reference-list* are different from the proxies for a
+reference. The *reference-list* proxies target a specific service, do not
+have a *timeout*, and throw *ServiceUnavailableException* immediately
+if their service becomes unavailable.
+
+The following example shows a reference-list that returns a list of service
+objects (proxies).  This is the default value for the *member-type*
+attribute
+
+       <reference-list id="accountRefs" member-type="service-object"
+        interface="org.apache.aries.simple.Account" /> 
+
+
+The following shows an example of a reference-list that returns a list of
+ServiceReferences:
+
+       <reference-list id="accountRefs" member-type="service-reference"
+        interface="org.apache.aries.simple.Account" /> 
+
+
+Example showing mandatory or optional references (availability)
+
+Example showing use of filter
+
+<a name="Blueprint-BeanProperties"></a>
+## Bean Properties
+
+Example showing use of bean properties
+
+<a name="Blueprint-Scopes"></a>
+## Scopes
+
+Example showing singleton scope
+
+Example showing prototype scope for beans
+
+Example showing prototype scope for services
+
+<a name="Blueprint-ObjectValues"></a>
+## Object Values
+
+Intro to Object Values
+
+Examples showing the use of the various different object value types - ref,
+map, props collection (list, array, set).
+
+<a name="Blueprint-Lifecycle"></a>
+##  Lifecycle
+
+Example showing use of init/destroy-method
+
+<a name="Blueprint-LazyandEagerActiviation"></a>
+##  Lazy and Eager Activiation
+
+Example showing lazy activiation.
+
+Example showing eager activation.
+
+<a name="Blueprint-Dynamism"></a>
+##  Dynamism
+
+Example showing service-listener
+
+Example showing reference-listener
+
+<a name="Blueprint-TypeConverters"></a>
+##  Type Converters
+
+

Added: incubator/aries/branches/site/trunk/content/modules/blueprintannotation.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/blueprintannotation.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/blueprintannotation.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/blueprintannotation.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,238 @@
+Title: BlueprintAnnotation
+<a name="BlueprintAnnotation-Introduction"></a>
+# Introduction
+
+Blueprint annotation is being prototyped in Apache Aries in
+trunk/blueprint.   The blueprint annotation service is an optional service
+to the blueprint core and should not affect the blueprint core if
+annotation supported is not required.	If the blueprint annotation service
+is available, the bundle contains no blueprint definition XML and the
+bundle contains the manifest header *Bundle-Blueprint-Annotation* with
+the value set to true, the blueprint annotation service will attempt to
+scan the bundle for blueprint annotations, such as @Blueprint, @Bean,
+@Service, @Reference, @ReferenceList, etc.  The blueprint annotation api is
+available in trunk/blueprint/blueprint-annotation-api module, while the
+blueprint implementation is available in
+trunk/blueprint/blueprint-annotatiom-impl module.  A blueprint annotated
+sample is also provided in trunk/blueprint/blueprint-sample-annotation.
+
+<a name="BlueprintAnnotation-OverviewofAvailableblueprintAnnotations"></a>
+## Overview of Available blueprint Annotations
+
+<a name="BlueprintAnnotation-@InjectAnnotation"></a>
+### @Inject Annotation
+@Inject annotation can be used to inject fields or methods.
+
+
+
+    @Bean(id="bar")
+    public class Bar {
+    
+        @Inject(value="Hello FooBar")
+        private String value;
+
+        @Inject(ref="blueprintBundleContext")
+        private BundleContext context;
+        ...
+    }
+
+
+<a name="BlueprintAnnotation-@BeanAnnotation"></a>
+### @Bean Annotation
+
+You can annotate a bean using @Bean annotation.  The bean id is currently
+required, even tho it is possible we may want to the annotation service to
+auto generate one in the future.  Optionally, you can also specify
+activation, dependsOn, description, scope, factoryRef, factoryMethod and
+args of the bean.
+
+\* Example of using args property for the @Bean annotation.
+
+    @Bean(id="accountOne", args=@Arg(value="1"))
+    public class Account {
+
+        private long accountNumber;
+
+        public Account(long number) {
+	    this.accountNumber = number;
+        }
+    }
+
+
+\* Example of using factoryMethod and args properties for the @Bean
+annotation
+
+    @Bean(id="accountTwo",
+          factoryMethod="createAccount",
+          args = @Arg(value="2"))
+    public class StaticAccountFactory {
+
+        public static Account createAccount(long number) {
+    	return new Account(number);
+         }
+    }
+
+
+
+\* Example of using factoryRef, factoryMethod, and args properties for the
+@Bean annotation
+
+    @Bean(id="accountThree",
+          factoryRef="accountFactory",
+          factoryMethod="createAccount",
+          args=@Arg(value="3"))
+    public class NewAccount {
+
+        private long accountNumber;
+
+        public NewAccount(long number) {
+    	this.accountNumber = number;
+        }
+        ...
+    }
+
+
+<a name="BlueprintAnnotation-@Service,@RegistrationListener,@Register,@UnregisterAnnotations"></a>
+### @Service, @RegistrationListener, @Register, @Unregister Annotations
+If you want to register a bean as a service, you can use @Service
+annotation to do so.  You can specify ranking, autoExport, interfaces,
+serviceProperties and registrationListeners for the service.
+
+
+    @Bean(id="foo")
+    @Service(autoExport="all-classes",
+    	serviceProperties =
+    @ServiceProperty(key="blueprint.annotation.sample", value="true"),
+    	registerationListeners =
+    @RegistrationListener(ref="fooRegistrationListener"), 
+    	ranking=0)
+    public class Foo implements Serializable {
+       ...
+    }
+
+
+
+To annotation a class as registration listener, you can use the
+@RegistrationListener annotation.  @Register can be used to annotate the
+register-method for the registration listener and @Unregister annotation
+can be used on the unregister-method for the registration listener.
+
+    @Bean(id="fooRegistrationListener")
+    @RegistrationListener
+    public class FooRegistrationListener {
+        
+        @Register
+        public void serviceRegistered(Serializable foo, Map props) {
+    	System.out.println("Service registration notification: " + foo + "
+        " + props);
+        }
+    
+        @Unregister
+        public void serviceUnregistered(Foo foo, Map props) {
+    	System.out.println("Service unregistration notification: " + foo +
+        " " + props);
+        }
+
+    }
+
+
+<a name="BlueprintAnnotation-@Reference,@ReferenceList,@ReferenceListenerAnnotations"></a>
+### @Reference, @ReferenceList, @ReferenceListener Annotations
+
+For a bean that you want to act as a ReferenceListener, you can use
+@ReferenceListener to annotate the bean class.	 
+
+For the service that you want to inject the reference, you can use the
+@Inject and @Reference annotation, with the id, serviceInterface, timeout
+and referenceListeners properties specified for the reference.	 
+
+
+    @Bean(id="bindingListener")
+    @ReferenceListener
+    public class BindingListener {
+
+        @Inject @Reference (id="ref2", 
+    	    serviceInterface = InterfaceA.class,
+    	    timeout=100,
+    referenceListeners=@ReferenceListener(ref="bindingListener"))
+        private InterfaceA a;
+        ...
+        @Init
+        public void init() {
+        }
+
+        @Bind
+        public void bind(InterfaceA a, Map props) {
+    	this.a = a;
+    	this.props = props;
+        }
+
+        @Unbind
+        public void unbind(InterfaceA a, Map props) {
+    	this.a = null;
+    	this.props = null;
+        }
+
+    }
+
+
+
+@ReferenceList is very similar as @Reference, except that the timeout
+property is not supported in @ReferenceList, while the memberType property
+is supported in @ReferenceList.  This is same as the blueprint XML schema.
+
+
+    @Bean(id="listBindingListener")
+    @ReferenceListener
+    public class ListBindingListener {
+
+        @Inject @ReferenceList (id="ref-list", 
+	        serviceInterface = InterfaceA.class,
+	   
+    referenceListeners=@ReferenceListener(ref="listBindingListener"))
+        private InterfaceA a;
+        ...
+    }
+
+
+<a name="BlueprintAnnotation-@Blueprintannotation"></a>
+### @Blueprint annotation
+@Blueprint annotation can be used on any class to annotate the global
+property of the blueprint bundle, such as defaultActivation,
+defaultTimeout, defaultAvailability.
+
+
+    @Blueprint(defaultActivation="eager", defaultTimeout=300,
+    defaultAvailability="optional")
+    @Bean(id="bar")
+    public class Bar {
+        ...
+    }
+
+
+<a name="BlueprintAnnotation-Typeconverters"></a>
+### Type converters
+If type converters are desired, you can use the @Bean annotation for it. 
+The blueprint annotation service will recognize it as a type converter if
+it implements the *org.osgi.service.blueprint.container.Converter*
+interface
+
+
+    @Bean(id="converter1")
+    public class DateTypeConverter implements Converter {
+    
+        @Inject(name="format", value="yyyy.MM.dd")
+        DateFormat dateFormat;
+        ...
+    }
+
+
+<a name="BlueprintAnnotation-Limitation"></a>
+### Limitation
+Blueprint Annotation is still prototype work and currently only runtime
+annotation scanning is supported.  While it provides some basic useful
+functions, there are still many things that you cannot do using annotation,
+such as inject a list with values, inject inline beans, etc.
+
+
+

Added: incubator/aries/branches/site/trunk/content/modules/ebamavenpluginproject.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/ebamavenpluginproject.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/ebamavenpluginproject.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/ebamavenpluginproject.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,102 @@
+Title: EBAMavenPluginProject
+<a name="EBAMavenPluginProject-EBAMavenPlugin"></a>
+# EBA Maven Plugin
+
+The EBA Maven Plugin provides the ability to generate EBA archives using
+Maven.	The EBA archive format is described in [Applications](applications.html)
+.  An EBA archive can optionally contain an Application manifest
+(APPLICATION.MF).  This can be added in one of two ways
+
+1. Hand written and added into the archive.
+1. Generated based on pom configuration.
+
+<a name="EBAMavenPluginProject-UsingthePlugin"></a>
+## Using the Plugin
+
+The plugin is included by as follows:
+
+
+        <build>
+    	<plugins>
+    	    <plugin>
+    		<groupId>org.apache.aries</groupId>
+    		<artifactId>eba-maven-plugin</artifactId>
+    	    </plugin>
+    	</plugins>
+        </build>
+
+
+By default it will not generate a manifest, so in the above example it will
+attempt to copy a pre-defined APPLICATION.MF from
+src/main/resources/META-INF.  If that file does not exist, then no
+application manifest will be included.
+
+<a name="EBAMavenPluginProject-GeneratinganAPPLICATION.MF"></a>
+## Generating an APPLICATION.MF
+
+The following example shows how to get the plugin to generate an
+APPLICATION.MF based on the pom configuration:
+
+
+        <build>
+    	<plugins>
+    	    <plugin>
+    		<groupId>org.apache.aries</groupId>
+    		<artifactId>eba-maven-plugin</artifactId>
+    		<configuration>
+    		    <generateManifest>true</generateManifest>
+    		</configuration>
+    	    </plugin>
+    	</plugins>
+        </build>
+
+
+The pom to application manfiest header mapping is as follows:
+* Pom <groupId/>.<artifactId/> -> Application-SymbolicName
+* Pom <name/> -> Application-Name
+* Pom <version/> -> Application-Version (cleaned up for OSGi)
+* Pom <description/> -> Application-Description
+* Pom <dependencies/> -> Application-Content
+
+<a name="EBAMavenPluginProject-OverridingApplication-SymbolicName"></a>
+## Overriding Application-SymbolicName
+
+The application symbolic name defaults to the
+$\{pom.groupId\}.$\{pom.artifaceId\}.  The following shows how to override
+this:
+
+
+    <configuration>
+      <instructions>
+        <Application-SymbolicName>${pom.artifaceId}</Application-SymbolicName>
+      </instructions>
+    </configuration>
+
+
+<a name="EBAMavenPluginProject-AddingApplication-ExportServiceandApplication-ImportServiceheaders"></a>
+## Adding Application-ExportService and Application-ImportService headers
+
+The application import service and export service headers can be set as
+follows.  The text inside the elements is included as-is.
+
+
+    <configuration>
+      <instructions>
+        <Application-ExportService>...</Application-ExportService>
+        <Application-ImportService>...</Application-ImportService>
+      </instructions>
+    </configuration>
+
+
+<a name="EBAMavenPluginProject-Includingtransitivedependencies"></a>
+## Including transitive dependencies
+
+By default, the archive will only include the direct dependencies of the
+project.  Transitive dependencies can be includes as follows:
+
+
+
+    <configuration>
+      <useTransitiveDependencies>true</useTransitiveDependencies>
+    </configuration>
+

Added: incubator/aries/branches/site/trunk/content/modules/jndiproject.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/jndiproject.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/jndiproject.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/jndiproject.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,99 @@
+Title: JNDIProject
+<a name="JNDIProject-Overview"></a>
+# JNDI
+
+The Aries JNDI project aims to provide a fully compliant implementation of
+the OSGi Alliance JNDI Service Specification. This specification details
+how to advertise InitialContextFactory and ObjectFactories in an OSGi
+environment. It also defines how to obtain services from the service
+registry via JNDI.
+
+<a name="JNDIProject-ServiceRegistryaccessfromJNDI"></a>
+## Service Registry access from JNDI
+
+The OSGi service registry provides a centralised register/query capability
+for OSGi services. A common pattern outside of OSGi is to make use of the
+JNDI API to access services from a directory system. The OSGi service
+registry can be viewed as an example of such a system. The Aries JNDI
+project provides two URL lookup mechanisms via JNDI that can be used to
+access the service registry.
+
+<a name="JNDIProject-osgi:service"></a>
+## osgi:service
+
+The osgi:service lookup scheme is defined by the JNDI Service Specification
+and follows the scheme:
+
+
+    osgi:service/<interface>[/<filter>](/<filter>.html)
+
+The interface part is an interface name, like javax.sql.DataSource, or
+javax.jms.ConnectionFactory. The filter allows selection based on the
+properties of the service.
+
+This example:
+
+    Context ctx = new InitialContext();
+    
+    Runnable r = (Runnable)ctx.lookup("osgi:service/java.lang.Runnable");
+
+is equivalent to this code written to the OSGi service registry API.
+
+    BundleContext ctx = getABundleContext();
+    ServiceReference ref = ctx.getServiceReference("java.lang.Runnable");
+    if (ref != null) {
+        Runnable r = ctx.getService(ref);
+    }
+
+Lets say you wanted to filter for a Runnable with a property called _fred_
+which was mapped to _wilma_. You could write
+
+    Context ctx = new InitialContext();
+    
+    Runnable r =
+    (Runnable)ctx.lookup("osgi:service/java.lang.Runnable/(fred=wilma)");
+
+which is equivalent to:
+
+    BundleContext ctx = getABundleContext();
+    ServiceReference[](.html)
+     refs = ctx.getServiceReference("java.lang.Runnable", "(fred=wilma)");
+    if (refs != null) {
+      Runnable r = ctx.getService(refs[refs.length - 1](refs.length---1.html)
+    );
+}
+
+The osgi:service namepsace returns proxies, so if the Runnable was
+unregistered the proxy would switch to an equivalent alternative. If no
+such alternative exists then an org.osgi.framework.ServiceException with a
+type of ServiceException.UNREGISTERED.
+
+<a name="JNDIProject-osgi:servicelist"></a>
+## osgi:servicelist
+
+It is possible that there are multiple services in the registry that match.
+In this case the osgi:servicelist lookup scheme can be used. It has the
+same format as osgi:service, but it is designed to return multiple.
+
+<a name="JNDIProject-aries:services"></a>
+## aries:services
+
+The aries:services scheme works in the same way as the osgi:service scheme,
+but does not perform proxying. You get the actual object back. Care must be
+taken with this approach as the service could be unregistered, but the
+client cannot tell to stop using it. As a result it should only be used if
+the service is to be used for a short period of time. In addition their is
+no way to indicate that the client is no longer using the service, so clean
+up cannot occur.
+
+
+
+<a name="JNDIProject-MoreInformation"></a>
+## More Information
+
+
+
+For more information, check out section "126 JNDI Services Specification
+Version 1.0" in the "OSGi Service Platform Enterprise Specification,
+Release 4, Version 4.2" available for public download from the [OSGi Alliance](http://www.osgi.org/Download/Release4V42)
+.

Added: incubator/aries/branches/site/trunk/content/modules/jpaproject.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/jpaproject.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/jpaproject.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/jpaproject.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,12 @@
+Title: JPAProject
+# JPA 
+The Aries JPA project will make it easy for JPA persistence providers such
+as [Apache OpenJPA](http://openjpa.apache.org/)
+ to be used in an OSGi environment and will provide container managed
+persistence for the Blueprint container.
+
+For more information, check out section "127 JPA Service Specification
+Version 1.0" in the "OSGi Service Platform Enterprise Specification,
+Release 4, Version 4.2" available for public download from the [OSGi Alliance](http://www.osgi.org/Download/Release4V42)
+.
+

Added: incubator/aries/branches/site/trunk/content/modules/samples.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/samples.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/samples.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/samples.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,18 @@
+Title: Samples
+
+<a name="Samples-Samples"></a>
+# Samples
+
+### [BlogSample](samples/blog-sample.html)
+Includes Blueprint, WAB and JPA concepts delivered in a EBA.
+
+### [AriesTraderSample](samples/ariestrader.html)
+Includes Blueprint, WAB and JPA concepts delivered in a EBA.
+You may also know this as the [Apache Geronimo Daytrader](https://cwiki.apache.org/GMOxDOC22/daytrader-a-more-complex-application.html)
+ application, which has been migrated from a pure Java EE environment to a
+OSGi Blueprint model.
+
+### [GOATSample](samples/goatsample.html)
+A graphical tool for displaying the status of, and relationships between,
+OSGi bundles running in an OSGi framework.
+

Added: incubator/aries/branches/site/trunk/content/modules/samples/BlogSample.png
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/samples/BlogSample.png?rev=1053126&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/aries/branches/site/trunk/content/modules/samples/BlogSample.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/aries/branches/site/trunk/content/modules/samples/ariesTraderOverview2.png
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/samples/ariesTraderOverview2.png?rev=1053126&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/aries/branches/site/trunk/content/modules/samples/ariesTraderOverview2.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/aries/branches/site/trunk/content/modules/samples/ariestrader.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/samples/ariestrader.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/samples/ariestrader.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/samples/ariestrader.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,134 @@
+Title: AriesTrader
+<a name="AriesTrader-TheAriesTraderSample"></a>
+# The AriesTrader Sample
+
+
+<a name="AriesTrader-Prereqs"></a>
+### Prereqs 
+<br>
+
+- - -
+**Note:** 
+
+These instructions are for the 0.2-incubating release of Aries.
+Instructions for older releases can be found [here](archiveinstructions.html)
+. In the 0.2-incubating release the AriesTrader sample was changed such
+that it is no longer required for you to install Derby independently.  The
+Derby version included in the sample is fully leveraged internally in the
+sample and therefore no additional Derby installation is required. 
+However, there are steps required to initialize the Database from within
+the sample itself (see instructions below).  
+ 
+- - -
+
+<a name="AriesTrader-CreatingtheOSGiplatform(equinox-test-harness)forAriesTrader"></a>
+### Creating the OSGi platform (equinox-test-harness) for AriesTrader 
+Download and unzip the source zip for the [latest release](aries:downloads.html)
+ of Aries Samples and build the equinox-test-harness module under
+ariestrader:
+
+    cd samples-0.2-incubating/ariestrader/assemblies/equinox-test-harness
+    mvn install
+
+This procedure will pull in the binaries from the latest release and its
+dependencies.
+
+<a name="AriesTrader-AlternativebuildusingApacheAriestrunk."></a>
+### Alternative build using Apache Aries trunk.
+As an alternative to using the released version you can also choose to work
+with the latest, unreleased code.  This will require the use of subversion
+to checkout the code followed by building the entire Apache Aries project. 
+Directions are provided here:  [Building Aries instructions](aries:buildingaries.html)
+.
+
+
+<a name="AriesTrader-StartingtheEquinoxTestHarnesstoruntheAriesTradersample"></a>
+### Starting the Equinox Test Harness to run the AriesTrader sample
+AriesTrader needs a test harness to run in.  For this purpose we are using
+an Equinox assembly that pulls in all of the necessary dependencies.  
+
+
+The first task is to start the Apache Aries modules in an OSGi framework
+using the Eclipse Equinox test harness
+
+    java -jar osgi-3.5.0.v20090520.jar -console
+
+The OSGi console should start up, the 'ss' command should show the active
+bundles but the AriesTrader application is not yet installed (with the
+exception of the ariestrader derby datasource which is started with the
+test harness for convenience).	
+
+<a name="AriesTrader-InstallingAriesTraderintheEquinoxTestHarness"></a>
+### Installing AriesTrader in the Equinox Test Harness
+To install the AriesTrader application simply copy the eba for AriesTrader
+into the target/load directory which was created when test harness
+containing Aries was started.  For convenience the AriesTraders EBAs are
+copied into the target directory as part of creating the OSGi Equinox test
+harness. 
+
+When using the "JDBC" only AriesTrader configuration which supports only
+jdbc persistence:
+
+    cp org.apache.aries.samples.ariestrader.jdbc-*.eba load/
+
+
+When using the "All" AriesTrader configuration which supports all currently
+available persistence modes:
+
+    cp org.apache.aries.samples.ariestrader.all-*.eba load/
+
+
+Now the 'ss' command should show all of the AriesTrader bundles in state
+'ACTIVE'.
+
+If you subsequently delete org.apache.aries.samples.ariestrader.jdbc-*.eba
+or org.apache.aries.samples.ariestrader.all-*.eba from the target/load
+directory the application will be uninstalled.
+
+
+<a name="AriesTrader-AccessingandusingtheAriesTradersample"></a>
+### Accessing and using the AriesTrader sample
+Point your browser at [http://localhost:8080/org.apache.aries.samples.ariestrader.web/](http://localhost:8080/org.apache.aries.samples.ariestrader.web/)
+
+Select the "Configuration" tab and the "Configure AriesTrader run-time
+parameters" choice.  Then select from among the available runtime modes
+(defauls to JDBC).  Be sure to click "update config" to save your
+selection.
+
+At the moment the following persistence modes are available when using the
+"all" EBA:
+* JDBC persistence
+* JPA application managed entity manager persistence
+* JPA container managed entity managers using declarative transaction
+support  
+
+By default, the sample starts with JDBC persistence.  To select another
+persistence mechanism see the directions under "Accessing and using the
+AriesTrader sample. 
+ 
+After selecting the persistence mode you must create the AriesTrader
+Database tables and indexs.  Select the "Configuration" tab and the
+"(Re)-create AriesTrader Tables and Indexes". 
+
+Next, you must seed the database with test content.  Once again go to the
+"Configuration" tab but this time select "(Re)-populate AriesTrader
+Database" from the available choices to seed the database with a default
+set of users and stock quotes.	You will see a number of quotes (default is
+400) and users (default is 200) created.
+
+Select the "Trading & Portfolios" tab to use the mock trade application or
+the "Primitives" tab to run some of the web primitive tests (PingJSPEL is
+not currently working).  You can also run the "Test AriesTrader Scenario"
+from the "Configuration" tab which will launch a new browser window and
+step through a trading scenario with each reload of the page.
+
+<a name="AriesTrader-AbouttheAriesTraderSample"></a>
+### About the AriesTrader Sample
+
+The AriesTrader sample is a modified version of the Apache Geronimo
+DayTrader sample.  It has been somewhat simplified and reorganized to
+support the Apache Aries programming model.  
+
+The AriesTrader sample bundles are organized like this:
+
+![at2](ariesTraderOverview2.png)

Added: incubator/aries/branches/site/trunk/content/modules/samples/blog-sample.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/samples/blog-sample.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/samples/blog-sample.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/samples/blog-sample.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,93 @@
+Title: Blog Sample
+<a name="BlogSample-TheBlogSample"></a>
+# The Blog Sample
+
+
+<a name="BlogSample-RunningtheBlogSample"></a>
+## Running the Blog Sample
+
+
+<br>
+
+- - -
+**Note:**
+These instructions are for the 0.2-incubating release of Aries.
+Instructions for older releases can be found [here](archiveinstructions.html)
+. In the 0.2-incubating release the sample was changed to use an in-memory
+database to avoid dependency on an explicit version of Derby. If you would
+prefer to use a database on disk check the instructions for the
+0.1-incubating release. You will also need to modify datasource.xml (under
+blog-datasource) as indicated in the comments and then rebuild the sample.
+
+- - - 
+
+
+<a name="BlogSample-CreatetheOSGiplatformfortheBlogsample"></a>
+### Create the OSGi platform for the Blog sample
+
+Download and unzip the source zip for the [latest release](aries:downloads.html)
+ of Aries Samples and build the blog-assembly module:
+
+    cd samples-0.2-incubating/blog/blog-assembly
+    mvn install
+
+This procedure will pull in the binaries from the latest release and its
+dependencies.
+
+<a name="BlogSample-RunningtheBlogsample"></a>
+### Running the Blog sample
+
+Download the JDBC based Blog sample application (.eba file) from the [latest release](aries:downloads.html)
+. Change directory to the blog-assembly target directory:
+
+
+    cd samples-0.2-incubating/blog-sample/blog-assembly/target
+
+
+now start Aries in an OSGi framework (we're using Eclipse Equinox in this
+case)
+
+    java -jar osgi-3.5.0.v20090520.jar -console
+
+
+The OSGi console should start up, the 'ss' command should show all of the
+Blog bundles in state 'ACTIVE'.
+
+Now start the blog application (.eba file) you downloaded earlier, by
+copying it into the load directory which was created when Aries started.
+
+Point your browser to [http://localhost:8080/org.apache.aries.samples.blog.web/](http://localhost:8080/org.apache.aries.samples.blog.web/)
+
+If you subsequently delete the .eba from the load directory the application
+will be uninstalled.
+
+<a name="BlogSample-RunningthesampleusingaJPApersistencelayer"></a>
+### Running the sample using a JPA persistence layer
+
+The first blog sample application was written to use a JDBC persistence
+layer. There is a second application implemented to demonstrate the JPA
+capability
+
+To run the blog sample which uses the JPA persistence layer, start the OSGi
+framework, remove any previous copies of the blog sample from the
+target/load directory, then copy the Blog sample JPA .eba file into the
+load directory.
+
+Finally, after typing 'refresh' at the OSGi console, point your browser at [http://localhost:8080/org.apache.aries.samples.blog.web/](http://localhost:8080/org.apache.aries.samples.blog.web/)
+. You should see something that looks precisely the same as the blog sample
+running with the JDBC persistence layer, but this time running using the
+JPA persistence layer.
+
+<a name="BlogSample-Usingthelatest,unreleasedcode"></a>
+## Using the latest, unreleased code
+
+If you prefer to use the very latest code from subversion, checkout and
+build the Aries trunk by following the [Building Aries instructions](aries:buildingaries.html)
+.
+
+<a name="BlogSample-AbouttheBlogsample"></a>
+## About the Blog sample
+
+The blog sample components can be visualised like this:
+
+![bs](BlogSample.png)

Added: incubator/aries/branches/site/trunk/content/modules/samples/goatsample.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/samples/goatsample.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/samples/goatsample.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/samples/goatsample.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,30 @@
+Title: GOATSample
+<a name="GOATSample-GOATSample"></a>
+# GOAT Sample
+
+The Graphical OSGi Analysis Tool gives a way of displaying the status of
+bundles running in an OSGi framework. 
+
+<a name="GOATSample-GOATArchitecture"></a>
+## GOAT Architecture 
+
+See charts here:
+https://svn.apache.org/repos/asf/incubator/aries/documentation/samples/goat/
+
+<a name="GOATSample-Model-assumptionsandconstraints"></a>
+## Model - assumptions and constraints
+
+<a name="GOATSample-Developmentto-dolist"></a>
+## Development to-do list
+  * Add RelationshipInfoListener to ServerSideClass. Should be similar to
+ComponenInfoListener (Done)
+  * Move the ComponentInfoImpl and RelationshipInfoImpl classes out of Web
+bundle into API bundle. They don't really belong in the web bundle but had
+to be put here because DWR didn't work when they were in the info-provider
+bundle (Done). 
+  * Work out why the info-enhancer bundle doesn't start and fix it.(Done)
+  * TwistieSection and TwistieAggregation need to merge to form one class
+(under elements) (Done)
+  * We need to implement a loading dialog for first load.
+  * Minor bug fix needed save coords (saving default doesn't work)
+  * Investgate/recreate DWR bug

Added: incubator/aries/branches/site/trunk/content/modules/spi-fly.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/spi-fly.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/spi-fly.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/spi-fly.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,42 @@
+Title: SPI Fly
+This page describes the SPI Fly component.
+The SPI Fly component is aimed at providing general support for the JRE SPI
+mechanism (including the usage of META-INF/services) in OSGi.
+
+The code can be found in
+http://svn.apache.org/repos/asf/incubator/aries/trunk/spi-fly
+
+Currently the implementation does the following:
+
+* It only considers bundles that have the following Manifest (opt-in)
+header: *SPI-Provider* (the value is not used at the moment).
+* For every new bundle being installed that has the opt-in header, it
+checks the META-INF/services directory for any files. If found it registers
+a service in the Service Registry for each implementation found with the
+following property
+ *spi.provider.url = <the URL to the associated META-INF/services file>*
+
+Additional ideas/concerns:
+
+* We need to find a mechanism to find any SPI implementations that are part
+of the JRE itself and register these in the Service Registry. Since there
+is typically not a META-INF/services file for these mechanisms nor do they
+implement a common interface we need another mechanism.
+** Can anyone think of a generic mechanism?
+** An ugly alternative could be to manually enumerate these, but this is a
+bit of a maintenance nightmare.
+
+* *gnodet:* the javamail spec do use the META-INF/services discovery
+mechanism, but to detect and instantiate classes using constructors
+that have arguments. We need to investigate if it could cause any real
+problem with the design ... or find a specific way for javamail maybe ...
+
+We need to support 'traditional' clients that don't look in the OSGi
+service registry to obtain their SPI implementation. Some ideas in this
+area are: 
+
+* We could automatically set a System Property for every SPI implementation
+found. That would typically shift the 'default' choice for an
+implementation to the last one found. 
+* Classloader problems around loading an implementation?
+* Various Lifecycle issues when using the traditional way.

Added: incubator/aries/branches/site/trunk/content/modules/transactionsproject.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/modules/transactionsproject.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/modules/transactionsproject.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/modules/transactionsproject.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,8 @@
+Title: TransactionsProject
+The Aries JTA project will focus on making container managed transactions
+available as OSGi services.
+
+For more information, check out section "123 JTA Transaction Services
+Specification 1.0" in the "OSGi Service Platform Enterprise Specification,
+Release 4, Version 4.2" available for public download from the [OSGi Alliance](http://www.osgi.org/Download/Release4V42)
+.

Added: incubator/aries/branches/site/trunk/content/overview/boardreports.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/overview/boardreports.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/overview/boardreports.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/overview/boardreports.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,8 @@
+# Board Reports
+- [December 2010](boardreports/december-2010.html)
+- [September 2010](boardreports/september-2010.html)
+- [June 2010](boardreports/june-2010.html)
+- [March 2010](boardreports/march-2010.html)
+- [December 2009](boardreports/december-2009.html)
+- [November 2009](boardreports/november-2009.html)
+- [October 2009](boardreports/october-2009.html)

Added: incubator/aries/branches/site/trunk/content/overview/boardreports/december-2009.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/overview/boardreports/december-2009.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/overview/boardreports/december-2009.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/overview/boardreports/december-2009.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,26 @@
+Title: December 2009
+Aries will deliver a set of pluggable Java components enabling an
+enterprise OSGi application programming model.
+
+Aries entered incubation on September 22, 2009.
+
+There are currently no issues requiring IPMC or Board attention .
+
+The svn area has been organized with a single trunk for now, though we
+still need to settle the discussion about components lifecycle and the svn
+layout.
+
+The following sub-components are actively being developed:
+
+* Application
+* Blueprint
+* JMX
+
+There has been a lot of activity on the mailing list this month indicating
+a vibrant community is being built.
+
+Top 2 or 3 things to resolve before graduation:
+
+* Build community
+* Create a release
+* Address project scope concerns raised during acceptance vote

Added: incubator/aries/branches/site/trunk/content/overview/boardreports/december-2010.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/overview/boardreports/december-2010.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/overview/boardreports/december-2010.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/overview/boardreports/december-2010.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,32 @@
+Title:     Board Report
+Notice:    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.
+
+# December 2010 Board report
+Aries delivers a set of pluggable Java components enabling an enterprise OSGi application programming model.
+
+Aries entered incubation on September 22, 2009.
+
+The Aries community and Incubator PMC have voted for Aries to graduate as a TLP. This is an agenda item in the Dec 15th 2010 Board meeting.
+
+There is discussion about making a release, which Karaf and Geronimo would consume, as soon as we have a decision from the board.
+
+There continues to be a vibrant community as shown by the activity on the mailing list in the last quarter. The Aries sub-components continue to be actively developed. Since the last board report we have 3 new committers (Bartosz Kowalewski, Chris Wilkinson and Emily Jiang) and one new PPMC member (Holly Cummins).
+
+We are close to moving our site from Confluence over to CMS. All that remains is for the site to be switched over. The CMS based site will allow us to update the site immediately after a change is made and more easily blend in non-wiki content such as that generated by the OSGi Enterprise Compliance Tests.
+
+There are no further issues to resolve before graduation - the Aries and Incubator communities have voted to graduate Aries to a TLP.
\ No newline at end of file

Added: incubator/aries/branches/site/trunk/content/overview/boardreports/june-2010.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/overview/boardreports/june-2010.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/overview/boardreports/june-2010.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/overview/boardreports/june-2010.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,29 @@
+Title: June 2010
+Aries will deliver a set of pluggable Java components enabling an
+enterprise OSGi application programming model.
+
+Aries entered incubation on September 22, 2009.
+
+There are currently no issues requiring IPMC or Board attention.
+
+The following sub-components are actively being developed:
+
+* Application
+* Subsystems
+* Blueprint
+* JMX
+* JPA
+
+Several new sample applications have been developed to demonstrate the
+Aries functionality.
+
+There continues to be a vibrant community as shown by the activity on the
+mailing list this year.
+
+On May 26th we released Apache Aries 0.1-incubating, our first release.
+
+Top 2 or 3 things to resolve before graduation:
+
+* Build community  [done](done.html)
+* Create a release [done](done.html)
+* Address project scope concerns raised during acceptance vote

Added: incubator/aries/branches/site/trunk/content/overview/boardreports/march-2010.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/overview/boardreports/march-2010.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/overview/boardreports/march-2010.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/overview/boardreports/march-2010.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,35 @@
+Title: March 2010
+Aries will deliver a set of pluggable Java components enabling an
+enterprise OSGi application programming model.
+
+Aries entered incubation on September 22, 2009.
+
+There are currently no issues requiring IPMC or Board attention .
+
+The following sub-components are actively being developed:
+
+* Application
+* Blueprint
+* JMX
+* JPA
+
+Several new sample applications have been developed to demonstrate the
+Aries functionality.
+
+A new component has been created to feed experience into the OSGi standards
+process.
+
+There has been a lot of activity on the mailing list this year indicating a
+vibrant community is being built.
+
+One new committer, Rex Wang, has been added. Redhat have started to
+participate in the project.
+
+We have begun the process of doing a 0.1.0 release and aim to release
+shortly.
+
+Top 2 or 3 things to resolve before graduation:
+
+* Build community
+* Create a release
+* Address project scope concerns raised during acceptance vote

Added: incubator/aries/branches/site/trunk/content/overview/boardreports/november-2009.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/overview/boardreports/november-2009.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/overview/boardreports/november-2009.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/overview/boardreports/november-2009.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,26 @@
+Title: November 2009
+Aries will deliver a set of pluggable Java components enabling an
+enterprise OSGi application programming model.
+
+Aries entered incubation on September 22, 2009. This is our second board
+report.
+
+There are currently no issues requiring IPMC or Board attention .
+
+The svn area has been organized with a single trunk for now, though we
+still need to settle the discussion about components lifecycle and the svn
+layout.
+
+The application manifest component of the IBM contribution has been moved
+out into the trunk. The blueprint component has undergone some further
+enhancement and work is starting on an implementation of the OSGi JMX
+specification.
+
+The mailing lists was quieter this month, probably due to the apache
+conference.
+
+Top 2 or 3 things to resolve before graduation:
+
+Build community
+Create a release
+Address project scope concerns raised during acceptance vote

Added: incubator/aries/branches/site/trunk/content/overview/boardreports/october-2009.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/overview/boardreports/october-2009.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/overview/boardreports/october-2009.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/overview/boardreports/october-2009.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,30 @@
+Title: October 2009
+Aries will deliver a set of pluggable Java components enabling an
+enterprise OSGi application programming model.
+
+Aries entered incubation on September 22, 2009. This is our first board
+report.
+
+There are currently no issues requiring IPMC or Board attention .
+
+All infra resources have been set up (svn / site / mailing lists) very
+quickly.
+The svn area has been organized with a single trunk for now, though we
+still need to settle the discussion about components lifecycle and the svn
+layout.
+IBM has contributed some code that has been imported into svn and the JNDI
+modules have already been imported into trunk.	Both Geronimo contribution
+(OSGi Blueprint Services) and ServiceMix contribution (OSGi Transaction
+Manager) have been imported into trunk.
+
+On the community side, we've already voted 3 additional committers (Adam
+Wojtuniak, Alan Keane and Niclas Hedhman) who had expressed their interest
+in joining the project just after the acceptance vote on the proposal was
+launched.
+
+There is a lot of discussions and activity on the mailing lists.
+
+Top 2 or 3 things to resolve before graduation:
+* Build community
+* Create a release 
+* Address project scope concerns raised during acceptance vote

Added: incubator/aries/branches/site/trunk/content/overview/boardreports/september-2010.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/overview/boardreports/september-2010.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/overview/boardreports/september-2010.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/overview/boardreports/september-2010.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,36 @@
+Title: September 2010
+Aries will deliver a set of pluggable Java components enabling an
+enterprise OSGi application programming model.
+
+Aries entered incubation on September 22, 2009.
+
+There are currently no issues requiring IPMC or Board attention.
+
+The following sub-components are actively being developed:
+
+* Application
+* Subsystems
+* Blueprint
+* JPA
+* JNDI
+* Transaction
+* Quiesce
+* Samples
+
+
+There continues to be a vibrant community as shown by the activity on the
+mailing list this year.
+
+We have recently completed our 0.2-incubating release. This is our second
+release since entering incubation. This release is in support of Geronimo
+3.0 which uses Apache Aries.
+
+The OSGi Enterprise Compliance Tests have been run against Blueprint, JMX,
+JNDI and transactions modules and the results have been published to the
+aries-dev mailing list and are available from the [Aries web site](-http://incubator.apache.org/aries/testresults.html.html)
+
+Top 2 or 3 things to resolve before graduation:
+
+* Build community  [done](done.html)
+* Create a release [done](done.html)
+* Address project scope concerns raised during acceptance vote

Added: incubator/aries/branches/site/trunk/content/overview/news.mdtext
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/overview/news.mdtext?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/overview/news.mdtext (added)
+++ incubator/aries/branches/site/trunk/content/overview/news.mdtext Mon Dec 27 18:31:05 2010
@@ -0,0 +1,4 @@
+# News
+ - 15th December 2010 Aries graduates from the incubator
+ -  September 2010 0.2-incubating release available, including the results of compliance tests.
+ -  May 2010 0.1-incubating release available

Added: incubator/aries/branches/site/trunk/content/resources/menus.js
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/resources/menus.js?rev=1053126&view=auto
==============================================================================
--- incubator/aries/branches/site/trunk/content/resources/menus.js (added)
+++ incubator/aries/branches/site/trunk/content/resources/menus.js Mon Dec 27 18:31:05 2010
@@ -0,0 +1,60 @@
+/*
+* 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.
+*/
+/**
+ * This script, when included in a html file, can be used to make collapsible menus
+ *
+ * Typical usage:
+ * <script type="text/javascript" language="JavaScript" src="menus.js"></script>
+ */
+
+// Collapse all navigation bar menus
+if (document.getElementById){ 
+  	document.write('<style type="text/css">.menuitemgroup{display: none;}</style>')
+}
+
+// Keep the navigation menu open if the page is a sub directory of that area.
+function SetMenu() {
+	var open = 'url("/images/BigBulletOpen.png")';
+	var path = document.location.href;
+	var fields = path.split("/"); 
+	var ident = fields[3];
+    if(ident != "") {
+    	var docel = document.getElementById(ident);
+        var title = document.getElementById(ident+'Title');
+        title.style.backgroundImage = open;
+		docel.style.display = "block";
+    }
+}
+
+//Switch navigation pane menu between open and closed on click.
+function SwitchMenu(obj)
+{
+var open = 'url("/images/BigBulletOpen.png")';
+var close = 'url("/images/BigBullet.png")';
+  if(document.getElementById)  {
+    var el = document.getElementById(obj);
+    var title = document.getElementById(obj+'Title');
+
+    if(el.style.display != "block"){ 
+      title.style.backgroundImage = open;
+      el.style.display = "block";
+    }else{
+      title.style.backgroundImage = close;
+      el.style.display = "none";
+    }
+  }// end -  if(document.getElementById) 
+}//end - function SwitchMenu(obj)

Modified: incubator/aries/branches/site/trunk/content/resources/site.css
URL: http://svn.apache.org/viewvc/incubator/aries/branches/site/trunk/content/resources/site.css?rev=1053126&r1=1053125&r2=1053126&view=diff
==============================================================================
--- incubator/aries/branches/site/trunk/content/resources/site.css (original)
+++ incubator/aries/branches/site/trunk/content/resources/site.css Mon Dec 27 18:31:05 2010
@@ -100,68 +100,51 @@ body {
   line-height: 1em;
 }
 
-#menu-page ul {
-  margin: 0;
-  padding: 0;
-  list-style: none;
-  width: 200px;
-}
-
-#menu-page ul li {
-  position: relative;
-} 
-
-#menu-page li ul {
-  /*position: relative;*/
-  position: absolute;
-  left: 170px;
-  top: 0;
-  outline-style: groove;
-  outline-color: #bfaecd;
-  background-color: #ffffff;
-  display: none;
-}
-#menu-page li:hover ul {
-  display: block;
+.menutitle {
+        cursor:pointer;
+        text-transform: lowercase;
+        color: #7b5d94;
+        padding: 10px 22px;
+        margin-left: 5px;
+        letter-spacing: 0.15em;
+        background-image: url('../images/BigBullet.png');
+        background-repeat: no-repeat;
+        background-position: center left;
+        font-family: Verdana, arial, sans-serif;
+        font-weight : bold;
+		font-size: 70%;
+}
+
+.menutitle:hover{text-decoration:underline;cursor: pointer;}
+
+#menu-page .menuitemgroup {
+        margin: 0px 0px 6px 8px;
+        padding: 0px;
+        font-weight : bold;
+        }
+
+#menu-page .selectedmenuitemgroup{
+        margin: 0px 0px 0px 8px;
+        padding: 0px;
+        font-weight : normal;
+        }
+
+#menu-page .menuitem {
+        padding: 2px 0px 1px 13px;
+        background-image: url('../images/LittleBullet.png');
+        background-repeat: no-repeat;
+        background-position: center left;
+        font-weight : normal;
+        margin-left: 10px;
 }
 
-#menu-page h3 {
-  font-size: 75%;
-  text-transform: lowercase;
-  margin: 1em 0 0.3em 0;
-  color: #bfaecd;
-  letter-spacing: 0.15em;
-  background: url('../images/BigBullet.png') no-repeat 0pt;
-  background-position:left center;
-  margin-left:15px;
-  padding-left: 20px;
-  font-family: Verdana, arial, sans-serif;
-  font-weight: bold;	
-  line-height: 250%;
-}
-#menu-page  ul li h4 a:link, #menu-page  ul li h4 a:visited {
-  color: #380b61; 
-}
-#menu-page  li h4 {
-  line-height: 10%;
-}
-#menu-page h4 {
-  font-size: 60%;
-  text-transform: lowercase;
-  margin: 1em 0 0.3em 0; 
-  font-weight: normal;
-  letter-spacing: 0.15em;
-  background: url('../images/LittleBullet.png') no-repeat 0pt;
-  background-position:left center;
-  margin-left:15px;
-  padding-left: 20px;
-  font-family: Verdana, arial, sans-serif;
-}
 #menu-page a:link, #menu-page a:visited {
+  font-size: 60%;
   color: #7b5d94; 
 }
 
 #menu-page a:hover {
+   font-size: 60%;
    color: #bfaecd; 
 }
 
@@ -1579,4 +1562,3 @@ div.auto_complete ul strong.highlight {
 .leftnav li a:active {color:white;}
 .leftnav li a:visited {color:white;}
 .leftnav li a:hover {background-color: #3c4672; color:white;}
-