= The Blog Sample

== Running the Blog Sample

NOTE:: These instructions are for the 0.3 release of Aries.
Instructions for older releases can be found link:/downloads/archivedrelease.html[here] . 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.


=== Create the OSGi platform for the Blog sample

Download and unzip the source zip for the link:/downloads/currentrelease.html[latest release]  of Aries Samples and build the blog-assembly module:

 cd samples-0.3/blog/blog-assembly
 mvn install

This procedure will pull in the binaries from the latest release and its dependencies.

=== Running the Blog sample

Download the JDBC based Blog sample application (.eba file) from the link:/downloads/currentrelrease.html[latest release] . Change directory to the blog-assembly target directory:

 cd samples-0.3/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'.

To start the blog application (.eba file) you downloaded earlier, create a directory call load and copying it into the load directory.

Point your browser to http://localhost:8080/blog/

If you subsequently delete the .eba from the load directory the application will be uninstalled.

=== 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/blog/ . 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.

== 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 link:aries:buildingaries.html[Building Aries instructions] .

== About the Blog sample

The blog sample components can be visualised like this:

image::downloads/archived/0.1-incubating/BlogSample.png[bs]
