tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] OpenEJB 3.0.x documentation > EJB + JPA + JSF + JAX-RS
Date Tue, 08 Mar 2011 11:50:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2036/9/1/_/styles/combined.css?spaceKey=OPENEJBx30&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=25202284">EJB
+ JPA + JSF + JAX-RS</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~yegor256">Yegor
Bugayenko</a>
    </h4>
        <div id="versionComment">
        <b>Comment:</b>
        more about rempl.com<br />
    </div>
        <br/>
                         <h4>Changes (15)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">h1.
RESTful Web Service, a Business Case <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h1.
Business Case <br></td></tr>
            <tr><td class="diff-unchanged" > <br>The example explains how
a real-life business problem could be solved using OpenEJB in a combination with other open-source
frameworks and tools. The example covers the entire software development lifecycle, starting
from problem analysis, architecture, design, build automation, unit testing, implementation,
and deployment. <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">We
have to create a web service that stores text documents online. By means of stateless HTTP
requests our customers will be able to create, read, update, and delete (CRUD) plain text
files. <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">The
product is hosted at [http://oss.rempl.com] and its source code is available at [http://svn.rempl.com/trunk/rempl/rempl-oss].
The purpose of this system is to collect UML meta information from open source products. The
information collected has to become visible for end-users in form of diagrams and texts. <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h1. Architecture and Design
<br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">TBD...
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">The
following components are used in the system: <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">h1.
Build automation <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">*
OpenEJB as an implementation of EJB <br>* OpenJPA, an implementation of JPA <br>*
Jersey, implementation of JAX-RS <br>* Mojarra, implementation of Java Server Faces
(JSF) <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">TBD...
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">There
are a number of service layers in the system: !http://www.rempl.com/rempl-oss/tikz/architecture-components.png!
<br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">h1.
Unit tests <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h1.
{color:#000000}Presentation Layer includes JSF (Mojarra), JAX-RS (Jersey), and JEE container
(Tomcat). In other words, everything on top of &quot;{color}{color:#000000}[Delegates|http://www.rempl.com/rempl-oss/apidocs/com/rempl/oss/delegates/package-summary.html]{color}{color:#000000}&quot;
in the diagram. More about&amp;nbsp;{color} <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">TBD...
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Business
Layer includes EJB (OpenEJB), Brokers (Stateless Session Beans), and JPA entities. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{color:#000000}Persistence
Layer includes JPA (OpenJPA), JDBC (MySQL JDBC Driver) and the MySQL server.{color} <br>
<br>h1. Build Automation and Tests <br> <br>Build automation is managed
by [Maven 3|http://maven.apache.org/ref/3.0/], see our [pom.xml|http://trac.fazend.com/rempl/browser/rempl/trunk/rempl/rempl-oss/pom.xml].
<br> <br>There are four levels of testing in the product: <br> <br>#
Static analysis <br># Out-of-container unit testing <br># In-container functional
testing <br># On-location testing <br> <br>During static analysis we are
using [Checkstyle|http://maven.apache.org/plugins/maven-checkstyle-plugin/], [PMD|http://maven.apache.org/plugins/maven-pmd-plugin/],
[FindBugs|http://mojo.codehaus.org/findbugs-maven-plugin/], [Cobertura|http://mojo.codehaus.org/cobertura-maven-plugin/],
[maven-dependency-plugin|http://maven.apache.org/plugins/maven-dependency-plugin/analyze-only-mojo.html],
[xml-maven-plugin|http://mojo.codehaus.org/xml-maven-plugin/]. Important to note that all
these tools are used as gate condition checkers, not as post-factum analyzers.&amp;nbsp;
<br> <br>Out-of-container tests are automated with JUnit. Good example of a Stateless
Session Bean out-of-container testing: [UserMgrBeanTest.java|http://trac.fazend.com/rempl/browser/rempl/trunk/rempl/rempl-oss/src/test/java/com/rempl/oss/brokers/UserMgrBeanTest.java].
<br> <br>In-containter functional testing is automated with JSFUnit and embedded
Tomcat container. _more later..._ <br> <br>_On-location testing is not yet automated...
working on it..._ <br> <br></td></tr>
            <tr><td class="diff-unchanged" >h1. Configuration and Plumbing <br>
<br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="EJB%2BJPA%2BJSF%2BJAX-RS-BusinessCase"></a>Business
Case</h1>

<p>The example explains how a real-life business problem could be solved using OpenEJB
in a combination with other open-source frameworks and tools. The example covers the entire
software development lifecycle, starting from problem analysis, architecture, design, build
automation, unit testing, implementation, and deployment.</p>

<p>The product is hosted at <a href="http://oss.rempl.com" class="external-link"
rel="nofollow">http://oss.rempl.com</a> and its source code is available at <a
href="http://svn.rempl.com/trunk/rempl/rempl-oss" class="external-link" rel="nofollow">http://svn.rempl.com/trunk/rempl/rempl-oss</a>.
The purpose of this system is to collect UML meta information from open source products. The
information collected has to become visible for end-users in form of diagrams and texts.</p>

<h1><a name="EJB%2BJPA%2BJSF%2BJAX-RS-ArchitectureandDesign"></a>Architecture
and Design</h1>

<p>The following components are used in the system:</p>

<ul>
	<li>OpenEJB as an implementation of EJB</li>
	<li>OpenJPA, an implementation of JPA</li>
	<li>Jersey, implementation of JAX-RS</li>
	<li>Mojarra, implementation of Java Server Faces (JSF)</li>
</ul>


<p>There are a number of service layers in the system: <span class="image-wrap" style=""><img
src="http://www.rempl.com/rempl-oss/tikz/architecture-components.png" style="border: 0px solid
black" /></span></p>

<h1><a name="EJB%2BJPA%2BJSF%2BJAX-RS-"></a><font color="#000000">Presentation
Layer includes JSF (Mojarra), JAX-RS (Jersey), and JEE container (Tomcat). In other words,
everything on top of "</font><font color="#000000"><a href="http://www.rempl.com/rempl-oss/apidocs/com/rempl/oss/delegates/package-summary.html"
class="external-link" rel="nofollow">Delegates</a></font><font color="#000000">"
in the diagram. More about&nbsp;</font></h1>

<p>Business Layer includes EJB (OpenEJB), Brokers (Stateless Session Beans), and JPA
entities.</p>

<p><font color="#000000">Persistence Layer includes JPA (OpenJPA), JDBC (MySQL
JDBC Driver) and the MySQL server.</font></p>

<h1><a name="EJB%2BJPA%2BJSF%2BJAX-RS-BuildAutomationandTests"></a>Build
Automation and Tests</h1>

<p>Build automation is managed by <a href="http://maven.apache.org/ref/3.0/" class="external-link"
rel="nofollow">Maven 3</a>, see our <a href="http://trac.fazend.com/rempl/browser/rempl/trunk/rempl/rempl-oss/pom.xml"
class="external-link" rel="nofollow">pom.xml</a>.</p>

<p>There are four levels of testing in the product:</p>

<ol>
	<li>Static analysis</li>
	<li>Out-of-container unit testing</li>
	<li>In-container functional testing</li>
	<li>On-location testing</li>
</ol>


<p>During static analysis we are using <a href="http://maven.apache.org/plugins/maven-checkstyle-plugin/"
class="external-link" rel="nofollow">Checkstyle</a>, <a href="http://maven.apache.org/plugins/maven-pmd-plugin/"
class="external-link" rel="nofollow">PMD</a>, <a href="http://mojo.codehaus.org/findbugs-maven-plugin/"
class="external-link" rel="nofollow">FindBugs</a>, <a href="http://mojo.codehaus.org/cobertura-maven-plugin/"
class="external-link" rel="nofollow">Cobertura</a>, <a href="http://maven.apache.org/plugins/maven-dependency-plugin/analyze-only-mojo.html"
class="external-link" rel="nofollow">maven-dependency-plugin</a>, <a href="http://mojo.codehaus.org/xml-maven-plugin/"
class="external-link" rel="nofollow">xml-maven-plugin</a>. Important to note that
all these tools are used as gate condition checkers, not as post-factum analyzers.&nbsp;</p>

<p>Out-of-container tests are automated with JUnit. Good example of a Stateless Session
Bean out-of-container testing: <a href="http://trac.fazend.com/rempl/browser/rempl/trunk/rempl/rempl-oss/src/test/java/com/rempl/oss/brokers/UserMgrBeanTest.java"
class="external-link" rel="nofollow">UserMgrBeanTest.java</a>.</p>

<p>In-containter functional testing is automated with JSFUnit and embedded Tomcat container.
<em>more later...</em></p>

<p><em>On-location testing is not yet automated... working on it...</em></p>

<h1><a name="EJB%2BJPA%2BJSF%2BJAX-RS-ConfigurationandPlumbing"></a>Configuration
and Plumbing</h1>

<p>TBD...</p>

<h1><a name="EJB%2BJPA%2BJSF%2BJAX-RS-Implementation"></a>Implementation</h1>

<p>TBD...</p>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=25202284">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=25202284&revisedVersion=3&originalVersion=2">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=25202284&showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message