blob: 6ed2ecd5c6d76bff21e2433f7647eaacf1fba561 [file] [log] [blame]
<!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 rel="shortcut icon" href="http://aries.apache.org/images/favicon.ico"></link>
<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 -->
<style type="text/css">
/* The following code is added by mdx_elementid.py
It was originally lifted from http://subversion.apache.org/style/site.css */
/*
* Hide class="elementid-permalink", except when an enclosing heading
* has the :hover property.
*/
.headerlink, .elementid-permalink {
visibility: hidden;
}
h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
<div onclick="SwitchMenu('documentation')" id="documentationTitle" class="menutitle">Documentation</div>
<div id="documentation" class="menuitemgroup">
<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 class="menuitem">
<a href="/documentation/tools.html">Tools</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/async-svcs.html">Asynchronous Services</a>
</div>
<div class="menuitem">
<a href="/modules/blueprint.html">Blueprint</a>
</div>
<div class="menuitem">
<a href="/modules/blueprint-maven-plugin.html">Blueprint-maven-plugin</a>
</div>
<div class="menuitem">
<a href="/modules/blueprintannotation.html">Blueprint Annotations</a>
</div>
<div class="menuitem">
<a href="/modules/blueprintnoosgi.html">Blueprint No-OSGi</a>
</div>
<div class="menuitem">
<a href="/modules/blueprintweb.html">Blueprint Web</a>
</div>
<div class="menuitem">
<a href="/modules/containers.html">Containers</a>
</div>
<div class="menuitem">
<a href="/modules/esaanttask.html">ESA Ant Task </a>
</div>
<div class="menuitem">
<a href="/modules/ebamavenpluginproject.html">EBA Maven Plugin </a>
</div>
<div class="menuitem">
<a href="/modules/esamavenpluginproject.html">ESA Maven Plugin </a>
</div>
<div class="menuitem">
<a href="/modules/jmx.html">JMX</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/transactioncontrol.html">Transaction Control Service</a>
</div>
<div class="menuitem">
<a href="/modules/transactionsproject.html">Transactions</a>
</div>
<div class="menuitem">
<a href="/modules/rsa.html">Remote Service Admin (RSA)</a>
</div>
<div class="menuitem">
<a href="/modules/spi-fly.html">SPI Fly</a>
</div>
<div class="menuitem">
<a href="/modules/subsystems.html">Subsystems</a>
</div>
<div class="menuitem">
<a href="/modules/applications.html">Applications (obsolete)</a>
</div>
</div>
<div onclick="SwitchMenu('downloads')" id="downloadsTitle" class="menutitle">Downloads</div>
<div id="downloads" class="menuitemgroup">
<div class="menuitem">
<a href="/downloads/currentreleases.html">Current Releases</a>
</div>
<div class="menuitem">
<a href="/downloads/testresults.html">Compliance Tests</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/resources.html">Community Resources</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/boardreports.html">Board Reports</a>
</div>
<div class="menuitem">
<a href="/community/logos.html">Logos for Users</a>
</div>
</div>
<div onclick="SwitchMenu('development')" id="developmentTitle" class="menutitle">Development</div>
<div id="development" class="menuitemgroup">
<div class="menuitem">
<a href="/development/buildingaries.html">Building Aries </a>
</div>
<div class="menuitem">
<a href="/development/guidelines.html">Cording Guidelines</a>
</div>
<div class="menuitem">
<a href="/development/architecture.html">Architecture</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="/development/maintainingthewebpages.html">Web Site Maintenance </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>
<div class="promotion">
<a href="http://www.apache.org/events/current-event.html">
<img src="http://www.apache.org/events/current-event-125x125.png" width="125" height="125"/>
</a>
</div>
<!-- NavigationBar -->
</div>
</div>
</div>
</div>
</td>
<td height="100%" width="100%">
<!-- Content -->
<div class="wiki-content"><style type="text/css">
/* The following code is added by mdx_elementid.py
It was originally lifted from http://subversion.apache.org/style/site.css */
/*
* Hide class="elementid-permalink", except when an enclosing heading
* has the :hover property.
*/
.headerlink, .elementid-permalink {
visibility: hidden;
}
h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
<p><a name="BlogSample-TheBlogSample"></a></p>
<h1 id="the-blog-sample">The Blog Sample<a class="headerlink" href="#the-blog-sample" title="Permanent link">&para;</a></h1>
<p><a name="BlogSample-RunningtheBlogSample"></a></p>
<h2 id="running-the-blog-sample">Running the Blog Sample<a class="headerlink" href="#running-the-blog-sample" title="Permanent link">&para;</a></h2>
<p><br></p>
<hr />
<p><strong>Note:</strong>
These instructions are for the 1.0.0 release of Aries.
Instructions for older releases can be found <a href="/downloads/archivedrelease.html">here</a>
. 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<a class="headerlink" href="#create-the-osgi-platform-for-the-blog-sample" title="Permanent link">&para;</a></h3>
<p>Download and unzip the source zip for the <a href="/downloads/currentrelease.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>1<span class="p">.</span>0<span class="p">.</span>0<span class="o">/</span><span class="n">blog</span><span class="o">/</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<a class="headerlink" href="#running-the-blog-sample_1" title="Permanent link">&para;</a></h3>
<p>Build the JPA based Blog sample application (.eba file) from the <a href="/downloads/currentrelrease.html">latest release</a></p>
<div class="codehilite"><pre><span class="n">cd</span> <span class="n">samples</span><span class="o">-</span>1<span class="p">.</span>0<span class="p">.</span>0<span class="o">/</span><span class="n">blog</span><span class="o">/</span><span class="n">blog</span><span class="o">-</span><span class="n">jpa</span><span class="o">-</span><span class="n">eba</span>
<span class="n">mvn</span> <span class="n">install</span>
</pre></div>
<p>. 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>1<span class="p">.</span>0<span class="p">.</span>0<span class="o">/</span><span class="n">blog</span><span class="o">-</span><span class="n">sample</span><span class="o">/</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">org</span><span class="p">.</span><span class="n">eclipse</span><span class="p">.</span><span class="n">osgi</span><span class="o">-</span>3<span class="p">.</span>7<span class="p">.</span>0<span class="p">.</span><span class="n">v20110613</span><span class="p">.</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>To start the blog application (.eba file) you built earlier, create a directory
call load and copying it into the load directory.</p>
<p>Point your browser to <a href="http://localhost:8080/blog/">http://localhost:8080/blog/</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<a class="headerlink" href="#running-the-sample-using-a-jpa-persistence-layer" title="Permanent link">&para;</a></h3>
<p>The first blog sample application is written to use a JPA persistence layer. There is an earlier application implemented to demonstrate the JDBC
capability</p>
<p>To run the blog sample which uses the JDBC persistence layer, start the OSGi
framework, remove any previous copies of the blog sample from the
target/load directory, then build and copy the Blog sample JDBC .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/blog/">http://localhost:8080/blog/</a>
. You should see something that looks precisely the same as the blog sample
running with the JPA persistence layer, but this time running using the
JDBC layer.</p>
<p><a name="BlogSample-Usingthelatest,unreleasedcode"></a></p>
<h2 id="using-the-latest-unreleased-code">Using the latest, unreleased code<a class="headerlink" href="#using-the-latest-unreleased-code" title="Permanent link">&para;</a></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<a class="headerlink" href="#about-the-blog-sample" title="Permanent link">&para;</a></h2>
<p>The blog sample components can be visualised like this:</p>
<p><img alt="bs" src="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>