camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Camel: Camel JMX (page edited)
Date Wed, 22 Oct 2008 20:06: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/CAMEL">CAMEL</a> :
            <a href="http://cwiki.apache.org/confluence/display/CAMEL/Camel+JMX">Camel JMX</a>
        </span>
    </div>

     <p>
        <a href="http://cwiki.apache.org/confluence/display/CAMEL/Camel+JMX">Camel JMX</a>
        has been edited by             <a href="http://cwiki.apache.org/confluence/display/~hadrian@apache.org">Hadrian Zbarcea</a>
            <span class="smallfont">(Oct 22, 2008)</span>.
     </p>
    
     <p>
                 <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=85697&originalVersion=15&revisedVersion=16">(View changes)</a>
     </p>

    <span class="label">Content:</span><br/>
    <div class="greybox wiki-content"><h2><a name="CamelJMX-CamelJMX"></a>Camel JMX</h2>

<p>Apache Camel has extensive support for JMX to allow you to monitor and control the Camel managed objects a JMX client.</p>

<div>
<ul>
  <li>
<ul>
  <li><a href='#CamelJMX-CamelJMX'>Camel JMX</a>
<ul>
  <li><a href='#CamelJMX-SpringDependency'>Spring Dependency</a></li>
  <li><a href='#CamelJMX-UsingJMXtomanageApacheCamel'>Using JMX to manage Apache Camel</a></li>
  <li><a href='#CamelJMX-DisablingJMXinstrumentationagentinCamel'>Disabling JMX instrumentation agent in Camel</a></li>
  <li><a href='#CamelJMX-LocatingaMBeanServerintheJavaVM'>Locating a MBeanServer in the Java VM</a></li>
  <li><a href='#CamelJMX-CreatingJMXRMIConnectorServer'>Creating JMX RMI Connector Server</a></li>
  <li><a href='#CamelJMX-JMXServiceURL'>JMX Service URL</a></li>
  <li><a href='#CamelJMX-UsingJConsoletomonitorCamel'>Using JConsole to monitor Camel</a></li>
  <li><a href='#CamelJMX-TheSystemPropertiesforCamelJMXsupport'>The SystemProperties for Camel JMX support</a></li>
  <li><a href='#CamelJMX-JMXinsideanApplicationServer'>JMX inside an Application Server</a>
<ul>
  <li><a href='#CamelJMX-JBossAS4'>JBoss AS 4</a></li>
  <li><a href='#CamelJMX-WebSphere'>WebSphere</a></li>
</ul></li>
  <li><a href='#CamelJMX-AdvancedJMXConfiguration'>Advanced JMX Configuration</a>
<ul>
  <li><a href='#CamelJMX-Example%3A'>Example:</a></li>
  <li><a href='#CamelJMX-jmxAgentPropertiesReference'>jmxAgent Properties Reference</a></li>
</ul></li>
</ul></li>
</ul></li>
</ul></div>

<h3><a name="CamelJMX-SpringDependency"></a>Spring Dependency</h3>
<p><b>spring-context.jar</b> is needed on the classpath by Camel to be able to use JMX instrumentation. If this .jar is <b>not</b> on the classpath Camel will fallback to non JMX mode. This situation is logged at <tt>WARN</tt> level using logger name <tt>org.apache.camel.impl.DefaultCamelContext</tt>.</p>

<h3><a name="CamelJMX-UsingJMXtomanageApacheCamel"></a>Using JMX to manage Apache Camel</h3>

<p>By default, JMX instrumentation agent is enabled in Camel which means that Camel runtime creates and registers MBean management objects with a MBeanServer instance in the VM. This allows Camel users instantly obtain insights into how Camel routes perform down to the individual processor's level.</p>

<p>The supported types of management objects are <span class="nobr"><a href="http://activemq.apache.org/camel/maven/camel-core/apidocs/org/apache/camel/management/ManagedEndpoint.html" title="Visit page outside Confluence" rel="nofollow">endpoint <sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>, <span class="nobr"><a href="http://activemq.apache.org/camel/maven/camel-core/apidocs/org/apache/camel/management/ManagedRoute.html" title="Visit page outside Confluence" rel="nofollow">route<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>, <span class="nobr"><a href="http://activemq.apache.org/camel/maven/camel-core/apidocs/org/apache/camel/management/ManagedService.html" title="Visit page outside Confluence" rel="nofollow">service<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>, and <span class="nobr"><a href="http://activemq.apache.org/camel/maven/camel-core/apidocs/org/apache/camel/management/PerformanceCounter.html" title="Visit page outside Confluence" rel="nofollow">processor<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. Some of these management objects also expose lifecycle operations in addition to performance counter attributes.</p>

<p>The <span class="nobr"><a href="http://activemq.apache.org/camel/maven/camel-core/apidocs/org/apache/camel/management/CamelNamingStrategy.html" title="Visit page outside Confluence" rel="nofollow">CamelNamingStrategy<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> is the default naming strategy which builds object names used for MBean registration. By default, <b>org.apache.camel</b> is the domain name for all object names created by CamelNamingStrategy. The domain name of the MBean object can be configured by Java VM system property:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">-Dorg.apache.camel.jmx.mbeanObjectDomainName=your.domain.name</pre>
</div></div>
<p>Or, by adding a <b>jmxAgent</b> element inside the camelContext element in Spring configuration:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camelContext id=<span class="code-quote">"camel"</span> xmlns=<span class="code-quote">"http:<span class="code-comment">//activemq.apache.org/camel/schema/spring"</span>&gt;
</span>  &lt;jmxAgent id=<span class="code-quote">"agent"</span> mbeanObjectDomainName=<span class="code-quote">"your.domain.name"</span>/&gt;
    ...
&lt;/camelContext&gt;</pre>
</div></div>
<p>Spring configuration always takes precedence over system properties when they both present. It is true for all of JMX related configurations.</p>

<h3><a name="CamelJMX-DisablingJMXinstrumentationagentinCamel"></a>Disabling JMX instrumentation agent in Camel</h3>

<p>You can disable JMX instrumentation agent by setting Java VM system property as follow. The property value is treated as boolean.</p>
<div class="code"><div class="codeContent">
<pre class="code-java">-Dorg.apache.camel.jmx.disabled=True</pre>
</div></div>
<p>Or, by adding a <b>jmxAgent</b> element inside the camelContext element in Spring configuration:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camelContext id=<span class="code-quote">"camel"</span> xmlns=<span class="code-quote">"http:<span class="code-comment">//activemq.apache.org/camel/schema/spring"</span>&gt;
</span>  &lt;jmxAgent id=<span class="code-quote">"agent"</span> disabled=<span class="code-quote">"<span class="code-keyword">true</span>"</span>/&gt;
    ...
&lt;/camelContext&gt;</pre>
</div></div>

<h3><a name="CamelJMX-LocatingaMBeanServerintheJavaVM"></a>Locating a MBeanServer in the Java VM</h3>

<p>Each CamelContext can have an instance of <span class="nobr"><a href="http://activemq.apache.org/camel/maven/camel-core/apidocs/org/apache/camel/spi/InstrumentationAgent.html" title="Visit page outside Confluence" rel="nofollow">InstrumentationAgent<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> wrapped insider the <span class="nobr"><a href="http://activemq.apache.org/camel/maven/camel-core/apidocs/org/apache/camel/management/InstrumentationLifecycleStrategy.html" title="Visit page outside Confluence" rel="nofollow">InstrumentationLifecycleStrategy<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. The InstrumentationAgent is the object that interfaces with a <span class="nobr"><a href="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/MBeanServer.html" title="Visit page outside Confluence" rel="nofollow">MBeanServer<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> to register/unregister Camel MBeans. Multiple CamelContexts/InstrumentationAgents can/should share a MBeanServer. By default, Camel runtime picks the first MBeanServer returned by <span class="nobr"><a href="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/MBeanServerFactory.html#findMBeanServer(java.lang.String)" title="Visit page outside Confluence" rel="nofollow">MBeanServerFactory.findMBeanServer method<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> that matches the default domain name of <b>org.apache.camel</b>.&nbsp; You may want to change the default domain name to match the MBeanServer instance that you are already using in your application.&nbsp; Especially, if your MBeanServer is attached to a JMX connector server, you will not need to create a connector server in Camel.</p>

<p>You can configure the matching default domain name via system property.</p>
<div class="code"><div class="codeContent">
<pre class="code-java">-Dorg.apache.camel.jmx.mbeanServerDefaultDomain=&lt;your.domain.name&gt;</pre>
</div></div>
<p>Or, by adding a <b>jmxAgent</b> element inside the camelContext element in Spring configuration:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camelContext id=<span class="code-quote">"camel"</span> xmlns=<span class="code-quote">"http:<span class="code-comment">//activemq.apache.org/camel/schema/spring"</span>&gt;
</span>  &lt;jmxAgent id=<span class="code-quote">"agent"</span> mbeanServerDefaultDomain=<span class="code-quote">"your.domain.name"</span>/&gt;
    ...
&lt;/camelContext&gt;</pre>
</div></div>
<p>If no matching MBeanServer can be found, a new one is created and the new MBeanServer's default domain name is set according to the default and configuration as mentioned above.</p>

<p>It is also possible to use the <span class="nobr"><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/ManagementFactory.html#getPlatformMBeanServer()" title="Visit page outside Confluence" rel="nofollow">PlatformMBeanServer<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> when it is desirable to manage JVM MBeans&nbsp;by setting the system property.&nbsp; The MBeanServer default domain name configuration is ignored as it is not applicable.&nbsp; <b>Starting in next release (1.5), the default value of usePlatformMBeanServer will be changed to "True".&nbsp; You can set the property to "False" to disable using platform MBean server.</b></p>
<div class="code"><div class="codeContent">
<pre class="code-java">-Dorg.apache.camel.jmx.usePlatformMBeanServer=True</pre>
</div></div>
<p>Or, by adding a <b>jmxAgent</b> element inside the camelContext element in Spring configuration:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camelContext id=<span class="code-quote">"camel"</span> xmlns=<span class="code-quote">"http:<span class="code-comment">//activemq.apache.org/camel/schema/spring"</span>&gt;
</span>  &lt;jmxAgent id=<span class="code-quote">"agent"</span> usePlatformMBeanServer=<span class="code-quote">"<span class="code-keyword">true</span>"</span>/&gt;
    ...
&lt;/camelContext&gt;</pre>
</div></div>

<h3><a name="CamelJMX-CreatingJMXRMIConnectorServer"></a>Creating JMX RMI Connector Server</h3>

<p>JMX connector server enables MBeans to be remotely managed by a JMX client such as JConsole.&nbsp; Camel JMX RMI connector server can be optionally turned on by setting system property and the MBeanServer used by Camel is attached to that connector server.</p>
<div class="code"><div class="codeContent">
<pre class="code-java">-Dorg.apache.camel.jmx.createRmiConnector=True</pre>
</div></div>
<p>Or, by adding a <b>jmxAgent</b> element inside the camelContext element in Spring configuration:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camelContext id=<span class="code-quote">"camel"</span> xmlns=<span class="code-quote">"http:<span class="code-comment">//activemq.apache.org/camel/schema/spring"</span>&gt;
</span>  &lt;jmxAgent id=<span class="code-quote">"agent"</span> createConnector=<span class="code-quote">"<span class="code-keyword">true</span>"</span>/&gt;
    ...
&lt;/camelContext&gt;</pre>
</div></div>

<h3><a name="CamelJMX-JMXServiceURL"></a>JMX Service URL</h3>

<p>The default JMX Service URL has the format:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">service:jmx:rmi:<span class="code-comment">///jndi/rmi://localhost:&lt;registryPort&gt;/&lt;serviceUrlPath&gt;</span></pre>
</div></div>
<p><em>registryPort</em> is the RMI registry port and the default value is <b>1099</b>.</p>

<p>You can set the RMI registry port by system property.</p>
<div class="code"><div class="codeContent">
<pre class="code-java">-Dorg.apache.camel.jmx.rmiConnector.registryPort=&lt;port number&gt;</pre>
</div></div>
<p>Or, by adding a <b>jmxAgent</b> element inside the camelContext element in Spring configuration:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camelContext id=<span class="code-quote">"camel"</span> xmlns=<span class="code-quote">"http:<span class="code-comment">//activemq.apache.org/camel/schema/spring"</span>&gt;
</span>  &lt;jmxAgent id=<span class="code-quote">"agent"</span> createConnector=<span class="code-quote">"<span class="code-keyword">true</span>"</span> registryPort=<span class="code-quote">"port number"</span>/&gt;
    ...
&lt;/camelContext&gt;</pre>
</div></div>
<p><em>serviceUrlPath</em> is the path name in the URL and the default value is <b>/jmxrmi/camel</b>.</p>

<p>You can set the service URL path by system property.</p>
<div class="code"><div class="codeContent">
<pre class="code-java">-Dorg.apache.camel.jmx.serviceUrlPath=&lt;path&gt;</pre>
</div></div>
<p>Or, by adding a <b>jmxAgent</b> element inside the camelContext element in Spring configuration:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camelContext id=<span class="code-quote">"camel"</span> xmlns=<span class="code-quote">"http:<span class="code-comment">//activemq.apache.org/camel/schema/spring"</span>&gt;
</span>  &lt;jmxAgent id=<span class="code-quote">"agent"</span> createConnector=<span class="code-quote">"<span class="code-keyword">true</span>"</span> serviceUrlPath=<span class="code-quote">"path"</span>/&gt;
    ...
&lt;/camelContext&gt;</pre>
</div></div>
<p>By default, RMI server object listens on a dynamically generated port which can be a problem for connection established through a firewall. In such situation, RMI connection port can be explicitly set by the system property.</p>
<div class="code"><div class="codeContent">
<pre class="code-java">-Dorg.apache.camel.jmx.rmiConnector.connectorPort=&lt;port number&gt;</pre>
</div></div>
<p>Or, by adding a <b>jmxAgent</b> element inside the camelContext element in Spring configuration:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camelContext id=<span class="code-quote">"camel"</span> xmlns=<span class="code-quote">"http:<span class="code-comment">//activemq.apache.org/camel/schema/spring"</span>&gt;
</span>  &lt;jmxAgent id=<span class="code-quote">"agent"</span> createConnector=<span class="code-quote">"<span class="code-keyword">true</span>"</span> connectorPort=<span class="code-quote">"port number"</span>/&gt;
    ...
&lt;/camelContext&gt;</pre>
</div></div>
<p>When the connector port option is set, the JMX service URL will become:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">service:jmx:rmi:<span class="code-comment">//localhost:&lt;connectorPort&gt;/jndi/rmi://localhost:&lt;registryPort&gt;/&lt;serviceUrlPath&gt;</span></pre>
</div></div>

<h3><a name="CamelJMX-UsingJConsoletomonitorCamel"></a>Using JConsole to monitor Camel</h3>

<p>The CamelContext should appear in the list of local connections, if you are running JConsole on the same host as Camel.</p>

<p>To connect to a remote Camel instance, or if the local process does not show up, use Remote Process option, and enter an URL. Here is an example localhost URL:</p>
<div class="code"><div class="codeContent">
<pre class="code-java">service:jmx:rmi:<span class="code-comment">///jndi/rmi://localhost:1099/jmxrmi/camel</span></pre>
</div></div>
<p>Using the Apache Camel which Jconsole<br/>
<a href='http://cwiki.apache.org/confluence/download/attachments/85697/camel-jmx.png' target='camel-jmx.png' onClick='window.open("http://cwiki.apache.org/confluence/download/attachments/85697/camel-jmx.png", "camel-jmx.png", "height=699,width=930,menubar=no,status=no,toolbar=no"); return false;'><img src='/confluence/download/thumbnails/85697/camel-jmx.png' title="updated version after fix for camel-865" align="absmiddle" border="0" /></a><br/>
&nbsp;</p>

<h3><a name="CamelJMX-TheSystemPropertiesforCamelJMXsupport"></a>The SystemProperties for Camel JMX support</h3>

<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Property Name </th>
<th class='confluenceTh'> value </th>
<th class='confluenceTh'> Description </th>
</tr>
<tr>
<td class='confluenceTd'> org.apache.camel.jmx </td>
<td class='confluenceTd'> true or false </td>
<td class='confluenceTd'> if is true , it will enable jmx feature in Camel </td>
</tr>
<tr>
<td class='confluenceTd'> org.apache.camel.jmx.usePlatformMBeanServer </td>
<td class='confluenceTd'> true or false </td>
<td class='confluenceTd'> if is true, Camel JMX agent will use the platformMBeanServer which holds the JVM's memory, cpu and some other management information </td>
</tr>
</tbody></table>

<h3><a name="CamelJMX-JMXinsideanApplicationServer"></a>JMX inside an Application Server</h3>

<h4><a name="CamelJMX-JBossAS4"></a>JBoss AS 4</h4>

<p>By default JBoss creates its own MBean server.  To allow Camel to expose to the same server follow these steps:</p>

<p>1. Tell Camel to use the Platform MBean Server (This defaults to true in Camel 1.5)</p>
<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camel:camelContext id=<span class="code-quote">"camelContext"</span>&gt;
  &lt;camel:jmxAgent id=<span class="code-quote">"jmxAgent"</span> mbeanObjectDomainName=<span class="code-quote">"org.yourname"</span> usePlatformMBeanServer=<span class="code-quote">"<span class="code-keyword">true</span>"</span>  /&gt;
&lt;/camel:camelContext&gt;</pre>
</div></div>

<p>2. Alter your JBoss instance to use the Platform MBean server.<br/>
Add the following property to your JAVA_OPTS by editing run.sh or run.conf {{ -Djboss.platform.mbeanserver }} See <span class="nobr"><a href="http://wiki.jboss.org/wiki/JBossMBeansInJConsole" title="Visit page outside Confluence" rel="nofollow">http://wiki.jboss.org/wiki/JBossMBeansInJConsole<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<h4><a name="CamelJMX-WebSphere"></a>WebSphere</h4>

<p>Alter the mbeanServerDefaultDomain to be "WebSphere"</p>

<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camel:jmxAgent id=<span class="code-quote">"agent"</span> createConnector=<span class="code-quote">"<span class="code-keyword">true</span>"</span> mbeanObjectDomainName=<span class="code-quote">"org.yourname"</span> mbeanServerDefaultDomain=<span class="code-quote">"WebSphere"</span>/&gt;</pre>
</div></div>


<h3><a name="CamelJMX-AdvancedJMXConfiguration"></a>Advanced JMX Configuration</h3>

<p>The spring configuration file allows you to configure how Camel is exposed to JMX for management. In some cases, you could specify more information here, like the connector's port or the path name.</p>

<h4><a name="CamelJMX-Example%3A"></a>Example:</h4>

<div class="code"><div class="codeContent">
<pre class="code-java">&lt;camelContext id=<span class="code-quote">"camel"</span> xmlns=<span class="code-quote">"http:<span class="code-comment">//activemq.apache.org/camel/schema/spring"</span>&gt;
</span>  &lt;jmxAgent id=<span class="code-quote">"agent"</span> createConnector=<span class="code-quote">"<span class="code-keyword">true</span>"</span> registryPort=<span class="code-quote">"2000"</span> mbeanServerDefaultDomain=<span class="code-quote">"org.apache.camel.test"</span>/&gt;
    &lt;route&gt;
      &lt;from uri=<span class="code-quote">"seda:start"</span>/&gt;
      &lt;to uri=<span class="code-quote">"mock:result"</span>/&gt;
    &lt;/route&gt;
&lt;/camelContext&gt;</pre>
</div></div>
<p>If you wish to change the Java 5 JMX settings you can use various <span class="nobr"><a href="http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#properties" title="Visit page outside Confluence" rel="nofollow">JMX system properties<sup><img class="rendericon" src="/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>

<p>For example you can enable remote JMX connections to the Sun JMX connector, via setting the following environment variable (using <b>set</b> or <b>export</b> depending on your platform). These settings only configure the Sun JMX connector within Java 1.5+, not the JMX connector that Camel creates by default.</p>
<div class="code"><div class="codeContent">
<pre class="code-java">SUNJMX=-Dcom.sun.management.jmxremote=<span class="code-keyword">true</span> -Dcom.sun.management.jmxremote.port=1616 \
-Dcom.sun.management.jmxremote.authenticate=<span class="code-keyword">false</span> -Dcom.sun.management.jmxremote.ssl=<span class="code-keyword">false</span></pre>
</div></div>
<p>(The SUNJMX environment variable is simple used by the startup script for Camel, as additional startup parameters for the JVM. If you start Camel directly, you'll have to pass these parameters yourself.)</p>

<h4><a name="CamelJMX-jmxAgentPropertiesReference"></a>jmxAgent Properties Reference</h4>

<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Spring property </th>
<th class='confluenceTh'> System property </th>
<th class='confluenceTh'> Default Value </th>
<th class='confluenceTh'> Description </th>
</tr>
<tr>
<td class='confluenceTd'> id </td>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'>&nbsp;</td>
<td class='confluenceTd'> The JMX agent name, and it is not optional </td>
</tr>
<tr>
<td class='confluenceTd'> usePlatformMBeanServer </td>
<td class='confluenceTd'> org.apache.camel.jmx.usePlatformMBeanServer </td>
<td class='confluenceTd'> false, true - Release 1.5 or later </td>
<td class='confluenceTd'> If true then it will use the plateform MBean server form the JVM </td>
</tr>
<tr>
<td class='confluenceTd'> mbeanServerDefaultDomain </td>
<td class='confluenceTd'> org.apache.camel.jmx.mbeanServerDefaultDomain </td>
<td class='confluenceTd'> org.apache.camel </td>
<td class='confluenceTd'> The default JMX domain of the MBeanServer </td>
</tr>
<tr>
<td class='confluenceTd'> mbeanObjectDomainName </td>
<td class='confluenceTd'> org.apache.camel.jmx.mbeanObjectDomainName </td>
<td class='confluenceTd'> org.apache.camel </td>
<td class='confluenceTd'> The JMX domain that all objects names will use </td>
</tr>
<tr>
<td class='confluenceTd'> createConnector </td>
<td class='confluenceTd'> org.apache.camel.jmx.createRmiConnect </td>
<td class='confluenceTd'> false </td>
<td class='confluenceTd'> If we should create a JMX connector (to allow remote management) for the MBeanServer </td>
</tr>
<tr>
<td class='confluenceTd'> registryPort </td>
<td class='confluenceTd'> org.apache.camel.jmx.rmiConnector.registryPort </td>
<td class='confluenceTd'> 1099 </td>
<td class='confluenceTd'> The port that the JMX RMI registry will use </td>
</tr>
<tr>
<td class='confluenceTd'> connectorPort </td>
<td class='confluenceTd'> org.apache.camel.jmx.rmiConnector.connectorPort </td>
<td class='confluenceTd'> &#45;1 (dynamic) </td>
<td class='confluenceTd'> The port that the JMX RMI server will use </td>
</tr>
<tr>
<td class='confluenceTd'> serviceUrlPath </td>
<td class='confluenceTd'> org.apache.camel.jmx.serviceUrlPath </td>
<td class='confluenceTd'> /jmxrmi/camel </td>
<td class='confluenceTd'> The path that JMX connector will be registered under </td>
</tr>
</tbody></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