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 12:05: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 links<br />
    </div>
        <br/>
                         <h4>Changes (10)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-unchanged" >h1. Business Case <br> <br></td></tr>
            <tr><td class="diff-changed-lines" >The example explains how a real-life
business problem <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">could
be</span> <span class="diff-added-words"style="background-color: #dfd;">is</span>
solved using OpenEJB in a combination with other open-source frameworks and tools. The example
covers the entire <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">software
development lifecycle, starting from problem analysis,</span> <span class="diff-added-words"style="background-color:
#dfd;">technical solution, including</span> architecture, design, build automation,
unit testing, implementation, and deployment. <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;">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. More
information about the product and its documentation can be obtained at [http://www.rempl.com/rempl-oss/].
<br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">The
product is hosted at [http://oss.rempl.com] with its source code available at [http://svn.rempl.com/trunk/rempl/rempl-oss].
The purpose of the system is to collect UML meta information from open source products and
make it visible for end-users in form of diagrams and texts. More information about the product
and its documentation you can get at [http://www.rempl.com/rempl-oss/]. <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h1. Architecture and Design
<br> <br></td></tr>
            <tr><td class="diff-changed-lines" >The following <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">components</span>
<span class="diff-added-words"style="background-color: #dfd;">Java-stack technologies</span>
are used in the system: <br></td></tr>
            <tr><td class="diff-unchanged" > <br>* OpenEJB as an implementation
of EJB <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >* Mojarra, implementation of Java
Server Faces (JSF) <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">There
are a number of service layers in the system:  <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">There
are three layers in the system (Presentation, Business, and Persistence) and a number of components
in each of them:  <br></td></tr>
            <tr><td class="diff-unchanged" > <br>!http://www.rempl.com/rempl-oss/tikz/architecture-components.png!
<br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">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-added-lines" style="background-color: #dfd;">Presentation
Layer includes JSF (Mojarra), JAX-RS (Jersey), and JEE container (Tomcat). In other words,
everything on top of &quot;[Delegates|http://www.rempl.com/rempl-oss/apidocs/com/rempl/oss/delegates/package-summary.html]&quot;
in the diagram. Package [com.rempl.oss.delegates|http://www.rempl.com/rempl-oss/apidocs/com/rempl/oss/delegates/package-summary.html]
with its classes realize [Business Delegate|http://java.sun.com/blueprints/corej2eepatterns/Patterns/BusinessDelegate.html]
and [Service Locator|http://java.sun.com/blueprints/corej2eepatterns/Patterns/ServiceLocator.html]
JEE design patterns. _More about it later..._ <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-changed-lines" >Business Layer includes EJB (OpenEJB),
<span class="diff-changed-words"><span class="diff-added-chars"style="background-color:
#dfd;">[</span>Brokers<span class="diff-added-chars"style="background-color: #dfd;">|http://www.rempl.com/rempl-oss/apidocs/com/rempl/oss/brokers/package-summary.html]</span></span>
(Stateless Session Beans), and JPA entities. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-changed-lines" ><span class="diff-changed-words"><span
class="diff-deleted-chars"style="color:#999;background-color:#fdd;text-decoration:line-through;">{color:#000000}</span>Persistence</span>
Layer includes JPA (OpenJPA), JDBC (MySQL JDBC Driver) and the MySQL <span class="diff-changed-words">server.<span
class="diff-deleted-chars"style="color:#999;background-color:#fdd;text-decoration:line-through;">{color}</span></span>
<br></td></tr>
            <tr><td class="diff-unchanged" > <br>h1. Build Automation and
Tests <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 is solved using OpenEJB in
a combination with other open-source frameworks and tools. The example covers the entire technical
solution, including 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> with its source code 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 the system is to collect UML meta information from open source products and
make it visible for end-users in form of diagrams and texts. More information about the product
and its documentation you can get at <a href="http://www.rempl.com/rempl-oss/" class="external-link"
rel="nofollow">http://www.rempl.com/rempl-oss/</a>.</p>

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

<p>The following Java-stack technologies 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 three layers in the system (Presentation, Business, and Persistence) and
a number of components in each of them: </p>

<p><span class="image-wrap" style=""><img src="http://www.rempl.com/rempl-oss/tikz/architecture-components.png"
style="border: 0px solid black" /></span></p>

<p>Presentation Layer includes JSF (Mojarra), JAX-RS (Jersey), and JEE container (Tomcat).
In other words, everything on top of "<a href="http://www.rempl.com/rempl-oss/apidocs/com/rempl/oss/delegates/package-summary.html"
class="external-link" rel="nofollow">Delegates</a>" in the diagram. Package <a
href="http://www.rempl.com/rempl-oss/apidocs/com/rempl/oss/delegates/package-summary.html"
class="external-link" rel="nofollow">com.rempl.oss.delegates</a> with its classes
realize <a href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/BusinessDelegate.html"
class="external-link" rel="nofollow">Business Delegate</a> and <a href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/ServiceLocator.html"
class="external-link" rel="nofollow">Service Locator</a> JEE design patterns. <em>More
about it later...</em></p>

<p>Business Layer includes EJB (OpenEJB), <a href="http://www.rempl.com/rempl-oss/apidocs/com/rempl/oss/brokers/package-summary.html"
class="external-link" rel="nofollow">Brokers</a> (Stateless Session Beans), and JPA
entities.</p>

<p>Persistence Layer includes JPA (OpenJPA), JDBC (MySQL JDBC Driver) and the MySQL
server.</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=6&originalVersion=5">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