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: persistence.xml (page edited)
Date Wed, 18 Jun 2008 11:59: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/persistence.xml">persistence.xml</a>
        </span>
    </div>

     <p>
        <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/persistence.xml">persistence.xml</a>
        has been edited by             <a href="http://cwiki.apache.org/confluence/display/~phanibalaji">Phani Balaji Madgula</a>
            <span class="smallfont">(Jun 18, 2008)</span>.
     </p>
    
     <p>
                 <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=88569&originalVersion=14&revisedVersion=15">(View changes)</a>
     </p>

    <span class="label">Content:</span><br/>
    <div class="greybox wiki-content"><div>
<ul>
  <li><a href='#persistence.xml-Overview'>Overview</a>
<ul>
  <li><a href='#persistence.xml-Packaging'>Packaging</a></li>
</ul></li>
  <li><a href='#persistence.xml-Schema'>Schema</a>
<ul>
  <li><a href='#persistence.xml-Schematoplevelelements'>Schema top level elements</a>
<ul>
  <li><a href='#persistence.xml-%3Cpersistenceunit%3E'>&lt;persistence-unit&gt;</a>
<ul>
  <li><a href='#persistence.xml-Attribute%3Aname'>Attribute : name</a></li>
  <li><a href='#persistence.xml-Attribute%3Atransactiontype'>Attribute : transaction-type</a></li>
  <li><a href='#persistence.xml-%3Cdescription%3E'>&lt;description&gt;</a></li>
  <li><a href='#persistence.xml-%3Cprovider%3E'>&lt;provider&gt;</a></li>
  <li><a href='#persistence.xml-%3Cjtadatasource%3E%2C%3Cnonjtadatasource%3E'>&lt;jta-data-source&gt;, &lt;non-jta-data-source&gt;</a></li>
  <li><a href='#persistence.xml-%3Cmappingfile%3E'>&lt;mapping-file&gt;</a></li>
  <li><a href='#persistence.xml-%3Cjarfile%3E'>&lt;jar-file&gt;</a></li>
  <li><a href='#persistence.xml-%3CClass%3E'>&lt;Class&gt;</a></li>
  <li><a href='#persistence.xml-%3Cexcludeunlistedclasses%3E'>&lt;exclude-unlisted-classes&gt;</a></li>
  <li><a href='#persistence.xml-%3Cproperties%3E'>&lt;properties&gt;</a></li>
</ul></li>
</ul></li>
</ul></li>
</ul></div>
<h1><a name="persistence.xml-Overview"></a>Overview</h1>
<p>The <b>persistence.xml</b> file describes persistence units. It is the deployment descriptor file for persistence using Java Persistence API (JPA).  It is used to declare the following.</p>

<ul>
	<li>Managed persistence classes.<br/>
  The managed classes are, for example, those which are annotated using <b>@Entity</b>, <b>@Embeddable</b> or <br/>
  <b>@MappedSuperclass</b>.</li>
	<li>Specify object/relation mapping.<br/>
  JPA provides several mechanisms to map the java classes to tables in a relational database.</li>
	<li>Configuration information for entity managers and entity manager factory classes.</li>
</ul>


<p>The <b>persistence.xml</b> file is placed in the <b>META-INF</b> directory of the root of the persistence unit. The object/relational mapping information is provided by the following ways. </p>

<ul>
	<li>Annotations on the managed persistence classes</li>
	<li>One or more XML files contained in the root of the persistence unit</li>
	<li>One or more XML files outside the root of the persistence unit on the classpath and referenced from the<br/>
  <b>persistence.xml</b>, or a combination of these.</li>
</ul>


<p>In Java EE, the root of a persistence unit can be one of the following</p>

<ul>
	<li>EJB-JAR file</li>
	<li><b>WEB-INF/classes</b> directory of a WAR file</li>
	<li>A jar file in the <b>WEB-INF/lib</b> directory of a WAR file</li>
	<li>A jar file in the root of the EAR</li>
	<li>A jar file in the EAR library directory</li>
	<li>An application client jar file</li>
</ul>


<p>The location of the managed persistence classes can be as follows.</p>

<ul>
	<li>Within the root of the persistence unit.</li>
	<li>Can be specified by reference in the <b>persistence.xml</b> by naming the classes, archives, or mapping XML files<br/>
  that are accessible on the application classpath. </li>
	<li>Some combinations of the above methods.</li>
</ul>


<h2><a name="persistence.xml-Packaging"></a>Packaging</h2>
<p>The <b>persistence.xml</b> file is placed in the <b>META-INF</b> directory of the root of the persistence unit. </p>

<h1><a name="persistence.xml-Schema"></a>Schema</h1>
<p>The schema of the <b>persistence.xml</b> is at this <span class="nobr"><a href="http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" title="Visit page outside Confluence" rel="nofollow">link<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. Apache geronimo uses <span class="nobr"><a href="http://openjpa.apache.org/" title="Visit page outside Confluence" rel="nofollow">OpenJPA<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> as the JPA provider. </p>

<h2><a name="persistence.xml-Schematoplevelelements"></a>Schema top level elements</h2>
<p>The top level element of the <b>persistence.xml</b> is <b>&lt;persistence&gt;</b>. The below sections explain the sub-elements of the <b>&lt;persistence&gt;</b> element. Typical <b>persistence.xml</b> looks like below.</p>
<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>persistence.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;persistence xmlns=<span class="code-quote">"http://java.sun.com/xml/ns/persistence"</span>
 <span class="code-keyword">xmlns:xsi</span>=<span class="code-quote">"http://www.w3.org/2001/XMLSchema-instance"</span> version=<span class="code-quote">"1.0"</span>
 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
 http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"&gt;
 ...
 ...
<span class="code-tag">&lt;/persistence&gt;</span></pre>
</div></div>

<h3><a name="persistence.xml-%3Cpersistenceunit%3E"></a>&lt;persistence-unit&gt;</h3>
<p>The <b>&lt;persistence&gt;</b> element can consist of more than one <b>&lt;persistence-unit&gt;</b> element each describing a persistence unit. The <b>persistence-unit</b> element consists of the following attributes.</p>

<h4><a name="persistence.xml-Attribute%3Aname"></a>Attribute : name</h4>
<p>This attribute is required. The <b>name</b> attribute defines the name for the persistence unit. It uniquely identifies a persistence context. This name is used to identify a persistence unit referred to by the <b>PersistenceContext</b> and <b>PersistenceUnit</b> annotations. It is also referred while creating an entity manager factory object. The following note illustrates the usage in an application.</p>
<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>1. The below annotation injects <b>EntityManager</b> object that corresponds to <b>Tutorial</b> persistence unit <br/>
    to the variable <b>em</b> .</p>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-java">@PersistenceContext(unitName=<span class="code-quote">"Tutorial"</span>)
  <span class="code-keyword">private</span> EntityManager em;</pre>
</div></div>
<p>2. The below annotation injects <b>EntityManagerFactory</b> object that corresponds to <b>Account</b> <br/>
    persistence unit to the variable <b>emf</b>. From the <b>emf</b>, the <b>EntityManager</b> object can be created. </p>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-java">@PersistenceUnit(unitName=<span class="code-quote">"Account"</span>)
<span class="code-keyword">private</span> EntityManagerFactory emf;</pre>
</div></div></td></tr></table>

<h4><a name="persistence.xml-Attribute%3Atransactiontype"></a>Attribute : transaction-type</h4>
<p>This attribute can have the following values.</p>

<ul>
	<li><b>JTA</b></li>
	<li><b>RESOURCE_LOCAL</b></li>
</ul>


<p>The <b>transaction-type</b> attribute is used to specify whether the entity managers provided by the entity manager factory for the persistence unit must be JTA entity managers or resource-local entity managers. The value of this element is <b>JTA</b> or <b>RESOURCE_LOCAL</b>. A <b>transaction-type</b> of JTA assumes that a JTA data source will be  provided. It is provided either as specified by the <b>jta-data-source</b> element or provided by the container. In general, in Java EE environments, a <b>transaction-type</b> of <b>RESOURCE_LOCAL</b> assumes that a non-JTA datasource will be provided. In a Java EE environment, if this element is not specified, the default is <b>JTA</b>. In a Java SE environment, if this element is not specified, a default of <b>RESOURCE_LOCAL</b> may be assumed.</p>
<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>1. The below declaration is for a persistence unit named <b>Account</b> and the transaction type is <b>JTA</b>. </p>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"Account"</span> transaction-type=<span class="code-quote">"JTA"</span>&gt;</span>
...
...
<span class="code-tag">&lt;/persistence-unit&gt;</span></pre>
</div></div>
<p>2. The below declaration is for a persistence unit named <b>Account</b> and the transaction type is <br/>
    <b>RESOURCE_LOCAL</b>.</p>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"Account"</span> transaction-type=<span class="code-quote">"RESOURCE_LOCAL"</span>&gt;</span>
...
...
<span class="code-tag">&lt;/persistence-unit&gt;</span></pre>
</div></div>

<p>Please note that there are two types of entity managers and corresponding persistence contexts. These are container managed entity manager and application managed entity manager. </p>

<p>The container managed entity manager is the one whose persistence context is managed by container. The persistence context is propagated along the active transaction. The persistence scope of the container managed entity manager is transaction by default. The transaction type of the entity manager is always <b>JTA</b>. The <b>EntityManager</b> object is injected by the container to the application.</p>

<p>The application managed entity manager is the one whose persistence context is managed by the application. The persistence context is not propagated along the transaction. The persistence context will be active even after the current transaction completes. The transaction type of the entity manager is <b>RESOURCE_LOCAL</b> by default. The <b>EntityManager</b> object should be created by using <b>EntityManagerFactory</b> object in the application.</p></td></tr></table>

<h4><a name="persistence.xml-%3Cdescription%3E"></a>&lt;description&gt;</h4>
<p>The description element provides optional descriptive information about the persistence unit.</p>
<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>1. The below XML content illustrate the use of the element.</p>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"Account"</span> transaction-type=<span class="code-quote">"JTA"</span>&gt;</span>
 <span class="code-tag">&lt;description&gt;</span>Entities related to bank accounts<span class="code-tag">&lt;/description&gt;</span>
 ...                 
 ...
<span class="code-tag">&lt;/persistence-unit&gt;</span></pre>
</div></div></td></tr></table>

<h4><a name="persistence.xml-%3Cprovider%3E"></a>&lt;provider&gt;</h4>
<p>The provider element specifies the name of the persistence provider's <tt>javax.persistence.spi.PersistenceProvider</tt> class. The provider element must be specified if the application is dependent upon a particular persistence provider being used. The provider class supplies EntityManagers for this persistence unit.</p>
<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>1. The below XML content illustrate the use of the element.</p>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"Account"</span> transaction-type=<span class="code-quote">"JTA"</span>&gt;</span>
<span class="code-tag">&lt;description&gt;</span>Entities related to bank accounts<span class="code-tag">&lt;/description&gt;</span>
<span class="code-tag">&lt;provider&gt;</span>org.apache.openjpa.persistence.PersistenceProviderImpl<span class="code-tag">&lt;/provider&gt;</span>
...
...
<span class="code-tag">&lt;/persistence-unit&gt;</span></pre>
</div></div>
<p>For OpenJPA, the value of the provider is <b>org.apache.openjpa.persistence.PersistenceProviderImpl</b>. </p></td></tr></table>

<h4><a name="persistence.xml-%3Cjtadatasource%3E%2C%3Cnonjtadatasource%3E"></a>&lt;jta-data-source&gt;, &lt;non-jta-data-source&gt;</h4>
<p>In Java EE environments, the jta-data-source and non-jta-data-source elements are used to specify the global JNDI name of the JTA and non-JTA data source respectively to be used by the persistence provider. If neither is specified, the deployer must specify a JTA data source at deployment or a JTA data source must be provided by the container, and a JTA EntityManagerFactory will be created to correspond to it. These elements name the data source in the local environment. The format/syntax of these names and the ability to specify the names are product specific. In Java SE environments, these elements may be used or the data source information may be specified by other means; depending upon the requirements of the provider.</p>
<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>In the geronimo server, users can deploy datasources (database connection pools) on databases from various vendors like DB2, Oracle, MySQL, MS-SQLServer etc,. When creating a datasource, users have to specify the datasource name in the deployment plan. The name given to the datasource is to be provided in the <b>jta-data-source</b> and <b>non-jta-data-source</b> elements. The below XML fragment illustrates the usage.</p>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"Account"</span> transaction-type=<span class="code-quote">"JTA"</span>&gt;</span>
  <span class="code-tag">&lt;description&gt;</span>ContainerManagedJPA<span class="code-tag">&lt;/description&gt;</span>
  <span class="code-tag">&lt;provider&gt;</span>org.apache.openjpa.persistence.PersistenceProviderImpl<span class="code-tag">&lt;/provider&gt;</span>
  <span class="code-tag">&lt;jta-data-source&gt;</span>AccountDB2DataSource<span class="code-tag">&lt;/jta-data-source&gt;</span>
  ...
  ...
<span class="code-tag">&lt;/persistence-unit&gt;</span></pre>
</div></div></td></tr></table>

<h4><a name="persistence.xml-%3Cmappingfile%3E"></a>&lt;mapping-file&gt;</h4>
<p>An object/relational mapping XML file contains mapping information for the classes listed in it. The mapping files can be provided as follows.</p>

<ul>
	<li>Object/relational mapping XML file named <b>orm.xml</b> may be specified in the META-INF directory in the root of the<br/>
  persistence unit.</li>
</ul>


<ul>
	<li>Object/relational mapping XML file named <b>orm.xml</b> may be specified  in the META-INF directory of any jar file<br/>
  referenced by the <b>persistence.xml</b>. </li>
</ul>


<ul>
	<li>In addition, other mapping files may be referenced by the mapping-file elements of the persistence-unit<br/>
  element, and may be present anywhere on the classpath. </li>
</ul>


<p>An <b>orm.xml</b> file or other mapping file is loaded as a resource by the persistence provider. If a mapping file is specified, the classes and mapping information specified in the mapping file will be used. If multiple mapping files are specified (possibly including one or more <b>orm.xml</b> files), the resulting mappings are obtained by combining the mappings from all of the files. The result is undefined if multiple mapping files (including any <b>orm.xml</b> file) referenced within a single persistence unit contain overlapping mapping information for any given class. The below XML fragment illustrates the usage.</p>
<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>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"Tutorial"</span> transaction-type=<span class="code-quote">"RESOURCE_LOCAL"</span>&gt;</span>
<span class="code-tag">&lt;provider&gt;</span>org.apache.openjpa.persistence.PersistenceProviderImpl<span class="code-tag">&lt;/provider&gt;</span>
<span class="code-tag">&lt;non-jta-data-source&gt;</span>ProductDS-nonJTA<span class="code-tag">&lt;/non-jta-data-source&gt;</span>
<span class="code-tag">&lt;mapping-file&gt;</span>object_mappings.xml<span class="code-tag">&lt;/mapping-file&gt;</span>
     ...
     ...
<span class="code-tag">&lt;/persistence-unit&gt;</span></pre>
</div></div>
<p>The object_mappings.xml file must be in the classpath of the application.</p></td></tr></table>

<h4><a name="persistence.xml-%3Cjarfile%3E"></a>&lt;jar-file&gt;</h4>
<p>One or more JAR files may be specified using the <b>jar-file</b> elements instead of, or in addition to the mapping files specified in the <b>mapping-file</b> elements. If specified, JPA processes these jar files as follows.</p>

<ul>
	<li>These JAR files will be searched for managed persistence classes, and any mapping metadata annotations found on them will be processed.</li>
</ul>


<ul>
	<li>They will be mapped using the mapping annotation defaults defined by the JPA specification. JAR files are specified relative to the root of the persistence unit.</li>
</ul>


<ul>
	<li>A list of named managed persistence classes may also be specified instead of, or in addition to, the JAR files and mapping files (using <b>class</b> xml element explained below). Any mapping metadata annotations found on these classes will be processed, or they will be mapped using the mapping annotation defaults. The following XML fragment illustrates the usage.
<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>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"Tutorial"</span> transaction-type=<span class="code-quote">"RESOURCE_LOCAL"</span>&gt;</span>
 <span class="code-tag">&lt;provider&gt;</span>org.apache.openjpa.persistence.PersistenceProviderImpl<span class="code-tag">&lt;/provider&gt;</span>
 <span class="code-tag">&lt;jta-data-source&gt;</span>AccountDS<span class="code-tag">&lt;/jta-data-source&gt;</span>
 <span class="code-tag">&lt;mapping-file&gt;</span>account_mappings.xml<span class="code-tag">&lt;/mapping-file&gt;</span>
 <span class="code-tag">&lt;jar-file&gt;</span>account-entities.jar<span class="code-tag">&lt;/jar-file&gt;</span>
  ...
  ...
<span class="code-tag">&lt;/persistence-unit&gt;</span></pre>
</div></div>
<p>The <b>account-entities.jar</b> is placed at the root of the persistence unit.</p></td></tr></table></li>
</ul>


<h4><a name="persistence.xml-%3CClass%3E"></a>&lt;Class&gt;</h4>
<p>The following classes must be implicitly or explicitly denoted as managed persistence classes to be<br/>
included within a persistence unit.</p>
<ul>
	<li>Entity classes</li>
	<li>Embeddable classes</li>
	<li>Mapped superclasses.</li>
</ul>


<p>The set of managed persistence classes that are managed by a persistence unit is defined by using one or<br/>
more of the following:</p>
<ul>
	<li>One or more object/relational mapping XML files (explained in <b>mapping-file</b> section above).</li>
	<li>One or more jar files that will be searched for classes explained in <b>jar-file</b> section above).</li>
	<li>An explicit list of the classes (using <b>class</b> element).</li>
	<li>The annotated managed persistence classes contained in the root of the persistence unit<br/>
  (unless the <b>exclude-unlisted-classes</b> element is specified)</li>
</ul>


<p>In the Java SE environment, the following rules and recommendations are required to be followed.</p>
<ul>
	<li>The <b>class</b> element is used to list a managed persistence class. A list of all named managed persistence classes must be specified in Java SE environments to insure portability.</li>
	<li>Portable Java SE applications should not rely on the other mechanisms described here to specify the managed persistence classes of a persistence unit.</li>
	<li>Persistence providers may also require that the set of entity classes that are to be managed must be fully enumerated in <b>persistence.xml</b>.</li>
</ul>


<p>The following procedure explains how managed persistence classes are searched.</p>
<ul>
	<li>All classes contained in the root of the persistence unit are also searched for annotated managed persistence classes and any mapping metadata annotations found on them will be processed, or they will be mapped using the mapping annotation defaults.</li>
	<li>If it is not intended that the annotated persistence classes contained in the root of the persistence unit be included in the persistence unit, the exclude-unlisted-classes element should be used.</li>
</ul>


<ul>
	<li>The exclude-unlisted-classes element is not intended for use in Java SE environments.</li>
</ul>


<ul>
	<li>The resulting set of entities managed by the persistence unit is the union of these sources, with the mapping metadata annotations (or annotation defaults) for any given class being overridden by the XML mapping information file if there are both annotations as well as XML mappings for that class.</li>
</ul>


<ul>
	<li>The minimum portable level of overriding is at the level of the persistent field or property.</li>
</ul>


<ul>
	<li>The classes and/or jars that are named as part of a persistence unit must be on the classpath. Referencing them from the persistence.xml file does not cause them to be placed on the classpath.</li>
</ul>


<ul>
	<li>All classes must be on the classpath to ensure that entity managers from different persistence units that map the same class will be accessing the same identical class.</li>
</ul>


<p>The following XML fragment illustrate the use of <b>class</b> element.</p>
<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>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"AccountUnit"</span> transaction-type=<span class="code-quote">"JTA"</span>&gt;</span>
  <span class="code-tag">&lt;description&gt;</span>ContainerManagedJPA<span class="code-tag">&lt;/description&gt;</span>
  <span class="code-tag">&lt;provider&gt;</span>org.apache.openjpa.persistence.PersistenceProviderImpl<span class="code-tag">&lt;/provider&gt;</span>
  <span class="code-tag">&lt;jta-data-source&gt;</span>AccountDS<span class="code-tag">&lt;/jta-data-source&gt;</span>
  <span class="code-tag">&lt;class&gt;</span>sample.jpa.Account<span class="code-tag">&lt;/class&gt;</span>
  <span class="code-tag">&lt;class&gt;</span>sample.jpa.Person<span class="code-tag">&lt;/class&gt;</span>
  ...
  ...
<span class="code-tag">&lt;/persistence-unit&gt;</span></pre>
</div></div>
<p>The <b>sample.jpa.Account</b> and <b>sample.jpa.Person</b> are explicitly mentioned as managed persistence classes in the <b>persistence.xml</b>.</p></td></tr></table>

<h4><a name="persistence.xml-%3Cexcludeunlistedclasses%3E"></a>&lt;exclude-unlisted-classes&gt;</h4>
<p>When set to true, only listed classes and jars will be scanned for persistent classes. Otherwise the enclosing                     jar or directory will also be scanned. This is not applicable to Java SE persistence units. The following XML fragment illustrate the use of <b>exclude-unlisted-classes</b> element.</p>
<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>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"AccountUnit"</span> transaction-type=<span class="code-quote">"JTA"</span>&gt;</span>
  <span class="code-tag">&lt;description&gt;</span>ContainerManagedJPA<span class="code-tag">&lt;/description&gt;</span>
  <span class="code-tag">&lt;provider&gt;</span>org.apache.openjpa.persistence.PersistenceProviderImpl<span class="code-tag">&lt;/provider&gt;</span>
  <span class="code-tag">&lt;jta-data-source&gt;</span>AccountDS<span class="code-tag">&lt;/jta-data-source&gt;</span>
  <span class="code-tag">&lt;jar-file&gt;</span>account-entities.jar<span class="code-tag">&lt;/jar-file&gt;</span>
  <span class="code-tag">&lt;class&gt;</span>sample.jpa.Account<span class="code-tag">&lt;/class&gt;</span>
  <span class="code-tag">&lt;class&gt;</span>sample.jpa.Person<span class="code-tag">&lt;/class&gt;</span>
  <span class="code-tag">&lt;exclude-unlisted-classes&gt;</span>true<span class="code-tag">&lt;/exclude-unlisted-classes&gt;</span>
  ...
  ...
 <span class="code-tag">&lt;/persistence-unit&gt;</span></pre>
</div></div>
<p> Only <b>account-entities.jar</b>, <b>sample.jpa.Account</b> and <b>sample.jpa.Person</b> are scanned for managed persistence classes.</p></td></tr></table>

<h4><a name="persistence.xml-%3Cproperties%3E"></a>&lt;properties&gt;</h4>
<ul>
	<li>The <b>properties</b> element is used to specify vendor-specific properties that apply to the persistence unit and its entity manager factory configuration.</li>
	<li>If a persistence provider does not recognize properties (other than those defined by this specification), the provider will ignore those properties.</li>
	<li>Vendors will use vendor namespaces for properties.</li>
</ul>


<p>The following XML fragment illustrate the use of <b>properties</b> element.</p>
<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>
<div class="code" style="border-style: solid; "><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;persistence-unit name=<span class="code-quote">"Inheritence"</span>&gt;</span>
 <span class="code-tag">&lt;description&gt;</span>Single Table Inheritence example<span class="code-tag">&lt;/description&gt;</span>
 <span class="code-tag">&lt;provider&gt;</span>org.apache.openjpa.persistence.PersistenceProviderImpl<span class="code-tag">&lt;/provider&gt;</span>
 <span class="code-tag">&lt;class&gt;</span>com.jpa.RoadVehicle<span class="code-tag">&lt;/class&gt;</span>
 <span class="code-tag">&lt;class&gt;</span>com.jpa.Car<span class="code-tag">&lt;/class&gt;</span>
 <span class="code-tag">&lt;class&gt;</span>com.jpa.Coupe<span class="code-tag">&lt;/class&gt;</span>
 <span class="code-tag">&lt;class&gt;</span>com.jpa.Motorcycle<span class="code-tag">&lt;/class&gt;</span>
 <span class="code-tag">&lt;class&gt;</span>com.jpa.Roadster<span class="code-tag">&lt;/class&gt;</span>
 <span class="code-tag">&lt;properties&gt;</span>
   <span class="code-tag">&lt;property name=<span class="code-quote">"openjpa.ConnectionURL"</span> value=<span class="code-quote">"jdbc:derby:VehicleDB"</span> /&gt;</span>
   <span class="code-tag">&lt;property name=<span class="code-quote">"openjpa.ConnectionDriverName"</span> value=<span class="code-quote">"org.apache.derby.jdbc.EmbeddedDriver"</span> /&gt;</span>
   <span class="code-tag">&lt;property name=<span class="code-quote">"ConnectionUserName"</span> value=<span class="code-quote">"app"</span> /&gt;</span>
   <span class="code-tag">&lt;property name=<span class="code-quote">"openjpa.jdbc.SynchronizeMappings"</span> value=<span class="code-quote">"false"</span> /&gt;</span>
 <span class="code-tag">&lt;/properties&gt;</span>
<span class="code-tag">&lt;/persistence-unit&gt;</span></pre>
</div></div>
<p>The above properties are specific to OpenJPA provider. The OpenJPA provider reads these properties and creates appropriate <b>EntityManagerFactory</b>. The properties supported by OpenJPA is at this <span class="nobr"><a href="http://openjpa.apache.org/builds/1.1.0/apache-openjpa-1.1.0/docs/manual/manual.html#ref_guide_conf_openjpa" title="Visit page outside Confluence" rel="nofollow">link<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p></td></tr></table>

</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