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: JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1) (page created)
Date Thu, 28 Feb 2008 14:57: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 Created :
            <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21">GMOxDOC21</a> :
            <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/JBoss+to+Geronimo+-+Servlets+and+JSPs+Migration+%28Unverified+on+2.1%29">JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)</a>
        </span>
    </div>

     <p>
        <a href="http://cwiki.apache.org/confluence/display/GMOxDOC21/JBoss+to+Geronimo+-+Servlets+and+JSPs+Migration+%28Unverified+on+2.1%29">JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)</a>
        has been created by             <a href="http://cwiki.apache.org/confluence/display/~jawarner">Jason Warner</a>
            <span class="smallfont">(Feb 28, 2008)</span>.
     </p>

    <span class="label">Content:</span><br />
    <div class="greybox wiki-content"><p><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-top"></a><br/>
This article will help you migrate servlets and JSPs deployed JBoss v4 to Apache Geronimo. This article is part of a series of migration articles covering different types of applications migration.</p>

<p>This article covers the migration one of the most fundamental aspects of J2EE; servlets and JSPs. The sample application used for this migration exercise is <span class="error">&#91;College Fest|^college_fest.zip&#93;</span> which just contains servlets and JSPs for handling the flow of control. The College Fest sample application does not use any database, for details on migrating JDBC applications refer to the <span class="nobr"><a href="/confluence/pages/createpage.action?spaceKey=GMOxDOC21&amp;title=JBoss+to+Geronimo+-+JDBC+Migration&amp;linkCreation=true&amp;fromPageId=78096" title="Create Page: JBoss to Geronimo - JDBC Migration" class="createlink">JBoss to Geronimo &#45; JDBC Migration<sup><img class="rendericon" src="/confluence/images/icons/plus.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> article.</p>

<p>After reading this article you should be able to reconfigure the JBoss build files and the deployment descriptors to set up the Apache Geronimo destination environment and then deploying simple Web applications.</p>

<p>This article is organized in the following sections:</p>

<ul>
	<li><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-implementation" title="implementation on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Servlets and JSPs implementation analysis</a></li>
	<li><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-sampleApp" title="sampleApp on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Sample application</a></li>
	<li><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-JBoss" title="JBoss on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">The JBoss environment</a></li>
	<li><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Geronimo" title="Geronimo on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">The Geronimo environment</a></li>
	<li><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-migration" title="migration on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Step-by-step migration</a></li>
	<li><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-summary" title="summary on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Summary</a></li>
</ul>


<h1><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-ServletsandJSPsimplementationanalysis"></a>Servlets and JSPs implementation analysis <a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-implementation"></a></h1>
<p>Servlets and JSPs implementations may vary from one application server to another. The purpose of this section is to provide servlets and JSPs specific feature-to-feature comparison between JBoss and Apache Geronimo so you can clearly identify the differences and plan accordingly before migration.</p>

<p>Apache Geronimo includes a Web application container supporting J2EE Web applications. The Web container itself supports basic configuration such as network ports and SSL options, and each Web application may include Geronimo-specific configuration information as well. Web applications participate in the Geronimo security infrastructure, so authenticating to a Web application allows access to secure EJBs and Connectors as well.</p>

<p>Apache Geronimo currently supports two Web containers: <b>Jetty</b> and <b>Tomcat</b>.</p>

<h3><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Jetty"></a>Jetty</h3>
<p>Jetty is a 100% Java HTTP Server and Servlet Container. This means that you do not need to configure and run a separate Web server in order to use servlets and JSPs to generate dynamic content. Jetty is a fully featured Web server for static and dynamic content.</p>

<p>Unlike separate server/container solutions, Jetty's Web server and Web application run in the same process without interconnection overheads and complications.  Furthermore, as a pure java component, Jetty can be easily included in your application for demonstration, distribution or deployment. Jetty is available on all Java supported platforms.</p>

<p>In Geronimo, you need to explicitly configure the pathways used by browsers attempting to connect to the Web container. In the case of Jetty, the default Web container, these pathways are known as connectors. The standard configuration includes a Jetty connector supporting HTTP on port 8080, as well as a HTTPS connector on port 8443.</p>

<p>Each Jetty connector is a GBean, so the process of configuring a Jetty connector involves configuring a GBean.</p>

<h3><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-ApacheTomcat"></a>Apache Tomcat</h3>
<p>Apache Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies.</p>

<p><span class="nobr"><a href="http://java.sun.com/products/servlet" title="Visit page outside Confluence" rel="nofollow">http://java.sun.com/products/servlet<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span><br/>
<span class="nobr"><a href="http://java.sun.com/products/jsp" title="Visit page outside Confluence" rel="nofollow">http://java.sun.com/products/jsp<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<h2><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Thedifferences"></a>The differences</h2>
<p>JBoss v4 supports only Tomcat 5.5, which is the default Web container. The embedded Tomcat service is the expanded SAR <b>jbossweb-tomcat55.sar</b> in the deploy directory. The web.xml file that provides a default configuration set for Web application is also found in this exapanded SAR directory structure. </p>

<p>The HTTP connector is set up on port 8080 and port 8009 is used if you want to connect via a separate Web server such as Apache HTTP.</p>

<p>In addition to the default Web container, the second major difference lies in the deployment plan. A deployment plan in Geronimo is similar to a J2EE deployment descriptor in the sense that it is an XML file that contains the configuration information for a specific application module or service.</p>

<p>For very simple Web applications with no security nor resource references, a Geronimo deployment plan is not required, a default context root and dependencies will be provided automatically at deployment time.</p>

<p>The Geronimo Web application deployment plan is <b>geronimo-web.xml</b>. The corresponding deployment descriptor in Jboss is <b>jboss-web.xml</b>. For further details on Geronimo deployment architecture you may refer to the <span class="nobr"><a href="http://www.ibm.com/developerworks/library/os-ag-deploy" title="Visit page outside Confluence" rel="nofollow">Understand Geronimo's deployment architecture<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> article.</p>

<p>Another difference with servlets and JSPs lies in the way the Web application is deployed. In Geronimo, the application package (ear, war, rar or jar) is deployed using the deployment tool <b>deployer.jar</b> located in the &lt;geronimo_home&gt;/bin directory.<br/>
<a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-deploymentTool"></a><br/>
The deployer.jar deploys the application module based on the information provided in the deployment plan (if a plan is provided) to the Geronimo server. The server then saves the metadata to a configuration store and the executables to a binary repository. The following figure illustrates the behavior of the deployment tool.</p>

<p><span class="error">Unable to render embedded object: File (deployer.jpg) not found.</span></p>

<p>In JBoss, a Web application is deployed by simply copying the application package (ear, war, rar or jar) into the &lt;jboss_home&gt;/server/&lt;your_server_name&gt;/deploy directory from where the server detects its presence and deploys it accordingly.</p>

<p>The following table summarizes the differences between JBoss and Geronimo.</p>

<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'>Feature</th>
<th class='confluenceTh'>JBoss v4</th>
<th class='confluenceTh'>Apache Geronimo</th>
</tr>
<tr>
<td class='confluenceTd'>Deployment descriptor/plan</td>
<td class='confluenceTd'>jboss.xml</td>
<td class='confluenceTd'>geronimo-web.xml</td>
</tr>
<tr>
<td class='confluenceTd'>Method of deployment</td>
<td class='confluenceTd'>Copy the package (ear, war, rar or jar) to the deploy folder of the JBoss server &lt;jboss_home&gt;/server/&lt;your_server_name&gt;/deploy</td>
<td class='confluenceTd'><a href="/confluence/display/GMOxDOC21/Deployer+tool" title="Deployer tool">Deployer tool</a> available in server's bin directory<br/>
&lt;geronimo_home&gt;/bin. Deployment is also available through the <a href="/confluence/display/GMOxDOC21/Geronimo+Administration+Console" title="Geronimo Administration Console">Geronimo Administration Console</a>. A third option is <span class="nobr"><a href="/confluence/pages/createpage.action?spaceKey=GMOxDOC21&amp;title=Hot+deployment&amp;linkCreation=true&amp;fromPageId=78096" title="Create Page: Hot deployment" class="createlink">Hot deployment<sup><img class="rendericon" src="/confluence/images/icons/plus.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>, which would be the equivalent to JBoss functionality.</td>
</tr>
<tr>
<td class='confluenceTd'>Web container</td>
<td class='confluenceTd'>Apache Tomcat 5.5</td>
<td class='confluenceTd'>Jetty and/or Apache Tomcat</td>
</tr>
</tbody></table>

<p><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-top" title="top on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Back to Top</a></p>

<h1><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Sampleapplication"></a>Sample application <a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-sampleApp"></a></h1>
<p>The <span class="error">&#91;College Fest|^college_fest.zip&#93;</span> application handles registration for events at a college festival. This is a very simple application that does not use any type of database. The College Fest application has the following four pages:</p>

<ul>
	<li>Welcome page</li>
	<li>Event List page</li>
	<li>Event Details page</li>
	<li>Registration page</li>
</ul>


<p>The following figure illustrates the application flow:</p>

<p><span class="error">Unable to render embedded object: File (webApp_flow.jpg) not found.</span></p>

<p>The user access the Welcome page and enters user name and college. From there the user can see the list of available events. The user can access the details for each Event by clicking them from the list. From the Event details page the user can register for that particular event. </p>

<h2><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-ApplicationclassesandJSPpages"></a>Application classes and JSP pages</h2>
<p>The College Fest sample application consists of the following two servlets:</p>
<ul>
	<li>WelcomeServlet - Handles user login and then grabs the user name and dispatches this to the next servlet.</li>
	<li>PersonalServlet - Personalizes the page for the user and hands over control to welcome.jsp.</li>
</ul>


<p>The College Fest sample application also includes the following JSP pages:</p>
<ul>
	<li>welcome.jsp - Displays the events list to the user so that s/he can choose on what event to register.</li>
	<li>dc.jsp - Displays the details for the Dumb Charades event.</li>
	<li>pp.jsp - Displays the details for the Pot Potpourri event.</li>
	<li>wtgw.jsp - Displays the details for the  What's The Good Word event.</li>
	<li>gq.jsp - Displays the details for the General Quiz event.</li>
	<li>team_reg.jsp - Handles the user registration for one event.</li>
</ul>


<h2><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Toolsused"></a>Tools used</h2>
<p>The tools used for developing and building the College Fest sample application are:</p>

<h3><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Eclipse"></a>Eclipse</h3>
<p>The Eclipse IDE was used for development of the sample application. This is a very powerful and popular open source development tool. Integration plug-ins are available for both JBoss and Geronimo. Eclipse can be downloaded from the following URL:<br/>
<span class="nobr"><a href="http://www.eclipse.org" title="Visit page outside Confluence" rel="nofollow">http://www.eclipse.org<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<h3><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-ApacheAnt"></a>Apache Ant</h3>
<p>Ant is a pure Java build tool. It is used for building the war files for the College Fest application. Ant can be downloaded from the following URL:<br/>
<span class="nobr"><a href="http://ant.apache.org" title="Visit page outside Confluence" rel="nofollow">http://ant.apache.org<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<p><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-top" title="top on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Back to Top</a></p>

<h1><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-TheJBossenvironment"></a>The JBoss environment <a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-JBoss"></a></h1>
<p>This section shows you how and where the sample JBoss reference environment was installed so you can map this scenario to your own implementation.</p>

<p>Detailed instructions for installing, configuring, and managing JBoss are provided in the product documentation. Check the product Web site for the most updated documents.</p>

<p>The following list highlights the general tasks you will need to complete to install and configure the initial environment as the starting point for deploying the sample application.</p>

<ol>
	<li>Download and install JBoss v4 as explained in the product documentation guides. From now on the installation directory will be referred as <b>&lt;jboss_home&gt;</b></li>
	<li>Create a copy of the default JBoss v4 application server. Copy recursively <b>&lt;jboss_home&gt;\server\default</b> to <b>&lt;jboss_home&gt;\server\&lt;your_server_name&gt;</b></li>
	<li>Start the new server by running the <tt>run.sh -c &lt;your_server_name&gt;</tt> command from the <b>&lt;jboss_home&gt;\bin</b> directory.</li>
	<li>Once the server is started, you can verify that it is running by opening a Web browser and pointing it to this URL: <span class="nobr"><a href="http://localhost:8080" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. You should see the JBoss Welcome window and be able to access the JBoss console.</li>
	<li>Once the application server is up and running, the next step is to install and configure all the remaining prerequisite software required by the sample application. This step is described in the following section.</li>
</ol>


<p>As mentioned before, Apache Ant is used to build the binaries for the College Fest application. If you do not have Ant installed this is a good time for doing it and make sure that <b>&lt;ant_home&gt;\bin</b> directory is added to the system's path variable.</p>

<p>Apache Ant can be downloaded from the following URL:</p>

<p><span class="nobr"><a href="http://ant.apache.org" title="Visit page outside Confluence" rel="nofollow">http://ant.apache.org<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<h2><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Buildthesampleapplication"></a>Build the sample application</h2>
<p>The College Fest application included with this article provides an Ant script that you will use in order to build the application. Download the College Fest application from the following link:</p>

<p><span class="error">&#91;College Fest|^college_fest.zip&#93;</span></p>

<p>After extracting the zip file, a college_fest directory is created. In that directory open the <b>build.properties</b> file and edit the properties to match your environment as shown in the following example:</p>

<div class="preformatted" style="border-style: solid; "><div class="preformattedHeader" style="border-bottom-style: solid; "><b>Update the build.properties file</b></div><div class="preformattedContent">
<pre>#Replace java.home with your jdk directory
java.home=&lt;JAVA_HOME&gt;
#Replace j2ee.home with the parent directory of lib/j2ee.jar
j2ee.home=&lt;jboss_home&gt;/server/&lt;your_server_name&gt;
#Replace with jboss home directory
jboss.server=&lt;jboss_home&gt;/server/&lt;your_server_name&gt;
#geronimo home directory
geronimo.home=&lt;geronimo_home&gt;
</pre>
</div></div>

<p>In the college_fest directory you can also find two build files, build.xml and jboss-build.xml. build.xml is the default build file so if you just type <b>ant</b>  this file will be used for building the application. For this particular sample application the jboss-build.xml file is provided.</p>

<p>From a command line, still within the college_fest directory type the following command:</p>

<p><b>ant -f jboss-build.xml clean deploy</b></p>

<p>With this command, ant will use the targets defined in the jboss-build.xml file to build the College Fest application and deploy it to the JBoss server. Take a special look at <b>&lt;target name="deploy" ...&gt;</b>, here is where the jboss-build.xml tell ant where to deploy the WAR file. The following example shows the definitions in the jboss-build.xml file.</p>

<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>jboss-build.xml</b></div><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span>?&gt;</span>
<span class="code-tag"><span class="code-comment">&lt;!-- build file for building a war --&gt;</span></span>

<span class="code-tag">&lt;project name=<span class="code-quote">"build"</span> default=<span class="code-quote">"war"</span> basedir=<span class="code-quote">"."</span>&gt;</span>

    <span class="code-tag">&lt;property file=<span class="code-quote">"build.properties"</span>/&gt;</span>
    <span class="code-tag">&lt;property name=<span class="code-quote">"src.dir"</span> value=<span class="code-quote">"src"</span>/&gt;</span>
    <span class="code-tag">&lt;property name=<span class="code-quote">"dest.dir"</span> value=<span class="code-quote">"bin"</span>/&gt;</span>
    
    <span class="code-tag">&lt;target name=<span class="code-quote">"clean"</span> description=<span class="code-quote">"Delete all generated files"</span>&gt;</span>
        <span class="code-tag">&lt;echo message=<span class="code-quote">"Deleting bin directory"</span> /&gt;</span>
        <span class="code-tag">&lt;delete dir=<span class="code-quote">"bin"</span> /&gt;</span>
    <span class="code-tag">&lt;/target&gt;</span>

	<span class="code-tag">&lt;target name=<span class="code-quote">"compile"</span>&gt;</span>
		<span class="code-tag">&lt;mkdir dir=<span class="code-quote">"${dest.dir}"</span>/&gt;</span>
		<span class="code-tag">&lt;javac srcdir=<span class="code-quote">"${src.dir}"</span> destdir=<span class="code-quote">"${dest.dir}"</span>&gt;</span>
			<span class="code-tag">&lt;classpath path=<span class="code-quote">"${java.home}/lib/tools.jar"</span>/&gt;</span>
			<span class="code-tag">&lt;classpath path=<span class="code-quote">"${j2ee.home}/lib/j2ee.jar"</span>/&gt;</span>
		<span class="code-tag">&lt;/javac&gt;</span>
	<span class="code-tag">&lt;/target&gt;</span>

	<span class="code-tag">&lt;target name=<span class="code-quote">"war"</span> depends=<span class="code-quote">"compile"</span>&gt;</span>
		<span class="code-tag">&lt;war destfile=<span class="code-quote">"college_fest.war"</span> webxml=<span class="code-quote">"WEB-INF/web.xml"</span>&gt;</span>
			<span class="code-tag">&lt;zipfileset dir=<span class="code-quote">"jsp"</span> prefix=<span class="code-quote">"jsp"</span>/&gt;</span>   	 
			<span class="code-tag">&lt;zipfileset dir=<span class="code-quote">"pix"</span> prefix=<span class="code-quote">"pix"</span>/&gt;</span>   	 
			<span class="code-tag">&lt;classes dir=<span class="code-quote">"${dest.dir}"</span>/&gt;</span>   
                        <span class="code-tag">&lt;webinf dir=<span class="code-quote">"WEB-INF"</span> /&gt;</span>
		<span class="code-tag">&lt;/war&gt;</span>
	<span class="code-tag">&lt;/target&gt;</span>

	<span class="code-tag">&lt;target name=<span class="code-quote">"deploy"</span> depends=<span class="code-quote">"war"</span>&gt;</span>
		<span class="code-tag">&lt;copy file=<span class="code-quote">"college_fest.war"</span> todir=<span class="code-quote">"${jboss.server}/deploy"</span>/&gt;</span>
	<span class="code-tag">&lt;/target&gt;</span>

	<span class="code-tag">&lt;target name=<span class="code-quote">"undeploy"</span>&gt;</span>
		<span class="code-tag">&lt;delete file=<span class="code-quote">"${jboss.server}/deploy/college_fest.war"</span>/&gt;</span>
    <span class="code-tag">&lt;/target&gt;</span>
<span class="code-tag">&lt;/project&gt;</span></pre>
</div></div>

<p>The war created by the ant build contains a JBoss specific deployment descriptor, the <b>jboss-web.xml</b> file in the WEB-INF directory of the WAR is shown in the following example.</p>

<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>JBoss deployment descriptor</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>

<span class="code-tag">&lt;jboss-web&gt;</span>

    <span class="code-tag">&lt;context-root&gt;</span>college_fest<span class="code-tag">&lt;/context-root&gt;</span>
    <span class="code-tag">&lt;context-priority-classloader&gt;</span>
      false
    <span class="code-tag">&lt;/context-priority-classloader&gt;</span>
<span class="code-tag">&lt;/jboss-web&gt;</span></pre>
</div></div>

<p><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-top" title="top on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Back to Top</a></p>

<h2><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Deploythesampleapplication"></a>Deploy the sample application</h2>
<p>The previous step showed how to deploy the application at build time by specifying a customized jboss-build.xml file. If you used the default build.xml file at build time you still need to deploy the College Fest application manually. To deploy the College Fest application in JBoss, copy the <b>college_fest.war</b> file you just built with Ant to the following directory:</p>

<p>&lt;jboss_home&gt;\server\&lt;your_server_name&gt;\deploy</p>

<p>If JBoss is already started, it will automatically deploy and start the application; otherwise, the application will be deployed and started at the next startup.</p>

<p><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-top" title="top on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Back to Top</a></p>

<h2><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Testingtheapplication"></a>Testing the application <a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-test"></a></h2>
<p>To test the application, open a Web browser and access the following URL:</p>

<p><span class="nobr"><a href="http://localhost:8080/college_fest" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080/college_fest<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<p>You should see the Welcome screen where you can login with your name and college. When you enter your name a college and click Submit you will see a message at the end on the page stating your name with a link to "Click here" to enter the site. Browse the site and check the options, at this point the College Fest application is configured and running.</p>

<p><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-top" title="top on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Back to Top</a></p>

<h1><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-TheGeronimoenvironment"></a>The Geronimo environment <a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Geronimo"></a></h1>
<p>Download and install Geronimo from the following URL:</p>

<p><span class="nobr"><a href="http://geronimo.apache.org/downloads.html" title="Visit page outside Confluence" rel="nofollow">http://geronimo.apache.org/downloads.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>The release notes available there provide clear instructions on system requirements and how to install and start Geronimo.  Throughout the rest of this article we will refer to the Geronimo installation directory as <b>&lt;geronimo_home&gt;</b>.</p>

<table cellpadding='5' width='85%' cellspacing='8px' class='warningMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b class="strong">TCP/IP ports conflict</b><br />If you are planning to run JBoss and Geronimo on the same machine consider to change the default service ports on, at least, one of these servers.</td></tr></table>

<p><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-top" title="top on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Back to Top</a></p>

<h1><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Stepbystepmigration"></a>Step-by-step migration <a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-migration"></a></h1>
<p>In order to migrate the College Fest application to Geronimo you need to replace the jboss-web.xml file with a <b>geronimo-web.xml</b> file which is the Geronimo specific descriptor file. The geronimo-web.xml file is located in the WEB-INF directory withing the college_fest directory structure. The Geronimo deployment plan geronimo-web.xml is illustrated in the following example.</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>The following geronimo-web.xml was generated using the J2G tool.</td></tr></table>

<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>Geronimo specific deployment plan geronimo-web.xml</b></div><div class="codeContent">
<pre class="code-xml">&lt;web-app xmlns=<span class="code-quote">"http://geronimo.apache.org/xml/ns/j2ee/web-1.1"</span> 
         <span class="code-keyword">xmlns:naming</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/naming-1.1"</span> 
         <span class="code-keyword">xmlns:security</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/security-1.1"</span> 
         <span class="code-keyword">xmlns:sys</span>=<span class="code-quote">"http://geronimo.apache.org/xml/ns/deployment-1.1"</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>j2g<span class="code-tag">&lt;/sys:groupId&gt;</span>
      <span class="code-tag">&lt;sys:artifactId&gt;</span>web-module<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>war<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:environment&gt;</span>
  <span class="code-tag">&lt;context-root&gt;</span>college_fest<span class="code-tag">&lt;/context-root&gt;</span>
<span class="code-tag">&lt;/web-app&gt;</span></pre>
</div></div>

<p>Given that College Fest is a very simple application, the Geronimo deployment plan will also be very simple. Remember that this application does not use any database access nor has security configured. While reading other articles in the <b>JBoss to Geronimo</b> migration series, you will notice how the complexity of the deployment plan increases as the sample applications for the different migration scenarios also grow in complexity.</p>

<p>Earlier in this article it was discussed the behavior of the <a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-deploymentTool" title="deploymentTool on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">deployment tool</a>. During the deployment process, you provide to the deployment tool the application module and a deployment plan. The College Fest sample application is so simple that you may choose not to provide any deployment plan and let Geronimo do the deployment with a default set of values (a default context root for example).</p>

<p>Last time you built the College Fest sample application it was configured for ant to use the jboss-build.xml file instead of the default build.xml. The following example shows the content of the default build.xml file.</p>

<div class="code" style="border-style: solid; "><div class="codeHeader" style="border-bottom-style: solid; "><b>build.xml</b></div><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span>?&gt;</span>
<span class="code-tag"><span class="code-comment">&lt;!-- build file for building a war --&gt;</span></span>

<span class="code-tag">&lt;project name=<span class="code-quote">"build"</span> default=<span class="code-quote">"war"</span> basedir=<span class="code-quote">"."</span>&gt;</span>

    <span class="code-tag">&lt;property file=<span class="code-quote">"build.properties"</span>/&gt;</span>
    <span class="code-tag">&lt;property name=<span class="code-quote">"src.dir"</span> value=<span class="code-quote">"src"</span>/&gt;</span>
    <span class="code-tag">&lt;property name=<span class="code-quote">"dest.dir"</span> value=<span class="code-quote">"bin"</span>/&gt;</span>


    <span class="code-tag">&lt;target name=<span class="code-quote">"clean"</span> description=<span class="code-quote">"Delete all generated files."</span>&gt;</span>
        <span class="code-tag">&lt;echo message=<span class="code-quote">"Deleting bin folder"</span> /&gt;</span>
        <span class="code-tag">&lt;delete dir=<span class="code-quote">"bin"</span>/&gt;</span>
    <span class="code-tag">&lt;/target&gt;</span>

      <span class="code-tag">&lt;target name=<span class="code-quote">"compile"</span>&gt;</span>
    	<span class="code-tag">&lt;mkdir dir=<span class="code-quote">"${dest.dir}"</span>/&gt;</span>

        <span class="code-tag">&lt;javac srcdir=<span class="code-quote">"${src.dir}"</span> destdir=<span class="code-quote">"${dest.dir}"</span>&gt;</span>
            <span class="code-tag">&lt;classpath path=<span class="code-quote">"${java.home}/lib/tools.jar"</span>/&gt;</span>
            <span class="code-tag"><span class="code-comment">&lt;!--classpath path=<span class="code-quote">"${j2ee.home}/lib/j2ee.jar"</span>/--&gt;</span></span>
            <span class="code-tag">&lt;classpath path=<span class="code-quote">"${geronimo.home}/repository/org/apache/geronimo/specs/geronimo-servlet_2.5_spec/1.1/geronimo-servlet_2.5_spec-1.1.jar"</span> /&gt;</span>
        <span class="code-tag">&lt;/javac&gt;</span>
    <span class="code-tag">&lt;/target&gt;</span>

    <span class="code-tag">&lt;target name=<span class="code-quote">"war"</span> depends=<span class="code-quote">"compile"</span>&gt;</span>
        <span class="code-tag">&lt;war destfile=<span class="code-quote">"college_fest.war"</span> webxml=<span class="code-quote">"WEB-INF/web.xml"</span>&gt;</span>
            <span class="code-tag">&lt;zipfileset dir=<span class="code-quote">"jsp"</span> prefix=<span class="code-quote">"jsp"</span>/&gt;</span>
            <span class="code-tag">&lt;zipfileset dir=<span class="code-quote">"pix"</span> prefix=<span class="code-quote">"pix"</span>/&gt;</span>   	    
            <span class="code-tag">&lt;classes dir=<span class="code-quote">"${dest.dir}"</span>/&gt;</span>    
            <span class="code-tag">&lt;webinf dir=<span class="code-quote">"WEB-INF"</span> /&gt;</span>
        <span class="code-tag">&lt;/war&gt;</span>
<span class="code-tag">&lt;/target&gt;</span>


<span class="code-tag">&lt;/project&gt;</span></pre>
</div></div>

<p>To build the migrated application run <b>ant</b> from the command line without specifying any additional parameters, a college_fest.war file will be created in the root directory of the College Fest application directory structure.</p>

<p>To delete the generated files for a clean build run <b>ant clean</b> followed by an <b>ant.</b></p>

<p><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-top" title="top on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Back to Top</a></p>

<h2><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Deploythemigratedsampleapplication"></a>Deploy the migrated sample application</h2>
<p>To deploy the migrated College Fest application, make sure the Geronimo server is up and running. </p>

<p>From a command line, change directory to <b><tt>&lt;geronimo_home&gt;/bin</tt></b> and type the following command:</p>

<p><tt>deploy --user system --password manager deploy &lt;college_fest_home&gt;/college_fest.war</tt></p>

<p>Once the application is deployed, open a Web browser and access the following URL:</p>

<p><span class="nobr"><a href="http://localhost:8080/college_fest/" title="Visit page outside Confluence" rel="nofollow">http://localhost:8080/college_fest/<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<p>Repeat the steps you did when <a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-test" title="test on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Testing the application</a> on the JBoss environment.</p>

<p><a href="#JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-top" title="top on JBoss to Geronimo - Servlets and JSPs Migration (Unverified on 2.1)">Back to Top</a></p>

<h1><a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-Summary"></a>Summary <a name="JBosstoGeronimo-ServletsandJSPsMigration%28Unverifiedon2.1%29-summary"></a></h1>
<p>This article has shown you how to migrate a simple Servlet and JSPs application, from JBoss to the Apache Geronimo application server. You followed step-by-step instructions to build the application, deploy and run it, and then migrate it to the Geronimo environment.</p>

<p>Some remarks after reading this article:</p>
<ul>
	<li>Apache Geronimo provides two different Web containers, Jetty and Apache Tomcat.</li>
	<li>You learnt how to use the deployer too for deploying an application in Geronimo.</li>
	<li>Not always a Geronimo deployment plan is needed, if the application does not use resource references you can accept the deployment defaults from Geronimo.</li>
</ul>
</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