geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Geronimo v2.1: openejb-jar.xml (page edited)
Date Fri, 06 Jun 2008 19:09:00 GMT
<html>
<head>
    <base href="http://cwiki.apache.org/confluence" />
    <style type="text/css">
    <!--
    body, p, td, table, tr, .bodytext, .stepfield {
	font-family: Verdana, arial, sans-serif;
	font-size: 11px;
	line-height: 16px;
	color: #000000;
	font-weight: normal;
}
#PageContent {
	text-align: left;
	background-color: #fff;
	padding: 0px;
	margin: 0px;
    padding-bottom:20px;
}
/*
** when this stylesheet is used for the Tiny MCE Wysiwyg editor's edit area, we can't
** use an id=PageContent or class=wiki-content, so we must
** set the body style to that used for PageContent, and p to that used for wiki-content.
*/

body {
	margin: 0px;
	padding: 0px;
	text-align: center;
    background-color: #f0f0f0;
}

@media print {

body {
    background-color: #fff;
}

}

.monospaceInput {
    font:12px monospace
}

.wiki-content p, .commentblock p {
    margin: 16px 0px 16px 0px;
    padding: 0px;
}

.wiki-content-preview {
    padding: 5px;
    border-left: 1px solid #3c78b5;
    border-right: 1px solid #3c78b5;
}

ul, ol {
    margin-top: 2px;
    margin-bottom: 2px;
    padding-top: 0px;
    padding-bottom: 0px;
}

pre {
    padding: 0px;
    margin-top: 5px;
    margin-left: 15px;
    margin-bottom: 5px;
    margin-right: 5px;
    text-align: left;
}

.helpheading {
    font-weight: bold;
    background-color: #D0D9BD;
        border-bottom: 1px solid #3c78b5;
        padding: 4px 4px 4px 4px;
        margin: 0px;
        margin-top: 10px;
}
.helpcontent {
        padding: 4px 4px 20px 4px;
    background-color: #f5f7f1;
}

.code {
 	border: 1px dashed #3c78b5;
    font-size: 11px;
	font-family: Courier;
    margin: 10px;
	line-height: 13px;
}

.focusedComment {
    background: #ffffce;
}

.commentBox, .focusedComment {
    padding: 10px;
    margin: 5px 0 5px 0;
    border: 1px #bbb solid;
}

.codeHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.codeContent {
    text-align: left;
    background-color: #f0f0f0;
    padding: 3px;
}

.preformatted {
 	border: 1px dashed #3c78b5;
    font-size: 11px;
	font-family: Courier;
    margin: 10px;
	line-height: 13px;
}

.preformattedHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.preformattedContent {
    background-color: #f0f0f0;
    padding: 3px;
}

.panel {
 	border: 1px dashed #3c78b5;
    margin: 10px;
    margin-top: 0px;
}

.panelHeader {
    background-color: #f0f0f0;
 	border-bottom: 1px dashed #3c78b5;
    padding: 3px;
	text-align: center;
}

.panelContent {
    background-color: #f0f0f0;
    padding: 5px;
}

.anonymousAlert {
    background-color: #f0f0f0;
 	border: 1px dashed red;
    font-size: 11px;
    padding: 10px 5px 10px 5px;
    margin: 4px;
	line-height: 13px;
}

.lockAlert {
    background-color: #f0f0f0;
    width: 50%;
 	border: 1px dashed red;
    font-size: 11px;
    padding: 10px 5px 10px 5px;
    margin: 4px;
	line-height: 13px;
}


.code-keyword {
  color: #000091;
  background-color: inherit;
}

.code-object {
  color: #910091;
  background-color: inherit;
}

.code-quote {
  color: #009100;
  background-color: inherit;
}

.code-comment {
  color: #808080;
  background-color: inherit;
}


.code-xml .code-keyword {
  color: inherit;
  font-weight: bold;
}

.code-tag {
  color: #000091;
  background-color: inherit;
}

.breadcrumbs {
    background-color: #f0f0f0;
 	border-color: #3c78b5;
	border-width: 1px 0px 1px 0px;
	border-style: solid;
    font-size: 11px;
    padding: 3px 0px 3px 0px;
}

.navmenu {
    border: 1px solid #ccc;
}

.menuheading {
    font-weight: bold;
    background-color: #f0f0f0;
 	border-bottom: 1px solid #3c78b5;
	padding: 4px 4px 2px 4px;
}

.menuitems {
	padding: 4px 4px 20px 4px;
}

.rightpanel {
    border-left: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

#helpheading {
    text-align: left;
    font-weight: bold;
    background-color: #D0D9BD;
 	border-bottom: 1px solid #3c78b5;
	padding: 4px 4px 4px 4px;
	margin: 0px;
}
#helpcontent {
	padding: 4px 4px 4px 4px;
    background-color: #f5f7f1;
}
.helptab-unselected {
    font-weight: bold;
	padding: 5px;
    background-color: #f5f7f1;
}
.helptab-selected {
    font-weight: bold;
    background-color: #D0D9BD;
	padding: 5px;
}
.helptabs {
    margin: 0px;
    background-color: #f5f7f1;
	padding: 5px;
}
.infopanel-heading {
    font-weight: bold;
	padding: 4px 0px 2px 0px;
}

.pagebody {
}

.pageheader {
	padding: 5px 5px 5px 0px;
 	border-bottom: 1px solid #3c78b5;
}

.pagetitle {
	font-size: 22px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
}

.newpagetitle {
    color: #ccc !important;
}

.steptitle {
	font-size: 18px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
	margin-bottom: 7px;
}

.substeptitle {
    font-size: 12px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
    margin: 2px 4px 4px 4px;
    padding: 2px 4px 1px 4px;
}

.stepdesc {
    font-family: Verdana, arial, sans-serif;
	font-size: 11px;
	line-height: 16px;
	font-weight: normal;
    color: #666666;
    margin-top: 7px;
    margin-bottom: 7px;
}

.steplabel {
    font-weight: bold;
    margin-right: 4px;
    color: black;
    float: left;
    width: 15%;
    text-align: right;
}

.stepfield {
    background: #f0f0f0;
    padding: 5px;
}

.submitButtons{
    margin-top:5px;
    text-align:right;
}

.formtitle {
	font-size: 12px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: #003366;
}

.sectionbottom {
    border-bottom: 1px solid #3c78b5;
}

.topRow {
    border-top: 2px solid #3c78b5;
}

.tabletitle {
	font-size: 14px;
	font-weight: bold;
	font-family: Arial, sans-serif;
    padding: 3px 0px 2px 0px;
    margin: 8px 4px 2px 0px;
	color: #003366;
	border-bottom: 2px solid #3c78b5;
}
.pagesubheading {
    color: #666666;
    font-size: 10px;
    padding: 0px 0px 5px 0px;
}

HR {
	color: 3c78b5;
	height: 1;
}

A:link, A:visited, A:active, A:hover {
	color: #003366;
}

h1 A:link, h1 A:visited, h1 A:active {
	text-decoration: none;
}

h1 A:hover {
    border-bottom: 1px dotted #003366;
}

.wiki-content > :first-child, .commentblock > :first-child {
    margin-top: 3px;
}

.logocell {
    padding: 10px;
}

input {
	font-family: verdana, geneva, arial, sans-serif;
	font-size: 11px;
	color: #000000;
}

textarea, textarea.editor {
	font-family: verdana, geneva, arial, sans-serif;
	font-size: 11px;
	color: #333333;
}

/* use logoSpaceLink instead.
.spacenametitle {
	font: 21px/31px Impact, Arial, Helvetica;
    font-weight: 100;
    color: #999999;
	margin: 0px;
}
.spacenametitle img {
  margin: 0 0 -4px 0;
}
.spacenametitle a {
    text-decoration: none;
    color: #999999;
}
.spacenametitle a:visited {
    text-decoration: none;
    color: #999999;
}*/

.spacenametitle-printable {
	font: 20px/25px Impact, Arial, Helvetica;
    font-weight: 100;
    color: #999999;
	margin: 0px;
}
.spacenametitle-printable a {
    text-decoration: none;
    color: #999999;
}
.spacenametitle-printable a:visited {
    text-decoration: none;
    color: #999999;
}

.blogDate {
	font-weight: bold;
	text-decoration: none;
	color: black;
}

.blogSurtitle {
    background: #f0f0f0;
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.blogHeading {
    font-size: 20px;
    line-height: normal;
    font-weight: bold;
    padding: 0px;
    margin: 0px;
}

.blogHeading a {
   text-decoration: none;
   color: black;
}

.endsection {
	align: right;
	color: #666666;
	margin-top: 10px;
}
.endsectionleftnav {
	align: right;
	color: #666666;
	margin-top: 10px;
}

h1 {
	font-size: 24px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	color: #003366;
 	border-bottom: 1px solid #3c78b5;
	padding: 2px;
	margin: 36px 0px 4px 0px;
}

h2 {
	font-size: 18px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
 	border-bottom: 1px solid #3c78b5;
	padding: 2px;
	margin: 27px 0px 4px 0px;
}

h3 {
	font-size: 14px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 21px 0px 4px 0px;
}

h4 {
	font-size: 12px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 18px 0px 4px 0px;
}

h4.search {
	font-size: 12px;
	line-height: normal;
	font-weight: normal;
	background-color: #f0f0f0;
	padding: 4px;
	margin: 18px 0px 4px 0px;
}

h5 {
	font-size: 10px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 14px 0px 4px 0px;
}

h6 {
	font-size: 8px;
	line-height: normal;
	font-weight: bold;
	background-color: #f0f0f0;
	padding: 2px;
	margin: 14px 0px 4px 0px;
}

.smallfont {
    font-size: 10px;
}
.descfont {
    font-size: 10px;
    color: #666666;
}
.smallerfont {
    font-size: 9px;
}
.smalltext {
    color: #666666;
    font-size: 10px;
}
.smalltext a {
    color: #666666;
}
.smalltext-blue {
    color: #3c78b5;
    font-size: 10px;
}
.surtitle {
    margin-left: 1px;
    margin-bottom: 5px;
    font-size: 14px;
    color: #666666;
}

/* css hack found here:  http://www.fo3nix.pwp.blueyonder.co.uk/tutorials/css/hacks/ */
.navItemOver { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #003366; cursor: hand; voice-family: '\'}\''; voice-family:inherit; cursor: pointer;}
.navItemOver a { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItemOver a:visited { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItemOver a:hover { color: #ffffff; background-color:#003366; text-decoration: none; }
.navItem { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c78b5; }
.navItem a { color: #ffffff; text-decoration: none; }
.navItem a:hover { color: #ffffff; text-decoration: none; }
.navItem a:visited { color: #ffffff; text-decoration: none; }

div.padded { padding: 4px; }
div.thickPadded { padding: 10px; }
h3.macrolibrariestitle {
    margin: 0px 0px 0px 0px;
}

div.centered { text-align: center; margin: 10px; }
div.centered table {margin: 0px auto; text-align: left; }

.tableview table {
    margin: 0;
}

.tableview th {
    text-align: left;
    color: #003366;
    font-size: 12px;
    padding: 5px 0px 0px 5px;
    border-bottom: 2px solid #3c78b5;
}
.tableview td {
    text-align: left;
    border-color: #ccc;
    border-width: 0px 0px 1px 0px;
    border-style: solid;
    margin: 0;
    padding: 4px 10px 4px 5px;
}

.grid {
    margin: 2px 0px 5px 0px;
    border-collapse: collapse;
}
.grid th  {
    border: 1px solid #ccc;
    padding: 2px 4px 2px 4px;
    background: #f0f0f0;
    text-align: center;
}
.grid td  {
    border: 1px solid #ccc;
    padding: 3px 4px 3px 4px;
}
.gridHover {
	background-color: #f9f9f9;
}

td.infocell {
    background-color: #f0f0f0;
}
.label {
	font-weight: bold;
	color: #003366;
}

label {
	font-weight: bold;
	color: #003366;
}

.error {
	background-color: #fcc;
}

.errorBox {
	background-color: #fcc;
    border: 1px solid #c00;
    padding: 5px;
    margin: 5px;
}

.errorMessage {
	color: #c00;
}

.success {
	background-color: #dfd;
}

.successBox {
	background-color: #dfd;
    border: 1px solid #090;
    padding: 5px;
    margin-top:5px;
    margin-bottom:5px;
}

blockquote {
	padding-left: 10px;
	padding-right: 10px;
	margin-left: 5px;
	margin-right: 0px;
	border-left: 1px solid #3c78b5;
}

table.confluenceTable
{
    margin: 5px;
    border-collapse: collapse;
}

/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */
table.confluenceTable td.confluenceTd
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
}

/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */
table.confluenceTable th.confluenceTh
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
    background-color: #f0f0f0;
    text-align: center;
}

td.confluenceTd
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
}

th.confluenceTh
{
    border-width: 1px;
    border-style: solid;
    border-color: #ccc;
    padding: 3px 4px 3px 4px;
    background-color: #f0f0f0;
    text-align: center;
}

DIV.small {
	font-size: 9px;
}

H1.pagename {
	margin-top: 0px;
}

IMG.inline  {}

.loginform {
    margin: 5px;
    border: 1px solid #ccc;
}

/* The text how the "This is a preview" comment should be shown. */
.previewnote { text-align: center;
                font-size: 11px;
                    color: red; }

/* How the preview content should be shown */
.previewcontent { background: #E0E0E0; }

/* How the system messages should be shown (DisplayMessage.jsp) */
.messagecontent { background: #E0E0E0; }

/* How the "This page has been modified..." -comment should be shown. */
.conflictnote { }

.createlink {
    color: maroon;
}
a.createlink {
    color: maroon;
}
.templateparameter {
    font-size: 9px;
    color: darkblue;
}

.diffadded {
    background: #ddffdd;
    padding: 1px 1px 1px 4px;
	border-left: 4px solid darkgreen;
}
.diffdeleted {
    color: #999;
    background: #ffdddd;
    padding: 1px 1px 1px 4px;
	border-left: 4px solid darkred;
}
.diffnochange {
    padding: 1px 1px 1px 4px;
	border-left: 4px solid lightgrey;
}
.differror {
    background: brown;
}
.diff {
    font-family: lucida console, courier new, fixed-width;
	font-size: 12px;
	line-height: 14px;
}
.diffaddedchars {
    background-color:#99ff99;
    font-weight:bolder;
}
.diffremovedchars {
    background-color:#ff9999;
    text-decoration: line-through;
    font-weight:bolder;
}

.greybackground {
    background: #f0f0f0
}

.greybox {
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.borderedGreyBox {
    border: 1px solid #cccccc;
    background-color: #f0f0f0;
    padding: 10px;
}

.greyboxfilled {
 	border: 1px solid #ddd;
    background: #f0f0f0;
    padding: 3px;
	margin: 1px 1px 10px 1px;
}

.navBackgroundBox {
    padding: 5px 5px 5px 5px;
    font-size: 22px;
	font-weight: bold;
	font-family: Arial, sans-serif;
	color: white;
    background: #3c78b5;
    text-decoration: none;
}

.previewBoxTop {
	background-color: #f0f0f0;
    border-width: 1px 1px 0px 1px;
    border-style: solid;
    border-color: #3c78b5;
    padding: 5px;
    margin: 5px 0px 0px 0px;
    text-align: center;
}
.previewContent {
    background-color: #fff;
 	border-color: #3c78b5;
	border-width: 0px 1px 0px 1px;
	border-style: solid;
	padding: 10px;
	margin: 0px;
}
.previewBoxBottom {
	background-color: #f0f0f0;
    border-width: 0px 1px 1px 1px;
    border-style: solid;
    border-color: #3c78b5;
    padding: 5px;
    margin: 0px 0px 5px 0px;
    text-align: center;
}

.functionbox {
    background-color: #f0f0f0;
 	border: 1px solid #3c78b5;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.functionbox-greyborder {
    background-color: #f0f0f0;
 	border: 1px solid #ddd;
	padding: 3px;
	margin: 1px 1px 10px 1px;
}

.search-highlight {
    background-color: #ffffcc;
}

/* normal (white) background */
.rowNormal {
    background-color: #ffffff;
 }

/* alternate (pale yellow) background */
.rowAlternate {
    background-color: #f7f7f7;
}

/* used in the list attachments table */
.rowAlternateNoBottomColor {
    background-color: #f7f7f7;
}

.rowAlternateNoBottomNoColor {
}

.rowAlternateNoBottomColor td {
    border-bottom: 0px;
}

.rowAlternateNoBottomNoColor td {
    border-bottom: 0px;
}

/* row highlight (grey) background */
.rowHighlight {
    background-color: #f0f0f0;

}

TD.greenbar {FONT-SIZE: 2px; BACKGROUND: #00df00; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
TD.redbar {FONT-SIZE: 2px; BACKGROUND: #df0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
TD.darkredbar {FONT-SIZE: 2px; BACKGROUND: #af0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; }

TR.testpassed {FONT-SIZE: 2px; BACKGROUND: #ddffdd; PADDING: 0px; }
TR.testfailed {FONT-SIZE: 2px; BACKGROUND: #ffdddd; PADDING: 0px; }

.toolbar  {
    margin: 0px;
    border-collapse: collapse;
}

.toolbar td  {
    border: 1px solid #ccc;
    padding: 2px 2px 2px 2px;
    color: #ccc;
}

td.noformatting {
    border-width: 0px;
    border-style: none;
    text-align: center;
	padding: 0px;
}

.commentblock {
    margin: 12px 0 12px 0;
}

/*
 * Divs displaying the license information, if necessary.
 */
.license-eval, .license-none, .license-nonprofit {
    border-top: 1px solid #bbbbbb;
    text-align: center;
    font-size: 10px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}

.license-eval, .license-none {
    background-color: #ffcccc;
}

.license-eval b, .license-none b {
    color: #990000
}

.license-nonprofit {
    background-color: #ffffff;
}

/*
 * The shadow at the bottom of the page between the main content and the
 * "powered by" section.
 */
.bottomshadow {
    height: 12px;
    background-image: url("$req.contextPath/images/border/border_bottom.gif");
    background-repeat: repeat-x;
}

/*
 * Styling of the operations box
 */
.navmenu .operations li, .navmenu .operations ul {
    list-style: none;
    margin-left: 0;
    padding-left: 0;
}

.navmenu .operations ul {
    margin-bottom: 9px;
}

.navmenu .label {
    font-weight: inherit;
}

/*
 * Styling of ops as a toolbar
 */
.toolbar div {
    display: none;
}

.toolbar .label {
    display: none;
}

.toolbar .operations {
    display: block;
}

.toolbar .operations ul {
    display: inline;
    list-style: none;
    margin-left: 10px;
    padding-left: 0;
}

.toolbar .operations li {
    list-style: none;
    display: inline;
}

/* list page navigational tabs */
#foldertab {
padding: 3px 0px 3px 8px;
margin-left: 0;
border-bottom: 1px solid #3c78b5;
font: bold 11px Verdana, sans-serif;
}

#foldertab li {
list-style: none;
margin: 0;
display: inline;
}

#foldertab li a {
padding: 3px 0.5em;
margin-left: 3px;
border: 1px solid #3c78b5;
border-bottom: none;
background: #3c78b5;
text-decoration: none;
}

#foldertab li a:link { color: #ffffff; }
#foldertab li a:visited { color: #ffffff; }

#foldertab li a:hover {
color: #ffffff;
background: #003366;
border-color: #003366;
}

#foldertab li a.current {
background: white;
border-bottom: 1px solid white;
color: black;
}

#foldertab li a.current:link { color: black; }
#foldertab li a.current:visited { color: black; }
#foldertab li a.current:hover {
background: white;
border-bottom: 1px solid white;
color: black;
}

/* alphabet list */
ul#squaretab {
margin-left: 0;
padding-left: 0;
white-space: nowrap;
font: bold 8px Verdana, sans-serif;
}

#squaretab li {
display: inline;
list-style-type: none;
}

#squaretab a {
padding: 2px 6px;
border: 1px solid #3c78b5;
}

#squaretab a:link, #squaretab a:visited {
color: #fff;
background-color: #3c78b5;
text-decoration: none;
}

#squaretab a:hover {
color: #ffffff;
background-color: #003366;
border-color: #003366;
text-decoration: none;
}

#squaretab li a#current {
background: white;
color: black;
}

.blogcalendar * {
    font-family:verdana, arial, sans-serif;
    font-size:x-small;
    font-weight:normal;
    line-height:140%;
    padding:2px;
}


table.blogcalendar {
    border: 1px solid #3c78b5;
}

.blogcalendar th.calendarhead, a.calendarhead {
    font-size:x-small;
    font-weight:bold;
    padding:2px;
    text-transform:uppercase;
    background-color: #3c78b5;
    color: #ffffff;
    letter-spacing: .3em;
    text-transform: uppercase;
}

.calendarhead:visited {color: white;}
.calendarhead:active {color: white;}
.calendarhead:hover {color: white;}

.blogcalendar th {
    font-size:x-small;
    font-weight:bold;
    padding:2px;
    background-color:#f0f0f0;
}

.blogcalendar td {
    font-size:x-small;
    font-weight:normal;
}

.searchGroup { padding: 0 0 10px 0; background: #f0f0f0; }
.searchGroupHeading { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c78b5; padding: 2px 4px 1px 4px; }
.searchItem { padding: 1px 4px 1px 4px; }
.searchItemSelected { padding: 1px 4px 1px 4px; font-weight: bold; background: #ddd; }

/* permissions page styles */
.permissionHeading {
    border-bottom: #bbb; border-width: 0 0 1px 0; border-style: solid; font-size: 16px; text-align: left;
}
.permissionTab {
    border-width: 0 0 0 1px; border-style: solid; background: #3c78b5; color: #ffffff; font-size: 10px;
}
.permissionSuperTab {
    border-width: 0 0 0 1px; border-style: solid; background: #003366; color: #ffffff;
}
.permissionCell {
    border-left: #bbb; border-width: 0 0 0 1px; border-style: solid;
}

/* warning panel */
.warningPanel { background: #FFFFCE; border:#F0C000 1px solid; padding: 8px; margin: 10px; }
/* alert panel */
.alertPanel { background: #FFCCCC; border:#C00 1px solid; padding: 8px; margin: 10px; }
/* info panel */
.infoPanel { background: #D8E4F1; border:#3c78b5 1px solid; padding: 8px; margin: 10px; }

/* side menu highlighting (e.g. space content screen) */
.optionPadded { padding: 2px; }
.optionSelected { background-color: #ffffcc; padding: 2px; border: 1px solid #ddd; margin: -1px; }
.optionSelected a { font-weight: bold; text-decoration: none; color: black; }

/* information macros */
.noteMacro { border-style: solid; border-width: 1px; border-color: #F0C000; background-color: #FFFFCE; text-align:left; margin-top: 5px; margin-bottom: 5px}
.warningMacro { border-style: solid; border-width: 1px; border-color: #c00; background-color: #fcc; text-align:left; margin-top: 5px; margin-bottom: 5px}
.infoMacro { border-style: solid; border-width: 1px; border-color: #3c78b5; background-color: #D8E4F1; text-align:left; margin-top: 5px; margin-bottom: 5px}
.tipMacro { border-style: solid; border-width: 1px; border-color: #090; background-color: #dfd; text-align:left; margin-top: 5px; margin-bottom: 5px}
.informationMacroPadding { padding: 5px 0 0 5px; }

table.infoMacro td, table.warningMacro td, table.tipMacro td, table.noteMacro td, table.sectionMacro td {
    border: none;
}

table.sectionMacroWithBorder td.columnMacro { border-style: dashed; border-width: 1px; border-color: #cccccc;}

.pagecontent
{
    padding: 10px;
    text-align: left;
}

/* styles for links in the top bar */
.topBarDiv a:link {color: #ffffff;}
.topBarDiv a:visited {color: #ffffff;}
.topBarDiv a:active {color: #ffffff;}
.topBarDiv a:hover {color: #ffffff;}
.topBarDiv {color: #ffffff;}

.topBar {
    background-color: #003366;
}


/* styles for extended operations */
.greyLinks a:link {color: #666666; text-decoration:underline;}
.greyLinks a:visited {color: #666666; text-decoration:underline;}
.greyLinks a:active {color: #666666; text-decoration:underline;}
.greyLinks a:hover {color: #666666; text-decoration:underline;}
.greyLinks {color: #666666; display:block; padding: 10px}

.logoSpaceLink {color: #999999; text-decoration: none}
.logoSpaceLink a:link {color: #999999; text-decoration: none}
.logoSpaceLink a:visited {color: #999999; text-decoration: none}
.logoSpaceLink a:active {color: #999999; text-decoration: none}
.logoSpaceLink a:hover {color: #003366; text-decoration: none}

/* basic panel (basicpanel.vmd) style */
.basicPanelContainer {border: 1px solid #3c78b5; margin-top: 2px; margin-bottom: 8px; width: 100%}
.basicPanelTitle {padding: 5px; margin: 0px; background-color: #f0f0f0; color: black; font-weight: bold;}
.basicPanelBody {padding: 5px; margin: 0px}

.separatorLinks a:link {color: white}
.separatorLinks a:visited {color: white}
.separatorLinks a:active {color: white}

.greynavbar {background-color: #f0f0f0; border-top: 1px solid #3c78b5; margin-top: 2px}

div.headerField {
    float: left;
    width: auto;
    height: 100%;
}

.headerFloat {
    margin-left: auto;
    width: 50%;
}

.headerFloatLeft {
    float: left;
    margin-right: 20px;
    margin-bottom: 10px;
}

#headerRow {
    padding: 10px;
}

div.license-personal {
   background-color: #003366;
   color: #ffffff;
}

div.license-personal a {
   color: #ffffff;
}

.greyFormBox {
    border: 1px solid #cccccc;
    padding: 5px;
}

/* IE automatically adds a margin before and after form tags. Use this style to remove that */
.marginlessForm {
    margin: 0px;
}

.openPageHighlight {
    background-color: #ffffcc;
    padding: 2px;
    border: 1px solid #ddd;
}

.editPageInsertLinks, .editPageInsertLinks a
{
    color: #666666;
    font-weight: bold;
    font-size: 10px;
}

/* Style for label heatmap. */
.top10 a {
    font-weight: bold;
    font-size: 2em;
    color: #003366;
}
.top25 a {
    font-weight: bold;
    font-size: 1.6em;
    color: #003366;
}
.top50 a {
    font-size: 1.4em;
    color: #003366;
}
.top100 a {
    font-size: 1.2em;
    color: #003366;
}

.heatmap {
    list-style:none;
    width: 95%;
    margin: 0px auto;
}

.heatmap a {
    text-decoration:none;
}

.heatmap a:hover {
    text-decoration:underline;
}

.heatmap li {
    display: inline;
}

.minitab {
padding: 3px 0px 3px 8px;
margin-left: 0;
margin-top: 1px;
margin-bottom: 0px;
border-bottom: 1px solid #3c78b5;
font: bold 9px Verdana, sans-serif;
text-decoration: none;
float:none;
}
.selectedminitab {
padding: 3px 0.5em;
margin-left: 3px;
margin-top: 1px;
border: 1px solid #3c78b5;
background: white;
border-bottom: 1px solid white;
color: #000000;
text-decoration: none;
}
.unselectedminitab {
padding: 3px 0.5em;
margin-left: 3px;
margin-top: 1px;
border: 1px solid #3c78b5;
border-bottom: none;
background: #3c78b5;
color: #ffffff;
text-decoration: none;
}

a.unselectedminitab:hover {
color: #ffffff;
background: #003366;
border-color: #003366;
}

a.unselectedminitab:link { color: white; }
a.unselectedminitab:visited { color: white; }

a.selectedminitab:link { color: black; }
a.selectedminitab:visited { color: black; }

.linkerror { background-color: #fcc;}

a.labelOperationLink:link {text-decoration: underline}
a.labelOperationLink:active {text-decoration: underline}
a.labelOperationLink:visited {text-decoration: underline}
a.labelOperationLink:hover {text-decoration: underline}

a.newLabel:link {background-color: #ddffdd}
a.newLabel:active {background-color: #ddffdd}
a.newLabel:visited {background-color: #ddffdd}
a.newLabel:hover {background-color: #ddffdd}

ul.square {list-style-type: square}

.inline-control-link {
    background: #ffc;
    font-size: 9px;
    color: #666;
    padding: 2px;
    text-transform: uppercase;
    text-decoration: none;
}


.inline-control-link a:link {text-decoration: none}
.inline-control-link a:active {text-decoration: none}
.inline-control-link a:visited {text-decoration: none}
.inline-control-link a:hover {text-decoration: none}

.inline-control-link {
    background: #ffc;
    font-size: 9px;
    color: #666;
    padding: 2px;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}

div.auto_complete {
    width: 350px;
    background: #fff;
}
div.auto_complete ul {
    border: 1px solid #888;
    margin: 0;
    padding: 0;
    width: 100%;
    list-style-type: none;
}
div.auto_complete ul li {
    margin: 0;
    padding: 3px;
}
div.auto_complete ul li.selected {
    background-color: #ffb;
}
div.auto_complete ul strong.highlight {
    color: #800;
    margin: 0;
    padding: 0;
}

/******* Edit Page Styles *******/
.toogleFormDiv{
    border:1px solid #A7A6AA;
    background-color:white;
    padding:5px;
    margin-top: 5px;
}

.toogleInfoDiv{
    border:1px solid #A7A6AA;
    background-color:white;
    display:none;
    padding:5px;
    margin-top: 10px;
}

.inputSection{
    margin-bottom:20px;
}

#editBox{
   border:1px solid lightgray;
   background-color:#F0F0F0;
}

/******* Left Navigation Theme Styles ********/
.leftnav li a {
    text-decoration:none;
    color:white;
    margin:0px;
    display:block;
    padding:2px;
    padding-left:5px;
    background-color: #3c78b5;
    border-top:1px solid #3c78b5;
}

.leftnav li a:active {color:white;}
.leftnav li a:visited {color:white;}
.leftnav li a:hover {background-color: #003366; color:white;}

/* Added by Shaun during i18n */
.replaced
{
    background-color: #33CC66;
}

.topPadding
{
    margin-top: 20px;
}

/* new form style */
.form-block {
    padding: 6px;
}
.form-error-block {
    padding: 6px;
    background: #fcc;
    border-top: #f0f0f0 1px solid;
    border-bottom: #f0f0f0 1px solid;
    margin-bottom: 6px;
    padding: 0 12px 0 12px;
}
.form-element-large {
    font-size: 16px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
}

.form-element-small {
    font-size: 12px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    color: #003366;
}

.form-header {
    background: lightyellow;
    border-top: #f0f0f0 1px solid;
    border-bottom: #f0f0f0 1px solid;
    margin-bottom: 6px;
    padding: 0 12px 0 12px;
}
.form-header p, .form-block p, .form-error-block p {
    line-height: normal;
    margin: 12px 0 12px 0;
}
.form-example {
    color: #888;
    font-size: 11px;
}
.form-divider {
    border-bottom: #ccc 1px solid;
    margin-bottom: 6px;
}
.form-buttons {
    margin-top: 6px;
    border-top: #ccc 1px solid;
    border-bottom: #ccc 1px solid;
    background: #f0f0f0;
    padding: 10px;
    text-align: center;
}
.form-buttons input {
    width: 100px;
}
.form-block .error {
    padding: 6px;
    margin-bottom: 6px;
}
    -->
    </style>
</head>
<body>

<div id="PageContent">
<table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%"><tr>
<td valign="top" class="pagebody">

    <div class="pageheader">
        <span class="pagetitle">
            Page Edited :
            <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21">GMOxDOC21</a> :
            <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/openejb-jar.xml">openejb-jar.xml</a>
        </span>
    </div>

     <p>
        <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/openejb-jar.xml">openejb-jar.xml</a>
        has been edited by             <a href="http://cwiki.apache.org/confluence/display/~mcconne">Tim McConnell</a>
            <span class="smallfont">(Jun 06, 2008)</span>.
     </p>
    
     <p>
                 <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=76661&originalVersion=27&revisedVersion=28">(View changes)</a>
     </p>

    <span class="label">Content:</span><br/>
    <div class="greybox wiki-content"><style type='text/css'>/*<![CDATA[*/
table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}

/*]]>*/</style><div class="Scrollbar"><table class='ScrollbarTable'><tr><td class='ScrollbarPrevIcon'><a href="/confluence/display/GMOxDOC21/Java+Persistence+API+deployment+plans"><img border='0' align='middle' src='/confluence/images/icons/back_16.gif' width='16' height='16'></a></td><td width='33%' class='ScrollbarPrevName'><a href="/confluence/display/GMOxDOC21/Java+Persistence+API+deployment+plans">Java Persistence API deployment plans</a>&nbsp;</td><td width='33%' class='ScrollbarParent'><sup><a href="/confluence/display/GMOxDOC21/Deployment+plans"><img border='0' align='middle' src='/confluence/images/icons/up_16.gif' width='8' height='8'></a></sup><a href="/confluence/display/GMOxDOC21/Deployment+plans">Deployment plans</a></td><td width='33%' class='ScrollbarNextName'>&nbsp;</td></tr></table></div>
<div>
<ul>
  <li><a href='#openejb-jar.xml-Overview'>Overview</a>
<ul>
  <li><a href='#openejb-jar.xml-Packaging'>Packaging</a></li>
</ul></li>
  <li><a href='#openejb-jar.xml-Schema'>Schema</a>
<ul>
  <li><a href='#openejb-jar.xml-Schematoplevelelements'>Schema top-level elements</a>
<ul>
  <li><a href='#openejb-jar.xml-%3Csys%3Aenvironment%3E'>&lt;sys:environment&gt;</a></li>
  <li><a href='#openejb-jar.xml-CMPEntityBeansXMLElements%3A'>CMP Entity Beans XML Elements:</a>
<ul>
  <li><a href='#openejb-jar.xml-1.%3Cnaming%3Acmpconnectionfactory%3E'>1. &lt;naming:cmp-connection-factory&gt;</a></li>
  <li><a href='#openejb-jar.xml-2.%3Cejbqlcompilerfactory%3E'>2. &lt;ejb-ql-compiler-factory&gt;</a></li>
</ul></li>
  <li><a href='#openejb-jar.xml-Entity%2CSession%2CMessagedrivenEJBXMLElements%3A'>Entity, Session, Message-driven EJB XML Elements:</a></li>
  <li><a href='#openejb-jar.xml-%3Csec%3Asecurity%3E'>&lt;sec:security&gt; </a></li>
  <li><a href='#openejb-jar.xml-%3Csys%3Aservice%3E'>&lt;sys:service&gt;</a></li>
</ul></li>
</ul></li>
  <li><a href='#openejb-jar.xml-Samples'>Samples</a></li>
</ul></div>
<h1><a name="openejb-jar.xml-Overview"></a>Overview</h1>

<p>Geronimo uses the OpenEJB container for providing EJB services. With the advent of JAVA EE, the EJB container services such as transaction management, security, life cycle management can be declared in the EJB class itself using annotations. However, the EJB deployment descriptor can still be provided via usage of the <b>ejb-jar.xml</b> file. When both annotations and the <b>ejb-jar.xml</b> file are provided, the <b>ejb-jar.xml</b> file takes precedence over the annotations.</p>

<p>The Geronimo-specific deployment plan for an EJB application, which is usually packaged as an EJB JAR file, is called "<b>openejb-jar.xml</b>". The <b>openejb-jar.xml</b> deployment plan is used to in conjunction with the <b>ejb-jar.xml</b> JAVA EE deplopyment plan to deploy enterprise applications to the Geronimo application server. The <b>openejb-jar.xml</b> deployment plan is an optional file, but is typically used when deploying a EJB JAR file. It is used to map roles and resource (e.g., security roles, EJB names, database resources, JMS resources, etc.) declared in the <b>openejb-jar.xml</b> deployment plan to corresponding entities deployed in the server. Also, if there are any EJB container specific configurations required those setting are configured in this deployment plan as well. If the EJB module depends on any third party libraries or other services running in the server, all these third party libraries and the services are specified in the <b>openejb-jar.xml</b> file. Some EJB applications require class loading requirements different from the default class loading behavior. The <b>openejb-jar.xml</b> file allows the application deployer to configure this as well. There are many more configurations that could be done through <tt>openejb-jar.xml</tt> file depending on the requirements of the EJB application.</p>

<h2><a name="openejb-jar.xml-Packaging"></a>Packaging</h2>

<p>The <b>openejb-jar.xml</b> Geronimo-specific deployment plan can be packaged as follows:</p>
<ol>
	<li>Embedded in an EJB JAR file. In this case, the <b>openejb-jar.xml</b> file must be placed in the <b>/META-INF</b> directory of the JAR, which is the same place where the <b>ejb-jar.xml</b> file must be located.
<br clear="all" />
<br clear="all" /></li>
	<li>Maintained separately from the EJB JAR file. In this case, the path to the file must be provided to the appropriate Geronimo deployer (e.g., command-line or console) when the EJB JAR file is deployed. Note that in this case, the filename may be named something other than <b>openejb-jar.xml</b> but must adhere to the same schema. Also note that this will not work if the EJB JAR file is to be embedded in an enterprise application EAR file (see below).
<br clear="all" />
<br clear="all" /></li>
	<li>Embedded in an enterprise application EAR file: In one case, the high-level element <b>&lt;ejb-jar&gt;</b> can be embedded outside the EJB JAR file in the EAR file's <b>geronimo-application.xml</b> file
<br clear="all" />
<br clear="all" /></li>
	<li>Embedded in an enterprise application EAR file: In another case, the actual <b>openejb-jar.xml</b> file can be embedded outside the EJB JAR file and placed elsewhere in the EAR and referenced with an <b>alt-dd</b> element in the <b>geronimo-application.xml</b> deployment plan file.</li>
</ol>


<h1><a name="openejb-jar.xml-Schema"></a>Schema</h1>

<p>The <b>openejb-jar.xml</b> deployment plan is defined by the <b>openejb-jar-2.1.xsd</b> schema located in the <b>&lt;geronimo_home&gt;/schema/</b> subdirectory of the main Geronimo installation directory. The <b>openejb-jar-2.1.xsd</b> schema is shown here:</p>
<ul>
	<li><span class="nobr"><a href="http://www.openejb.org/xml/ns/openejb-jar-2.2" title="Visit page outside Confluence" rel="nofollow">http://www.openejb.org/xml/ns/openejb-jar-2.2<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></li>
</ul>


<h2><a name="openejb-jar.xml-Schematoplevelelements"></a>Schema top-level elements</h2>

<p>The root XML element in the <b>openejb-jar-2.2.xsd</b> schema is the <b>&lt;openejb-jar-2.2&gt;</b> element. The top-level XML elements of the <b>&lt;openejb-jar&gt;</b> root element are described in the sections below. The deployment plan should always use the OpenEJB namespace, and it typically requires elements from the Geronimo Naming, Geronimo Security, and Geronimo System namespaces. Additionally, it has a required attribute to identify its configuration name. A typical deployment for <b>openejb-jar.xml</b> can be presented as follows:</p>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>openejb-jar.xml Example</b></div><div class="codeContent">
<pre class="code-xml">&lt;openejb-jar
 	<span class="code-keyword">xmlns:openejb</span>=<span class="code-quote">"http://www.openejb.org/xml/ns/openejb-jar-2.2"</span>
 	targetNamespace=<span class="code-quote">"http://www.openejb.org/xml/ns/openejb-jar-2.2"</span>
 	<span class="code-keyword">xmlns:naming</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/naming-1.2"</span>
 	<span class="code-keyword">xmlns:security</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/security-2.0"</span>
 	<span class="code-keyword">xmlns:sys</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.2"</span>
 	<span class="code-keyword">xmlns:pkgen</span>=<span class="code-quote">"http://www.openejb.org/xml/ns/pkgen-2.1"</span>
 	version=<span class="code-quote">"1.0"</span>&gt;
 	...
 <span class="code-tag">&lt;/openejb-jar&gt;</span></pre>
</div></div>

<h3><a name="openejb-jar.xml-%3Csys%3Aenvironment%3E"></a>&lt;sys:environment&gt;</h3>
<p>The <b>&lt;sys:environment&gt;</b> XML element uses the Geronimo System namespace, which is used to specify the common elements for common libraries and module-scoped services, which is documented here:</p>

<ul>
	<li><span class="nobr"><a href="http://geronimo.apache.org/schemas-2.1/docs/geronimo-module-1.2.xsd.html" title="Visit page outside Confluence" rel="nofollow">http://geronimo.apache.org/schemas-2.1/docs/geronimo-module-1.2.xsd.html<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></li>
</ul>


<p>The <b>&lt;sys:environment&gt;</b> element contains the following elements:</p>

<ul>
	<li>The <b>&lt;moduleId&gt;</b> element is used to provide the configuration name for the EJB application as deployed in the Geronimo server. It contains elements for the <b>groupId</b>, <b>artifactId</b>, <b>version</b> and module <b>type</b>. Module IDs are normally printed with slashes between the four components, such as <b>GroupID/ArtifactID/Version/Type</b>.
<br clear="all" /> 
<br clear="all" /></li>
	<li>The <b>&lt;dependencies&gt;</b> element is used to provide the configurations and third party libraries on which the EJB module is dependent upon. These configurations and libraries are made available to the EJB module via the Geronimo classloader hierarchy.
<br clear="all" /> 
<br clear="all" /></li>
	<li>The <b>&lt;hidden-classes&gt;</b> element can be used to provide some degree of control of the Geronimo classloader hierarchy, and mitigate clashes between classes loaded by the server and classes loaded by the EJB module. It is used to lists packages or classes that may be in a parent classloader, but must not be exposed to the web application. Since Geronimo is entirely open-source and utilizes many other open-source libraries it is possible that the server itself and the web application may have different requirements and/or priorities for the same open source project libraries. The <b>&lt;hidden-classes&gt;</b> element is typically used when the EJB application has requirements for a specific version of a library that is different than the version used by Geronimo itself. A simple example of this is when an EJB module uses, and most importantly includes,  a version of the <b>Log4J</b> common logging library that is different than the version used by the Geronimo server itself. This might not provide the desired results.  Thus, the <b>&lt;hidden-classes&gt;</b> element can be used to "hide" the Log4J classes loaded by all the parent classloaders of the EJB module, including those loaded by and for the Geronimo server itself, and only the Log4J classes included with the EJB module library will get loaded.
<br clear="all" /> 
<br clear="all" /></li>
	<li>The <b>&lt;non-overridable-classes&gt;</b> element can also be used to provide some degree of control of the Geronimo classloader hierarchy, but in the exact opposite manner than provided by the <b>&lt;hidden-classes&gt;</b> element. This element can be used to specify a list of classes or packages which will <b>only</b> be loaded from the parent classloader of the EJB module to ensure that the Geronimo server's version of a libary is used instead of the version included with the web application.
<br clear="all" /> 
<br clear="all" /></li>
	<li>The <b>&lt;inverse-classloading&gt;</b> element can be used to specify that standard classloader delegation is to be reversed for this module. The Geronimo classloader delegation follows the Java EE 5 specifications, and the normal behavior is to load classes from a parent classloader (if available) before checking the current classloader. When the <b>&lt;inverse-classloading&gt;</b> element is used, this behavior is reversed and the current classloader will always be checked before looking in the parent classloader(s). This element is similar to the <b>&lt;hidden-classes&gt;</b> element since the desired behavior is to give the libraries packaged with the EJB JAR application (i.e., in META-INF/lib) precedence over anything used by the Geroimo server itself.
<br clear="all" /> 
<br clear="all" /></li>
	<li>The <b>&lt;suppress-default-environment&gt;</b> element can be used to suppress inheritance of environment by module (i.e., any default environment built by a Geronimo builder when deploying the plan will be suppressed). If the <b>&lt;suppress-default-environment&gt;</b> element is specified then any default environment build by a builder when deploying the plan will be suppressed. An example of where this is useful is when deploying a connector on an app client in a separate (standalone) module (not as part of a client plan). The connector builder defaultEnvironment includes some server modules that won't work on an app client, so you need to suppress the default environment and supply a complete environment including all parents for a non-app-client module you want to run on an app client. This element should not be used for EJB applications however.</li>
</ul>


<p>An example <b>openejb-jar.xml</b> file is shown below using the <b>&lt;sys:environment&gt;</b> element:</p>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>&lt;sys:environment&gt; Example</b></div><div class="codeContent">
<pre class="code-xml">&lt;openejb-jar xmlns=<span class="code-quote">"http://openejb.apache.org/xml/ns/openejb-jar-2.2"</span>
             <span class="code-keyword">xmlns:sys</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.2"</span>&gt;

    <span class="code-tag">&lt;sys:environment&gt;</span>
        <span class="code-tag">&lt;sys:moduleId&gt;</span>
            <span class="code-tag">&lt;sys:groupId&gt;</span>default<span class="code-tag">&lt;/sys:groupId&gt;</span>
            <span class="code-tag">&lt;sys:artifactId&gt;</span>openejb-jar-1<span class="code-tag">&lt;/sys:artifactId&gt;</span>
            <span class="code-tag">&lt;sys:version&gt;</span>2.0<span class="code-tag">&lt;/sys:version&gt;</span>
            <span class="code-tag">&lt;sys:type&gt;</span>ear<span class="code-tag">&lt;/sys:type&gt;</span>
        <span class="code-tag">&lt;/sys:moduleId&gt;</span>

        <span class="code-tag">&lt;sys:dependencies&gt;</span>
            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>org.apache.geronimo.testsuite<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>agent-ds<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>2.2-SNAPSHOT<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>car<span class="code-tag">&lt;/sys:type&gt;</span>
            <span class="code-tag">&lt;/sys:dependency&gt;</span>

            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>org.apache.geronimo.configs<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>tomcat6<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>2.2-SNAPSHOT<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>car<span class="code-tag">&lt;/sys:type&gt;</span>
            <span class="code-tag">&lt;/sys:dependency&gt;</span>
        <span class="code-tag">&lt;/sys:dependencies&gt;</span>
    <span class="code-tag">&lt;/sys:environment&gt;</span>

<span class="code-tag">&lt;/openejb-jar&gt;</span></pre>
</div></div>
<p><br clear="all" />
<br clear="all" /></p>
<h3><a name="openejb-jar.xml-CMPEntityBeansXMLElements%3A"></a>CMP Entity Beans XML Elements:</h3>

<h4><a name="openejb-jar.xml-1.%3Cnaming%3Acmpconnectionfactory%3E"></a>1. &lt;naming:cmp-connection-factory&gt;</h4>
<p>The <b>&lt;naming:cmp-connection-factory&gt;</b> XML element uses the Geronimo Naming namespace, which is used to identify the common elements for resolving EJB references, resource references, and Web services references, which is documented here:</p>

<ul>
	<li><span class="nobr"><a href="http://geronimo.apache.org/schemas-2.1/docs/geronimo-naming-1.2.xsd.html" title="Visit page outside Confluence" rel="nofollow">http://geronimo.apache.org/schemas-2.1/docs/geronimo-naming-1.2.xsd.html<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></li>
</ul>


<p>The <b>&lt;naming:cmp-connection-factory&gt;</b> element is used to specify a JDBC connection pool that should be used by Container Managed Persistence (CMP) entity beans to connect to a database. Since the <b>&lt;naming:cmp-connection-factory&gt;</b> element points to a database pool using the same syntax a resource reference uses, there are multiple methods available to refer to the connection pool. It can be specified by a simple name using the <b>&lt;resource-link&gt;</b> element, by pattern using the <b>&lt;pattern&gt;</b> element, or finally by URL using the <b>&lt;url&gt;</b> element. The resource-link handles most common resource situations where the JDBC pools are deployed as J2EE connectors in the same application, or deployed standalone in the same server. But pattern or URL can be use for any. An example <b>openejb-jar.xml</b> using all three techniques is shown:</p>

<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>&lt;naming:cmp-connection-factory&gt; Example</b></div><div class="codeContent">
<pre class="code-xml">&lt;openejb-jar xmlns=<span class="code-quote">"http://openejb.apache.org/xml/ns/openejb-jar-2.2"</span>
             <span class="code-keyword">xmlns:sys</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.2"</span>
             <span class="code-keyword">xmlns:naming</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/naming-1.2"</span>&gt;

    <span class="code-tag">&lt;sys:environment&gt;</span>
        <span class="code-tag">&lt;sys:moduleId&gt;</span>
            <span class="code-tag">&lt;sys:groupId&gt;</span>default<span class="code-tag">&lt;/sys:groupId&gt;</span>
            <span class="code-tag">&lt;sys:artifactId&gt;</span>openejb-jar-1<span class="code-tag">&lt;/sys:artifactId&gt;</span>
            <span class="code-tag">&lt;sys:version&gt;</span>2.0<span class="code-tag">&lt;/sys:version&gt;</span>
            <span class="code-tag">&lt;sys:type&gt;</span>ear<span class="code-tag">&lt;/sys:type&gt;</span>
        <span class="code-tag">&lt;/sys:moduleId&gt;</span>

        <span class="code-tag">&lt;sys:dependencies&gt;</span>
            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>org.apache.geronimo.testsuite<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>agent-ds<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>2.2-SNAPSHOT<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>car<span class="code-tag">&lt;/sys:type&gt;</span>
            <span class="code-tag">&lt;/sys:dependency&gt;</span>

            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>org.apache.geronimo.configs<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>tomcat6<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>2.2-SNAPSHOT<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>car<span class="code-tag">&lt;/sys:type&gt;</span>
            <span class="code-tag">&lt;/sys:dependency&gt;</span>
        <span class="code-tag">&lt;/sys:dependencies&gt;</span>
    <span class="code-tag">&lt;/sys:environment&gt;</span>

    <span class="code-tag"><span class="code-comment">&lt;!-- Begin configuration for Container Managed Persistence (CMP) --&gt;</span></span>

    <span class="code-tag">&lt;naming:cmp-connection-factory&gt;</span>

        <span class="code-tag">&lt;naming:pattern&gt;</span>
            <span class="code-tag">&lt;naming:groupId&gt;</span>resourcelocator-pattern-groupid<span class="code-tag">&lt;/naming:groupId&gt;</span>
            <span class="code-tag">&lt;naming:artifactId&gt;</span>resourcelocator-pattern-artifactid<span class="code-tag">&lt;/naming:artifactId&gt;</span>
            <span class="code-tag">&lt;naming:version&gt;</span>resourcelocator-pattern-version<span class="code-tag">&lt;/naming:version&gt;</span>
            <span class="code-tag">&lt;naming:module&gt;</span>resourcelocator-pattern-module<span class="code-tag">&lt;/naming:module&gt;</span>
            <span class="code-tag">&lt;naming:name&gt;</span>resourcelocator-pattern-name<span class="code-tag">&lt;/naming:name&gt;</span>
        <span class="code-tag">&lt;/naming:pattern&gt;</span>

        <span class="code-tag">&lt;naming:resource-link&gt;</span>resourcelocator-resourcelink<span class="code-tag">&lt;/naming:resource-link&gt;</span>

        <span class="code-tag">&lt;naming:url&gt;</span>resourcelocator-url<span class="code-tag">&lt;/naming:url&gt;</span>

    <span class="code-tag">&lt;/naming:cmp-connection-factory&gt;</span>

    <span class="code-tag"><span class="code-comment">&lt;!-- End configuration for Container Managed Persistence (CMP) --&gt;</span></span>

<span class="code-tag">&lt;/openejb-jar&gt;</span></pre>
</div></div>
<p><br clear="all" /></p>
<h4><a name="openejb-jar.xml-2.%3Cejbqlcompilerfactory%3E"></a>2. &lt;ejb-ql-compiler-factory&gt;</h4>
<p>The <b>&lt;ejb-ql-compiler-factory&gt;</b> XML element uses the OpenEJB default namespace for a openejb-jar.xml file, which is documented here:</p>

<ul>
	<li><span class="nobr"><a href="http://www.openejb.org/xml/ns/openejb-jar-2.2.xsd.html" title="Visit page outside Confluence" rel="nofollow">http://www.openejb.org/xml/ns/openejb-jar-2.2.xsd.html<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></li>
</ul>


<p>The <b>&lt;ejb-ql-compiler-factory&gt;</b> element is used to specify the name of a Java class that can compile EJB-QL (Query Language) queries into SQL statements for a particular database product. This must be the fully-qualified class name of a class that implements <b>org.tranql.sql.EJBQLCompilerFactory</b>. The default is for the Derby database, which ships with Geronimo, although it may work for other database products as well. An example <b>openejb-jar.xml</b> using the <b>&lt;ejb-ql-compiler-factory&gt;</b> XML element is shown:</p>

<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>&lt;ejb-ql-compiler-factory&gt; Example</b></div><div class="codeContent">
<pre class="code-xml">&lt;openejb-jar xmlns=<span class="code-quote">"http://openejb.apache.org/xml/ns/openejb-jar-2.2"</span>
             <span class="code-keyword">xmlns:sys</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.2"</span>
             <span class="code-keyword">xmlns:naming</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/naming-1.2"</span>&gt;

    <span class="code-tag">&lt;sys:environment&gt;</span>
        <span class="code-tag">&lt;sys:moduleId&gt;</span>
            <span class="code-tag">&lt;sys:groupId&gt;</span>default<span class="code-tag">&lt;/sys:groupId&gt;</span>
            <span class="code-tag">&lt;sys:artifactId&gt;</span>openejb-jar-1<span class="code-tag">&lt;/sys:artifactId&gt;</span>
            <span class="code-tag">&lt;sys:version&gt;</span>2.0<span class="code-tag">&lt;/sys:version&gt;</span>
            <span class="code-tag">&lt;sys:type&gt;</span>ear<span class="code-tag">&lt;/sys:type&gt;</span>
        <span class="code-tag">&lt;/sys:moduleId&gt;</span>

        <span class="code-tag">&lt;sys:dependencies&gt;</span>
            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>org.apache.geronimo.testsuite<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>agent-ds<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>2.2-SNAPSHOT<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>car<span class="code-tag">&lt;/sys:type&gt;</span>
            <span class="code-tag">&lt;/sys:dependency&gt;</span>

            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>org.apache.geronimo.configs<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>tomcat6<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>2.2-SNAPSHOT<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>car<span class="code-tag">&lt;/sys:type&gt;</span>
            <span class="code-tag">&lt;/sys:dependency&gt;</span>
        <span class="code-tag">&lt;/sys:dependencies&gt;</span>
    <span class="code-tag">&lt;/sys:environment&gt;</span>

    <span class="code-tag"><span class="code-comment">&lt;!-- Begin configuration for Container Managed Persistence (CMP) --&gt;</span></span>

    <span class="code-tag">&lt;naming:cmp-connection-factory&gt;</span>
        <span class="code-tag">&lt;naming:pattern&gt;</span>
            <span class="code-tag">&lt;naming:groupId&gt;</span>resourcelocator-pattern-groupid<span class="code-tag">&lt;/naming:groupId&gt;</span>
            <span class="code-tag">&lt;naming:artifactId&gt;</span>resourcelocator-pattern-artifactid<span class="code-tag">&lt;/naming:artifactId&gt;</span>
            <span class="code-tag">&lt;naming:version&gt;</span>resourcelocator-pattern-version<span class="code-tag">&lt;/naming:version&gt;</span>
            <span class="code-tag">&lt;naming:module&gt;</span>resourcelocator-pattern-module<span class="code-tag">&lt;/naming:module&gt;</span>
            <span class="code-tag">&lt;naming:name&gt;</span>resourcelocator-pattern-name<span class="code-tag">&lt;/naming:name&gt;</span>
        <span class="code-tag">&lt;/naming:pattern&gt;</span>
        <span class="code-tag">&lt;naming:resource-link&gt;</span>resourcelocator-resourcelink<span class="code-tag">&lt;/naming:resource-link&gt;</span>
        <span class="code-tag">&lt;naming:url&gt;</span>resourcelocator-url<span class="code-tag">&lt;/naming:url&gt;</span>
    <span class="code-tag">&lt;/naming:cmp-connection-factory&gt;</span>

    <span class="code-tag">&lt;ejb-ql-compiler-factory&gt;</span>ejbqlcompilerfactory<span class="code-tag">&lt;/ejb-ql-compiler-factory&gt;</span>

    <span class="code-tag"><span class="code-comment">&lt;!-- End configuration for Container Managed Persistence (CMP) --&gt;</span></span>

<span class="code-tag">&lt;/openejb-jar&gt;</span></pre>
</div></div>
<p><br clear="all" /></p>
<ul>
	<li><b>&lt;db-syntax-factory&gt;</b>
<br clear="all" />
<br clear="all" />
The <b>&lt;db-syntax-factory&gt;</b> XML element uses the OpenEJB default namespace for a openejb-jar.xml file that is described at <span class="nobr"><a href="http://www.openejb.org/xml/ns/openejb-jar-2.2" title="Visit page outside Confluence" rel="nofollow">http://www.openejb.org/xml/ns/openejb-jar-2.2<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. It is used to specify the name of a Java class that can customize CMP SQL statements for a particular database product. This must be the fully-qualified class name of a class that implements <b>org.tranql.sql.DBSyntaxFactory</b>. The default is for the Derby database, which ships with Geronimo, although it may work for other database products as well. An example <b>openejb-jar.xml</b> using the <b>&lt;db-syntax-factory&gt;</b> XML element is shown:</li>
</ul>


<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>&lt;db-syntax-factory&gt; Example</b></div><div class="codeContent">
<pre class="code-xml">&lt;openejb-jar xmlns=<span class="code-quote">"http://openejb.apache.org/xml/ns/openejb-jar-2.2"</span>
             <span class="code-keyword">xmlns:sys</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.2"</span>
             <span class="code-keyword">xmlns:naming</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/naming-1.2"</span>&gt;

    <span class="code-tag">&lt;sys:environment&gt;</span>
        <span class="code-tag">&lt;sys:moduleId&gt;</span>
            <span class="code-tag">&lt;sys:groupId&gt;</span>default<span class="code-tag">&lt;/sys:groupId&gt;</span>
            <span class="code-tag">&lt;sys:artifactId&gt;</span>openejb-jar-1<span class="code-tag">&lt;/sys:artifactId&gt;</span>
            <span class="code-tag">&lt;sys:version&gt;</span>2.0<span class="code-tag">&lt;/sys:version&gt;</span>
            <span class="code-tag">&lt;sys:type&gt;</span>ear<span class="code-tag">&lt;/sys:type&gt;</span>
        <span class="code-tag">&lt;/sys:moduleId&gt;</span>

        <span class="code-tag">&lt;sys:dependencies&gt;</span>
            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>org.apache.geronimo.testsuite<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>agent-ds<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>2.2-SNAPSHOT<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>car<span class="code-tag">&lt;/sys:type&gt;</span>
            <span class="code-tag">&lt;/sys:dependency&gt;</span>

            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>org.apache.geronimo.configs<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>tomcat6<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>2.2-SNAPSHOT<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>car<span class="code-tag">&lt;/sys:type&gt;</span>
            <span class="code-tag">&lt;/sys:dependency&gt;</span>
        <span class="code-tag">&lt;/sys:dependencies&gt;</span>
    <span class="code-tag">&lt;/sys:environment&gt;</span>

    <span class="code-tag"><span class="code-comment">&lt;!-- Begin configuration for Container Managed Persistence (CMP) --&gt;</span></span>

    <span class="code-tag">&lt;naming:cmp-connection-factory&gt;</span>
        <span class="code-tag">&lt;naming:pattern&gt;</span>
            <span class="code-tag">&lt;naming:groupId&gt;</span>resourcelocator-pattern-groupid<span class="code-tag">&lt;/naming:groupId&gt;</span>
            <span class="code-tag">&lt;naming:artifactId&gt;</span>resourcelocator-pattern-artifactid<span class="code-tag">&lt;/naming:artifactId&gt;</span>
            <span class="code-tag">&lt;naming:version&gt;</span>resourcelocator-pattern-version<span class="code-tag">&lt;/naming:version&gt;</span>
            <span class="code-tag">&lt;naming:module&gt;</span>resourcelocator-pattern-module<span class="code-tag">&lt;/naming:module&gt;</span>
            <span class="code-tag">&lt;naming:name&gt;</span>resourcelocator-pattern-name<span class="code-tag">&lt;/naming:name&gt;</span>
        <span class="code-tag">&lt;/naming:pattern&gt;</span>

        <span class="code-tag">&lt;naming:resource-link&gt;</span>resourcelocator-resourcelink<span class="code-tag">&lt;/naming:resource-link&gt;</span>

        <span class="code-tag">&lt;naming:url&gt;</span>resourcelocator-url<span class="code-tag">&lt;/naming:url&gt;</span>
    <span class="code-tag">&lt;/naming:cmp-connection-factory&gt;</span>

    <span class="code-tag">&lt;ejb-ql-compiler-factory&gt;</span>ejbQlCompilerFactory<span class="code-tag">&lt;/ejb-ql-compiler-factory&gt;</span>

    <span class="code-tag">&lt;db-syntax-factory&gt;</span>dbSyntaxFactory<span class="code-tag">&lt;/db-syntax-factory&gt;</span>

    <span class="code-tag"><span class="code-comment">&lt;!-- End configuration for Container Managed Persistence (CMP) --&gt;</span></span>

<span class="code-tag">&lt;/openejb-jar&gt;</span></pre>
</div></div>
<p><br clear="all" /></p>
<ul>
	<li><b>&lt;enforce-foreign-key-constraints&gt;</b>
<br clear="all" />
<br clear="all" />
The <b>&lt;enforce-foreign-key-constraints&gt;</b> XML element uses the OpenEJB default namespace for a openejb-jar.xml file that is described at <span class="nobr"><a href="http://www.openejb.org/xml/ns/openejb-jar-2.2" title="Visit page outside Confluence" rel="nofollow">http://www.openejb.org/xml/ns/openejb-jar-2.2<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. This is effectively a true/false element &#8211; if it's present that means true, and if it's not present, that means false. If true, then Geronimo will make a special effort to execute insert, update, and delete statements in an order consistent with the foreign keys between tables. If false, then Geronimo will execute statements in any order, though still within the same transaction. This element should be present if the underlying database enforces foreign keys at the moment a statement is executed instead of at the end of the transaction. An example <b>openejb-jar.xml</b> setting the <b>&lt;db-syntax-factory&gt;</b> XML element to "true" is shown:</li>
</ul>


<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>&lt;enforce-foreign-key-constraints&gt; Example</b></div><div class="codeContent">
<pre class="code-xml">&lt;openejb-jar xmlns=<span class="code-quote">"http://openejb.apache.org/xml/ns/openejb-jar-2.2"</span>
             <span class="code-keyword">xmlns:sys</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.2"</span>
             <span class="code-keyword">xmlns:naming</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/naming-1.2"</span>&gt;

    <span class="code-tag">&lt;sys:environment&gt;</span>
        <span class="code-tag">&lt;sys:moduleId&gt;</span>
            <span class="code-tag">&lt;sys:groupId&gt;</span>default<span class="code-tag">&lt;/sys:groupId&gt;</span>
            <span class="code-tag">&lt;sys:artifactId&gt;</span>openejb-jar-1<span class="code-tag">&lt;/sys:artifactId&gt;</span>
            <span class="code-tag">&lt;sys:version&gt;</span>2.0<span class="code-tag">&lt;/sys:version&gt;</span>
            <span class="code-tag">&lt;sys:type&gt;</span>ear<span class="code-tag">&lt;/sys:type&gt;</span>
        <span class="code-tag">&lt;/sys:moduleId&gt;</span>

        <span class="code-tag">&lt;sys:dependencies&gt;</span>
            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>org.apache.geronimo.testsuite<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>agent-ds<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>2.2-SNAPSHOT<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>car<span class="code-tag">&lt;/sys:type&gt;</span>
            <span class="code-tag">&lt;/sys:dependency&gt;</span>

            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>org.apache.geronimo.configs<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>tomcat6<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>2.2-SNAPSHOT<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>car<span class="code-tag">&lt;/sys:type&gt;</span>
            <span class="code-tag">&lt;/sys:dependency&gt;</span>
        <span class="code-tag">&lt;/sys:dependencies&gt;</span>
    <span class="code-tag">&lt;/sys:environment&gt;</span>

    <span class="code-tag"><span class="code-comment">&lt;!-- Begin configuration for Container Managed Persistence (CMP) --&gt;</span></span>

    <span class="code-tag">&lt;naming:cmp-connection-factory&gt;</span>
        <span class="code-tag">&lt;naming:pattern&gt;</span>
            <span class="code-tag">&lt;naming:groupId&gt;</span>resourcelocator-pattern-groupid<span class="code-tag">&lt;/naming:groupId&gt;</span>
            <span class="code-tag">&lt;naming:artifactId&gt;</span>resourcelocator-pattern-artifactid<span class="code-tag">&lt;/naming:artifactId&gt;</span>
            <span class="code-tag">&lt;naming:version&gt;</span>resourcelocator-pattern-version<span class="code-tag">&lt;/naming:version&gt;</span>
            <span class="code-tag">&lt;naming:module&gt;</span>resourcelocator-pattern-module<span class="code-tag">&lt;/naming:module&gt;</span>
            <span class="code-tag">&lt;naming:name&gt;</span>resourcelocator-pattern-name<span class="code-tag">&lt;/naming:name&gt;</span>
        <span class="code-tag">&lt;/naming:pattern&gt;</span>

        <span class="code-tag">&lt;naming:resource-link&gt;</span>resourcelocator-resourcelink<span class="code-tag">&lt;/naming:resource-link&gt;</span>

        <span class="code-tag">&lt;naming:url&gt;</span>resourcelocator-url<span class="code-tag">&lt;/naming:url&gt;</span>
    <span class="code-tag">&lt;/naming:cmp-connection-factory&gt;</span>

    <span class="code-tag">&lt;ejb-ql-compiler-factory&gt;</span>ejbQlCompilerFactory<span class="code-tag">&lt;/ejb-ql-compiler-factory&gt;</span>

    <span class="code-tag">&lt;db-syntax-factory&gt;</span>dbSyntaxFactory<span class="code-tag">&lt;/db-syntax-factory&gt;</span>

    <span class="code-tag">&lt;enforce-foreign-key-constraints/&gt;</span>

    <span class="code-tag"><span class="code-comment">&lt;!-- End configuration for Container Managed Persistence (CMP) --&gt;</span></span>

<span class="code-tag">&lt;/openejb-jar&gt;</span></pre>
</div></div>
<p><br clear="all" />
<br clear="all" /></p>
<h3><a name="openejb-jar.xml-Entity%2CSession%2CMessagedrivenEJBXMLElements%3A"></a>Entity, Session, Message-driven EJB XML Elements:</h3>
<p><br clear="all" /></p>
<ul>
	<li><b>&lt;enterprise-beans&gt;</b>
<br clear="all" />
<br clear="all" />
The <b>&lt;enterprise-beans&gt;</b> XML element uses the OpenEJB default namespace for a openejb-jar.xml file that is described at <span class="nobr"><a href="http://www.openejb.org/xml/ns/openejb-jar-2.2" title="Visit page outside Confluence" rel="nofollow">http://www.openejb.org/xml/ns/openejb-jar-2.2<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. It is used to specify references by <b>&lt;entity&gt;</b>,  <b>&lt;session&gt;</b>, and <b>&lt;message-driven&gt;</b> EJB's. 
<br clear="all" />
<br clear="all" /></li>
	<li><b>&lt;relationships&gt;</b>
<br clear="all" />
<br clear="all" />
The <b>&lt;relationships&gt;</b> XML element uses the OpenEJB default namespace for a openejb-jar.xml file that is described at <span class="nobr"><a href="http://www.openejb.org/xml/ns/openejb-jar-2.2" title="Visit page outside Confluence" rel="nofollow">http://www.openejb.org/xml/ns/openejb-jar-2.2<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. Container-managed relationships are initially defined in the <b>ejb-jar.xml</b> deployment descriptor, but the mappings to specific database elements are defined in the <b>openejb-jar.xml</b> file using the <b>&lt;relationship&gt;</b> element. 
<br clear="all" />
<br clear="all" /></li>
	<li><b>&lt;naming:message-destination&gt;</b>
<br clear="all" />
<br clear="all" />
The <b>&lt;naming:message-destination&gt;</b> XML element uses the Geronimo Naming namespace, which is used to identify the common elements for resolving EJB references, resource references, and Web services references, and is described at <span class="nobr"><a href="http://geronimo.apache.org/schemas-2.1/docs/geronimo-naming-1.2.xsd.html" title="Visit page outside Confluence" rel="nofollow">http://geronimo.apache.org/schemas-2.1/docs/geronimo-naming-1.2.xsd.html<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. It is used to configure a JMS queue or topic which acts like a destination for the messages delivered.</li>
</ul>


<h3><a name="openejb-jar.xml-%3Csec%3Asecurity%3E"></a>&lt;sec:security&gt; </h3>
<p>The <b>&lt;sec:security&gt;</b> XML element uses the Geronimo Security namespace, and is documented here:</p>
<ul>
	<li><span class="nobr"><a href="http://geronimo.apache.org/schemas-2.1/docs/geronimo-security-2.0.xsd.html" title="Visit page outside Confluence" rel="nofollow">http://geronimo.apache.org/schemas-2.1/docs/geronimo-security-2.0.xsd.html<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>.</li>
</ul>


<p>The <b>&lt;sec:security&gt;</b> element groups the security role mapping settings for the EJB application. This is an optional element, but if it is present all the EJB modules must make the appropriate access checks as outlined in the JACC specification. This element includes the <b>&lt;role-mapping&gt;</b> section that references the role(s) defined in the <b>&lt;security-role&gt;</b> element in the <b>application.xml</b> file. </p>

<h3><a name="openejb-jar.xml-%3Csys%3Aservice%3E"></a>&lt;sys:service&gt;</h3>
<p>The <b>&lt;sys:service&gt;</b> XML element uses the Geronimo System namespace described at <br/>
<span class="nobr"><a href="http://geronimo.apache.org/schemas-2.1/docs/geronimo-module-1.2.xsd.html" title="Visit page outside Confluence" rel="nofollow">http://geronimo.apache.org/schemas-2.1/docs/geronimo-module-1.2.xsd.html<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>.</p>

<p>It is used to define GBean(s) that are configured and deployed with the EJB. These additional Geronimo services will be deployed when the application is deployed (and stopped when the application is stopped). Normally, the implementation classes for these services are included at the server level and referenced using a dependency element.</p>

<h1><a name="openejb-jar.xml-Samples"></a>Samples</h1>

<p>For example, the below XML content is the deployment descriptor (<tt>ejb-jar.xml</tt>) of a stateless session bean that connects to a back end DB2 database.</p>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>ejb-jar.xml</b></div><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span> ?&gt;</span>
&lt;ejb-jar xmlns=<span class="code-quote">"http://java.sun.com/xml/ns/javaee"</span> version=<span class="code-quote">"3.0"</span>
         <span class="code-keyword">xmlns:xsi</span>=<span class="code-quote">"http://www.w3.org/2001/XMLSchema-instance"</span>
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
         http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"&gt;

    <span class="code-tag">&lt;description&gt;</span>Stateless Session Bean Example<span class="code-tag">&lt;/description&gt;</span>
    <span class="code-tag">&lt;display-name&gt;</span>Stateless Session Bean Example<span class="code-tag">&lt;/display-name&gt;</span>

    <span class="code-tag">&lt;enterprise-beans&gt;</span>
        <span class="code-tag">&lt;session&gt;</span>
            <span class="code-tag">&lt;ejb-name&gt;</span>RetrieveEmployeeInfoBean<span class="code-tag">&lt;/ejb-name&gt;</span>
            <span class="code-tag">&lt;business-remote&gt;</span>examples.session.stateless_dd.RetrieveEmployeeInfo<span class="code-tag">&lt;/business-remote&gt;</span>
            <span class="code-tag">&lt;ejb-class&gt;</span>examples.session.stateless_dd.RetrieveEmployeeInfoBean<span class="code-tag">&lt;/ejb-class&gt;</span>
            <span class="code-tag">&lt;session-type&gt;</span>Stateless<span class="code-tag">&lt;/session-type&gt;</span>
            <span class="code-tag">&lt;transaction-type&gt;</span>Container<span class="code-tag">&lt;/transaction-type&gt;</span>

            <span class="code-tag">&lt;resource-ref&gt;</span>
                <span class="code-tag">&lt;res-ref-name&gt;</span>jdbc/DataSource<span class="code-tag">&lt;/res-ref-name&gt;</span>
                <span class="code-tag">&lt;res-type&gt;</span>javax.sql.DataSource<span class="code-tag">&lt;/res-type&gt;</span>
                <span class="code-tag">&lt;res-auth&gt;</span>Container<span class="code-tag">&lt;/res-auth&gt;</span>
                <span class="code-tag">&lt;res-sharing-scope&gt;</span>Shareable<span class="code-tag">&lt;/res-sharing-scope&gt;</span>
            <span class="code-tag">&lt;/resource-ref&gt;</span>
        <span class="code-tag">&lt;/session&gt;</span>
    <span class="code-tag">&lt;/enterprise-beans&gt;</span>

    <span class="code-tag">&lt;interceptors&gt;</span>
        <span class="code-tag">&lt;interceptor&gt;</span>

            <span class="code-tag">&lt;interceptor-class&gt;</span>
                examples.session.stateless_dd.RetrieveEmployeeInfoCallbacks
            <span class="code-tag">&lt;/interceptor-class&gt;</span>

            <span class="code-tag">&lt;post-construct&gt;</span>
                <span class="code-tag">&lt;lifecycle-callback-method&gt;</span>construct<span class="code-tag">&lt;/lifecycle-callback-method&gt;</span>
            <span class="code-tag">&lt;/post-construct&gt;</span>

            <span class="code-tag">&lt;post-activate&gt;</span>
                <span class="code-tag">&lt;lifecycle-callback-method&gt;</span>activate<span class="code-tag">&lt;/lifecycle-callback-method&gt;</span>
            <span class="code-tag">&lt;/post-activate&gt;</span>

            <span class="code-tag">&lt;pre-passivate&gt;</span>
                <span class="code-tag">&lt;lifecycle-callback-method&gt;</span>passivate<span class="code-tag">&lt;/lifecycle-callback-method&gt;</span>
            <span class="code-tag">&lt;/pre-passivate&gt;</span>
        <span class="code-tag">&lt;/interceptor&gt;</span>
    <span class="code-tag">&lt;/interceptors&gt;</span>

    <span class="code-tag">&lt;assembly-descriptor&gt;</span>
        <span class="code-tag">&lt;interceptor-binding&gt;</span>

            <span class="code-tag">&lt;ejb-name&gt;</span>RetrieveEmployeeInfoBean<span class="code-tag">&lt;/ejb-name&gt;</span>

            <span class="code-tag">&lt;interceptor-class&gt;</span>
                examples.session.stateless_dd.RetrieveEmployeeInfoCallbacks
            <span class="code-tag">&lt;/interceptor-class&gt;</span>

        <span class="code-tag">&lt;/interceptor-binding&gt;</span>
    <span class="code-tag">&lt;/assembly-descriptor&gt;</span>

<span class="code-tag">&lt;/ejb-jar&gt;</span></pre>
</div></div><table cellpadding='5' width='85%' cellspacing='8px' class='noteMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
<p>The default namespace of the above XML document is <tt><span class="nobr"><a href="http://java.sun.com/xml/ns/javaee" title="Visit page outside Confluence" rel="nofollow">http://java.sun.com/xml/ns/javaee<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></tt>. The XML elements that do not have a namespace prefix belong to the default namespace.</p>

<p>In EJB3.0, most of the deployment descriptor declarations can be done through the corresponding annotations in the bean class. However, if a deployment descriptor is supplied (<tt>ejb-jar.xml</tt>), the declarations in the deployment descriptor will override the annotations.</p></td></tr></table>
<p>The ejb module connects to back end datasource using its JNDI name <tt>jdbc/DataSource</tt> as declared in the <tt>ejb-jar.xml</tt>. It also declares that the ejb is a stateless session bean and provides an interceptor class for the bean. The interceptor class will have callback methods which container calls when the corresponding events occur in the bean's life cycle.</p>

<p>For the above deployment descriptor, we will have to provide a corresponding deployment plan file (<tt>openejb-jar.xml</tt>) that maps the declared datasource to actual datasource deployed in the server. The following is the deployment plan.</p>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>openejb-jar.xml</b></div><div class="codeContent">
<pre class="code-xml">&lt;openejb-jar xmlns=<span class="code-quote">"http://openejb.apache.org/xml/ns/openejb-jar-2.2"</span>
         <span class="code-keyword">xmlns:naming</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/naming-1.2"</span>
         <span class="code-keyword">xmlns:sec</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/security-2.0"</span>
         <span class="code-keyword">xmlns:sys</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.2"</span>&gt;

    <span class="code-tag">&lt;sys:environment&gt;</span>
        <span class="code-tag">&lt;sys:moduleId&gt;</span>
            <span class="code-tag">&lt;sys:groupId&gt;</span>samples<span class="code-tag">&lt;/sys:groupId&gt;</span>
            <span class="code-tag">&lt;sys:artifactId&gt;</span>EmployeeDemo-ejb-dd<span class="code-tag">&lt;/sys:artifactId&gt;</span>
            <span class="code-tag">&lt;sys:version&gt;</span>3.0<span class="code-tag">&lt;/sys:version&gt;</span>
            <span class="code-tag">&lt;sys:type&gt;</span>jar<span class="code-tag">&lt;/sys:type&gt;</span>
        <span class="code-tag">&lt;/sys:moduleId&gt;</span>

        <span class="code-tag">&lt;sys:dependencies&gt;</span>
            <span class="code-tag">&lt;sys:dependency&gt;</span>
                <span class="code-tag">&lt;sys:groupId&gt;</span>console.dbpool<span class="code-tag">&lt;/sys:groupId&gt;</span>
                <span class="code-tag">&lt;sys:artifactId&gt;</span>jdbc/FEmployeeDatasource<span class="code-tag">&lt;/sys:artifactId&gt;</span>
                <span class="code-tag">&lt;sys:version&gt;</span>1.0<span class="code-tag">&lt;/sys:version&gt;</span>
                <span class="code-tag">&lt;sys:type&gt;</span>rar<span class="code-tag">&lt;/sys:type&gt;</span>
           <span class="code-tag">&lt;/sys:dependency&gt;</span>
        <span class="code-tag">&lt;/sys:dependencies&gt;</span>
    <span class="code-tag">&lt;/sys:environment&gt;</span>

    <span class="code-tag">&lt;enterprise-beans&gt;</span>
        <span class="code-tag">&lt;session&gt;</span>
            <span class="code-tag">&lt;ejb-name&gt;</span>RetrieveEmployeeInfoBean<span class="code-tag">&lt;/ejb-name&gt;</span>
            <span class="code-tag">&lt;naming:resource-ref&gt;</span>
                <span class="code-tag">&lt;naming:ref-name&gt;</span>jdbc/DataSource<span class="code-tag">&lt;/naming:ref-name&gt;</span>
                <span class="code-tag">&lt;naming:resource-link&gt;</span>jdbc/EmployeeDatasource<span class="code-tag">&lt;/naming:resource-link&gt;</span>
            <span class="code-tag">&lt;/naming:resource-ref&gt;</span>
        <span class="code-tag">&lt;/session&gt;</span>
    <span class="code-tag">&lt;/enterprise-beans&gt;</span>
<span class="code-tag">&lt;/openejb-jar&gt;</span></pre>
</div></div><table cellpadding='5' width='85%' cellspacing='8px' class='noteMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>The default namespace of the above XML document is <tt><span class="nobr"><a href="http://openejb.apache.org/xml/ns/openejb-jar-2.2" title="Visit page outside Confluence" rel="nofollow">http://openejb.apache.org/xml/ns/openejb-jar-2.2<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></tt>. The XML elements that do not have a namespace prefix belong to the default namespace. </td></tr></table>
<p>Observe the various XML tags and corresponding namespaces used in the deployment plan for various purposes.</p>

<p><tt><b>&lt;sys:environment&gt; .. &lt;/sys:environment&gt;</b></tt> : These elements provide the moduleId configuration and the dependencies. The moduleId elements provide the configuration name for the ejb module. So, when the ejb module is deployed, it is given the configuration name <tt>samples/EmployeeDemo-ejb-dd/3.0/jar</tt>. The dependencies elements provide the configurations and third party libraries on which the ejb module is dependent on. These configurations and libraries will be available to the ejb module via a classloader hierarchy. In this case, the ejb module is dependent on <tt>console.dbpool/jdbc/FEmployeeDatasource/1.0/jar</tt> which is the configuration of the deployed Datasource that connects to a back end DB2 database. The Datasource deploys a database connection pool (<tt>javax.sql.Datasource</tt>) with name <tt>jdbc/EmployeeDatasource</tt>.</p>

<p><tt><b>&lt;enterprise-beans&gt; .. &lt;/enterprise-beans&gt;</b></tt> : These elements help us to configure the enterprise beans. In this case, the datasource reference <tt>jdbc/DataSource</tt> is mapped to <tt>jdbc/EmployeeDatasource</tt>.</p>

<p>In the ejb bean class, the following java code is used to obtain a connection from the datasource.</p>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>examples.session.stateless_dd.RetrieveEmployeeInfoBean.java</b></div><div class="codeContent">
<pre class="code-java">....
....
Context initContext = <span class="code-keyword">new</span> InitialContext();
Context envContext  = (Context)initContext.lookup(<span class="code-quote">"java:comp/env"</span>);
DataSource ds = (DataSource)envContext.lookup(<span class="code-quote">"jdbc/DataSource"</span>);
Connection con = ds.getConnection();
....
....</pre>
</div></div>
<p>The above descriptor and plan are the simple illustrations that explain how ejb modules are developed and assembled for Apache Geronimo. Similarly, many other configurations can be performed in the <tt>openejb-jar.xml</tt>. The schema for the plan is <span class="nobr"><a href="http://svn.apache.org/repos/asf/geronimo/site/tags/pre-confluence/docs/schemas-1.1/openejb-jar-2.1.xsd" title="Visit page outside Confluence" rel="nofollow">openejb-jar-2.1.xsd <sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>


</div>


</td></tr></table></div>
<p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
        <td height="12" background="http://cwiki.apache.org/confluence/images/border/border_bottom.gif"><img src="http://cwiki.apache.org/confluence/images/border/spacer.gif" width="1" height="1" border="0"/></td>
    </tr>
</table>

<div class="smalltext">
    Powered by
    <a href="http://www.atlassian.com/software/confluence/default.jsp?clicked=footer" class="smalltext">Atlassian Confluence</a>
    (Version: 2.2.9 Build:#527 Sep 07, 2006)
    -
    <a href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470" class="smalltext">Bug/feature request</a><br/>
    <br>
    <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action">Unsubscribe or edit your notifications preferences</a>

</div>

</body>
</html>


Mime
View raw message