<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements. See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License. You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<html>
  <head>
    <link type="text/css" rel="stylesheet" href="http://aries.apache.org/resources/site.css"></link>
    </script><script src="http://aries.apache.org/resources/menus.js" language="javascript" type="text/javascript"></script>
	<meta name="keywords" content="..."/>
	<meta name="description" content="..." />
    <title>
		Apache Aries - Blog Sample
    </title>
  </head>
<body onload="SetMenu()">

<table width="100%" cellpadding="0" cellspacing="0">
  <tr width="100%">
    <td id="cell-0-0" colspan="2">&nbsp;</td>
    <td id="cell-0-1">&nbsp;</td>
    <td id="cell-0-2" colspan="2">&nbsp;</td>
  </tr>
  <tr width="100%">
    <td id="cell-1-0">&nbsp;</td>
    <td id="cell-1-1">&nbsp;</td>
    <td id="cell-1-2">
      <div style="padding: 5px;">
        <div id="banner">
          <!-- Banner -->
			<table border="0" cellpadding="0" cellspacing="0" width="100%">
				<tr>
					<td align="left" class="topbardiv" nowrap="">
						<a href="http://aries.apache.org/" title="Apache Aries"> <img border="0" src="http://aries.apache.org/images/Arieslogo_Horizontal.gif"> </a>
					</td>
					<td align="right" nowrap="">
						<a href="http://www.apache.org/" title="The Apache Software Foundation"> <img border="0" src="http://aries.apache.org/images/apache_feather.png"> </a>
      				</td>
				</tr>
			</table>
          <!-- Banner -->
        </div>
      </div>
      <div id="top-menu">
        <table border="0" cellpadding="1" cellspacing="0" width="100%">
          <tr>
            <td>
              <div align="left">
                <!-- Breadcrumbs -->
                <!-- Breadcrumbs -->
              </div>
            </td>
            <td>
              <div align="right">
                <!-- Quicklinks -->
					<DIV style="padding: 5px 5px 0px 25px;">
						<FORM action="http://www.google.com/search" method="get" style="font-size: 10px;">
						<A href="http://www.apache.org/licenses/LICENSE-2.0.html" class="external-link" rel="nofollow">License</A> 
						<INPUT name="ie" type="hidden" value="UTF-8"></INPUT>
						<INPUT name="oe" type="hidden" value="UTF-8"></INPUT>
						<INPUT maxlength="255" name="q" size="15" type="text" value></INPUT>
						<INPUT name="btnG" type="submit" value="Search"></INPUT>
						<INPUT name="domains" type="hidden" value="aries.apache.org"></INPUT>
						<INPUT name="sitesearch" type="hidden" value="aries.apache.org"></INPUT>
						</FORM>
					</DIV>
                <!-- Quicklinks -->
              </div>
            </td>
          </tr>
        </table>
      </div>
    </td>
    <td id="cell-1-3">&nbsp;</td>
    <td id="cell-1-4">&nbsp;</td>
  </tr>
  <tr width="100%">
    <td id="cell-2-0" colspan="2">&nbsp;</td>
    <td id="cell-2-1">
      <table>
        <tr height="100%" valign="top">
          <td height="100%">
            <div id="wrapper-menu-page-right">
              <div id="wrapper-menu-page-top">
                <div id="wrapper-menu-page-bottom">
                  <div id="menu-page">
                    <!-- NavigationBar -->
					<div onclick="SwitchMenu('overview')" id="overviewTitle" class="menutitle">Overview</div>
<div id="overview" class="menuitemgroup">
    <div class="menuitem">
        <a href="/overview/boardreports.html">Board Reports</a> 
    </div>
    <div class="menuitem">
        <a href="/overview/news.html">News</a> 
    </div>
</div>
<div onclick="SwitchMenu('documentation')" id="documentationTitle" class="menutitle">Documentation</div>
<div id="documentation" class="menuitemgroup">
    <div class="menuitem">
        <a href="/documentation/ariesprogrammingmodel.html">Programming Model</a> 
    </div>
    <div class="menuitem">
        <a href="/documentation/pointerstoosgispecifications.html">Pointers to OSGi specs</a> 
    </div>
    <div class="menuitem">
        <a href="/documentation/integrators-guide.html">Integrators Guide</a> 
    </div>
    <div class="menuitem">
        <a href="/documentation/articles.html">Articles</a> 
    </div>
    <div class="menuitem">
        <a href="https://svn.apache.org/repos/asf/aries/slides/">Slides</a> 
    </div>
    <div class="menuitem">
        <a href="/documentation/tutorials.html">Tutorials</a> 
    </div>
</div>
<div onclick="SwitchMenu('downloads')" id="downloadsTitle" class="menutitle">Downloads</div>
<div id="downloads" class="menuitemgroup">
    <div class="menuitem">
        <a href="/downloads/currentrelease.html">Current Release</a> 
    </div>
    <div class="menuitem">
        <a href="/downloads/testresults.html">Compliance Tests</a> 
    </div>
    <div class="menuitem">
        <a href="/downloads/releasenotes.html">Release Notes</a> 
    </div>
    <div class="menuitem">
        <a href="/downloads/archived-releases.html">Archived Releases</a> 
    </div>
</div>
<div onclick="SwitchMenu('community')" id="communityTitle" class="menutitle">Community</div>
<div id="community" class="menuitemgroup">
    <div class="menuitem">
        <a href="/community/overview.html">Community</a> 
    </div>
    <div class="menuitem">
        <a href="/community/gettinginvolved.html">Getting Involved</a> 
    </div>
    <div class="menuitem">
        <a href="/community/people.html">Who we are</a> 
    </div>
    <div class="menuitem">
        <a href="/community/mailinglists.html">Mailing lists</a> 
    </div>
    <div class="menuitem">
        <a href="http://blogs.apache.org/aries/">Aries Group Blog</a> 
    </div>
</div>
<div onclick="SwitchMenu('development')" id="developmentTitle" class="menutitle">Development</div>
<div id="development" class="menuitemgroup">
    <div class="menuitem">
        <a href="https://svn.apache.org/repos/asf/aries/">Source Control</a> 
    </div>
    <div class="menuitem">
        <a href="https://issues.apache.org/jira/browse/ARIES">Bug Tracking</a> 
    </div>
    <div class="menuitem">
        <a href="/development/buildingaries.html">Building Aries </a> 
    </div>
    <div class="menuitem">
        <a href="/development/maven-best-practice-in-aries.html">Maven best practice</a> 
    </div>
    <div class="menuitem">
        <a href="/development/moduledependencies.html">Module Dependencies</a> 
    </div>
    <div class="menuitem">
        <a href="/development/releasingaries.html">Releasing Aries </a> 
    </div>
    <div class="menuitem">
        <a href="/development/compliancetesting.html">OSGi Compliance Tests </a> 
    </div>
    <div class="menuitem">
        <a href="http://hudson.zones.apache.org/hudson/">Build System</a> 
    </div>
    <div class="menuitem">
        <a href="/development/maintainingthewebpages.html">Web Site Maintenance </a> 
    </div>
</div>
<div onclick="SwitchMenu('modules')" id="modulesTitle" class="menutitle">Modules</div>
<div id="modules" class="menuitemgroup">
    <div class="menuitem">
        <a href="/modules/samples.html">Samples</a> 
    </div>
    <div class="menuitem">
        <a href="/modules/blueprint.html">Blueprint</a> 
    </div>
    <div class="menuitem">
        <a href="/modules/jndiproject.html">JNDI</a> 
    </div>
    <div class="menuitem">
        <a href="/modules/jpaproject.html">JPA</a> 
    </div>
    <div class="menuitem">
        <a href="/modules/applications.html">Applications</a> 
    </div>
    <div class="menuitem">
        <a href="/modules/transactionsproject.html">Transactions</a> 
    </div>
    <div class="menuitem">
        <a href="/modules/ebamavenpluginproject.html">EBA Maven Plugin </a> 
    </div>
    <div class="menuitem">
        <a href="/modules/spi-fly.html">SPI Fly</a> 
    </div>
</div>
<div onclick="SwitchMenu('sponsorship')" id="sponsorshipTitle" class="menutitle">Sponsorship</div>
<div id="sponsorship" class="menuitemgroup">
    <div class="menuitem">
        <a href="http://www.apache.org/foundation/thanks.html">Thanks</a> 
    </div>
    <div class="menuitem">
        <a href="http://www.apache.org/foundation/sponsorship.html">Sponsoring Apache</a> 
    </div>
</div>
                    <!-- NavigationBar -->
                  </div>
                </div>
              </div>
            </div>
          </td>
          <td height="100%" width="100%">
            <!-- Content -->
            <div class="wiki-content"><p><a name="BlogSample-TheBlogSample"></a></p>
<h1 id="the_blog_sample">The Blog Sample</h1>
<p><a name="BlogSample-RunningtheBlogSample"></a></p>
<h2 id="running_the_blog_sample">Running the Blog Sample</h2>
<br>

<hr />
<p><strong>Note:</strong>
These instructions are for the 0.2-incubating release of Aries.
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.</p>
<hr />
<p><a name="BlogSample-CreatetheOSGiplatformfortheBlogsample"></a></p>
<h3 id="create_the_osgi_platform_for_the_blog_sample">Create the OSGi platform for the Blog sample</h3>
<p>Download and unzip the source zip for the <a href="aries:downloads.html">latest release</a>
 of Aries Samples and build the blog-assembly module:</p>
<div class="codehilite"><pre><span class="n">cd</span> <span class="n">samples</span><span class="o">-</span><span class="mf">0.2</span><span class="o">-</span><span class="n">incubating</span><span class="sr">/blog/</span><span class="n">blog</span><span class="o">-</span><span class="n">assembly</span>
<span class="n">mvn</span> <span class="n">install</span>
</pre></div>


<p>This procedure will pull in the binaries from the latest release and its
dependencies.</p>
<p><a name="BlogSample-RunningtheBlogsample"></a></p>
<h3 id="running_the_blog_sample_1">Running the Blog sample</h3>
<p>Download the JDBC based Blog sample application (.eba file) from the <a href="aries:downloads.html">latest release</a>
. Change directory to the blog-assembly target directory:</p>
<div class="codehilite"><pre><span class="n">cd</span> <span class="n">samples</span><span class="o">-</span><span class="mf">0.2</span><span class="o">-</span><span class="n">incubating</span><span class="sr">/blog-sample/</span><span class="n">blog</span><span class="o">-</span><span class="n">assembly</span><span class="o">/</span><span class="n">target</span>
</pre></div>


<p>now start Aries in an OSGi framework (we're using Eclipse Equinox in this
case)</p>
<div class="codehilite"><pre><span class="n">java</span> <span class="o">-</span><span class="n">jar</span> <span class="n">osgi</span><span class="o">-</span><span class="mf">3.5.0</span><span class="o">.</span><span class="n">v20090520</span><span class="o">.</span><span class="n">jar</span> <span class="o">-</span><span class="n">console</span>
</pre></div>


<p>The OSGi console should start up, the 'ss' command should show all of the
Blog bundles in state 'ACTIVE'.</p>
<p>Now start the blog application (.eba file) you downloaded earlier, by
copying it into the load directory which was created when Aries started.</p>
<p>Point your browser to <a href="http://localhost:8080/org.apache.aries.samples.blog.web/">http://localhost:8080/org.apache.aries.samples.blog.web/</a></p>
<p>If you subsequently delete the .eba from the load directory the application
will be uninstalled.</p>
<p><a name="BlogSample-RunningthesampleusingaJPApersistencelayer"></a></p>
<h3 id="running_the_sample_using_a_jpa_persistence_layer">Running the sample using a JPA persistence layer</h3>
<p>The first blog sample application was written to use a JDBC persistence
layer. There is a second application implemented to demonstrate the JPA
capability</p>
<p>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.</p>
<p>Finally, after typing 'refresh' at the OSGi console, point your browser at <a href="http://localhost:8080/org.apache.aries.samples.blog.web/">http://localhost:8080/org.apache.aries.samples.blog.web/</a>
. 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.</p>
<p><a name="BlogSample-Usingthelatest,unreleasedcode"></a></p>
<h2 id="using_the_latest_unreleased_code">Using the latest, unreleased code</h2>
<p>If you prefer to use the very latest code from subversion, checkout and
build the Aries trunk by following the <a href="aries:buildingaries.html">Building Aries instructions</a>
.</p>
<p><a name="BlogSample-AbouttheBlogsample"></a></p>
<h2 id="about_the_blog_sample">About the Blog sample</h2>
<p>The blog sample components can be visualised like this:</p>
<p>!BlogSample.png!</p></div>
            <!-- Content -->
          </td>
        </tr>
      </table>
   </td>
   <td id="cell-2-2" colspan="2">&nbsp;</td>
  </tr>
  <tr width="100%">
   <td id="cell-3-0">&nbsp;</td>
   <td id="cell-3-1">&nbsp;</td>
   <td id="cell-3-2">
     <div id="footer">
       <!-- Footer -->
       <div id="site-footer">
         <a href="http://aries.apache.org/privacy-policy.html";>Privacy
Policy</a> 
       </div>
       <!-- Footer -->
     </div>
   </td>
   <td id="cell-3-3">&nbsp;</td>
   <td id="cell-3-4">&nbsp;</td>
  </tr>
  <tr width="100%">
    <td id="cell-4-0" colspan="2">&nbsp;</td>
    <td id="cell-4-1">&nbsp;</td>
    <td id="cell-4-2" colspan="2">&nbsp;</td>
  </tr>
</table>
</body>
</html> 
