git-svn-id: https://svn.apache.org/repos/asf/incubator/felix/trunk@423924 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/about.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/about.xsl
new file mode 100644
index 0000000..4333217
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/about.xsl
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 	version="1.0">
+	<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
+	<xsl:include href="common.xsl"/>
+	<xsl:include href="xalan-ext.xsl"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">about.title</xsl:param>
+
+	<!-- Main template -->
+	<xsl:template match="/MBean">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr width="100%">
+						<td>
+						<xsl:call-template name="toprow"/>
+						<xsl:call-template name="tabs">
+							<xsl:with-param name="selection">about</xsl:with-param>
+						</xsl:call-template>
+							<table width="100%" cellpadding="0" cellspacing="0" border="0">
+								<tr class="about">
+									<td colspan="2">
+										<h1 align="center" class="about">
+											<xsl:variable name="str.url">
+												<xsl:call-template name="str">
+													<xsl:with-param name="id">about.main.url</xsl:with-param>
+												</xsl:call-template>
+											</xsl:variable>
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">about.main.title</xsl:with-param>
+												<xsl:with-param name="p0"><a href="{$str.url}">MX4J</a></xsl:with-param>
+											</xsl:call-template>
+										</h1>
+									</td>
+								</tr>
+								<tr class="about">
+									<td colspan="2">
+										<h2 align="center" class="about">
+											<xsl:variable name="str.url">
+												<xsl:call-template name="str">
+													<xsl:with-param name="id">about.main.url2</xsl:with-param>
+												</xsl:call-template>
+											</xsl:variable>
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">about.main.line1</xsl:with-param>
+												<xsl:with-param name="p0"><a href="{$str.url}">JMX</a></xsl:with-param>
+											</xsl:call-template>
+										</h2>
+									</td>
+								</tr>
+								<tr class="about">
+									<td>
+										<h3 align="right" class="about">
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">about.main.implementation</xsl:with-param>
+											</xsl:call-template>
+										</h3>
+									</td>
+									<td>
+										<h3 align="left" class="about">
+											<xsl:value-of select="./Attribute[@name='ImplementationName']/@value"/>
+										</h3>
+									</td>
+								</tr>
+								<tr class="about">
+									<td>
+										<h3 align="right" class="about">
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">about.main.implementationversion</xsl:with-param>
+											</xsl:call-template>
+										</h3>
+									</td>
+									<td>
+										<h3 align="left" class="about">
+											<xsl:value-of select="./Attribute[@name='ImplementationVersion']/@value"/>
+										</h3>
+									</td>
+								</tr>
+								<tr class="about">
+									<td>
+										<h3 align="right" class="about">
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">about.main.serverid</xsl:with-param>
+											</xsl:call-template>
+										</h3>
+									</td>
+									<td>
+										<h3 align="left" class="about">
+											<xsl:value-of select="./Attribute[@name='MBeanServerId']/@value"/>
+										</h3>
+									</td>
+								</tr>
+							</table>
+						<xsl:call-template name="bottom"/>
+						</td>
+					</tr>
+				</table>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/common.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/common.xsl
new file mode 100644
index 0000000..ab6f754
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/common.xsl
@@ -0,0 +1,441 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																																																										-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<!-- Import xalan extensions -->
+		<xsl:import href="xalan-ext.xsl" />
+
+	<!-- Defin string variables -->
+	<xsl:param name="request.locale">en</xsl:param>
+
+	<xsl:variable name="strings" select="document(concat('strings_', $request.locale, '.xml'))" />
+
+	<!-- Common head template -->
+	<xsl:template name="head">
+		<xsl:if test="$head.title">
+			<title>
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">
+						<xsl:value-of select="$head.title" />
+					</xsl:with-param>
+				</xsl:call-template>
+			</title>
+		</xsl:if>
+
+		<xsl:if test="$html.stylesheet">
+			<link rel="stylesheet" href="{$html.stylesheet}"
+			type="{$html.stylesheet.type}" />
+		</xsl:if>
+
+		<meta http-equiv="Expires" content ="0"/>
+		<meta http-equiv="Pragma" content="no-cache"/>
+		<meta http-equiv="Cache-Control" content="no-cache"/>
+		<meta name="generator" content="MX4J HttpAdaptor, JMX, JMX implementation" />
+
+	</xsl:template>
+
+	<!-- Common title template -->
+	<xsl:template name="toprow">
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td class="darker" colspan="2"/>
+			</tr>
+
+			<tr>
+				<td class="topheading">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">common.title</xsl:with-param>
+					</xsl:call-template>
+					<br/>
+					<div class="subtitle">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">common.subtitle</xsl:with-param>
+					</xsl:call-template>
+					</div>
+				</td>
+
+				<td class="topheading" align="right">
+					<xsl:variable name="str.logo">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.logo</xsl:with-param>
+						</xsl:call-template>
+					</xsl:variable>
+					<xsl:variable name="str.logo.gif">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.logo.gif</xsl:with-param>
+							</xsl:call-template>
+					</xsl:variable>
+					<xsl:variable name="str.site">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.site</xsl:with-param>
+						</xsl:call-template>
+					</xsl:variable>
+					<xsl:variable name="str.logo.width">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.logo.width</xsl:with-param>
+						</xsl:call-template>
+					</xsl:variable>
+					<xsl:variable name="str.logo.height">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.logo.height</xsl:with-param>
+						</xsl:call-template>
+					</xsl:variable>
+					<a href="http://{$str.site}"><img src="{$str.logo.gif}" width="{$str.logo.width}" height="{$str.logo.height}" border="0" alt="{$str.logo}" />
+					</a>
+				</td>
+			</tr>
+
+			<tr>
+				<td class="darker" colspan="2" />
+			</tr>
+		</table>
+
+		<br />
+	</xsl:template>
+
+	<!-- Common bottom template -->
+	<xsl:template name="bottom">
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td class="fronttab">&#160;</td>
+			</tr>
+
+			<tr>
+				<td class="darker" />
+			</tr>
+
+			<tr>
+				<td>
+					<div align="center" class="footer">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.bottom.banner</xsl:with-param>
+							<xsl:with-param name="p0">
+								<a href="http://mx4j.sourceforge.net">MX4J</a>
+							</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+			</tr>
+		</table>
+	</xsl:template>
+
+	<!-- Common tabs template -->
+	<xsl:template name="tabs">
+		<xsl:param name="selection" select="." />
+
+		<xsl:variable name="server.class">
+			<xsl:choose>
+				<xsl:when test="$selection='server'">fronttab</xsl:when>
+				<xsl:otherwise>backtab</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+
+		<xsl:variable name="timer.class">
+			<xsl:choose>
+				<xsl:when test="$selection='timer'">fronttab</xsl:when>
+				<xsl:otherwise>backtab</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+
+		<xsl:variable name="mbean.class">
+			<xsl:choose>
+				<xsl:when test="$selection='mbean'">fronttab</xsl:when>
+				<xsl:otherwise>backtab</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+
+		<xsl:variable name="monitor.class">
+			<xsl:choose>
+				<xsl:when test="$selection='monitor'">fronttab</xsl:when>
+				<xsl:otherwise>backtab</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+
+		<xsl:variable name="relation.class">
+			<xsl:choose>
+				<xsl:when test="$selection='relation'">fronttab</xsl:when>
+				<xsl:otherwise>backtab</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+
+		<xsl:variable name="mlet.class">
+			<xsl:choose>
+				<xsl:when test="$selection='mlet'">fronttab</xsl:when>
+				<xsl:otherwise>backtab</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+
+		<xsl:variable name="about.class">
+			<xsl:choose>
+				<xsl:when test="$selection='about'">fronttab</xsl:when>
+				<xsl:otherwise>backtab</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+
+		<table cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td class="{$server.class}">
+					<xsl:if test="not ($selection='server')">
+						<a href="/serverbydomain" class="tabs">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">common.tabs.serverview</xsl:with-param>
+							</xsl:call-template>
+						</a>
+					</xsl:if>
+
+					<xsl:if test="$selection='server'">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.tabs.serverview</xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+				</td>
+
+				<td width="2"/>
+
+				<td class="{$mbean.class}">
+					<a href="/empty?template=emptymbean" class="tabs">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.tabs.mbeanview</xsl:with-param>
+						</xsl:call-template>
+					</a>
+				</td>
+
+				<td width="2"/>
+
+				<td class="{$timer.class}">
+					<a href="/serverbydomain?instanceof=javax.management.timer.Timer&amp;template=timer" class="tabs">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.tabs.timerview</xsl:with-param>
+						</xsl:call-template>
+					</a>
+				</td>
+
+				<td width="2"/>
+
+				<td class="{$monitor.class}">
+					<a href="/serverbydomain?instanceof=javax.management.monitor.Monitor&amp;template=monitor" class="tabs">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.tabs.monitorview</xsl:with-param>
+						</xsl:call-template>
+					</a>
+				</td>
+
+				<td width="2"/>
+
+				<td class="{$relation.class}">
+					<a href="/relation?instanceof=javax.management.relation.Relation&amp;template=relation" class="tabs">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.tabs.relationview</xsl:with-param>
+						</xsl:call-template>
+					</a>
+				</td>
+
+				<td width="2"/>
+
+				<td class="{$mlet.class}">
+					<a href="/serverbydomain?instanceof=javax.management.loading.MLetMBean&amp;template=mlet" class="tabs">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.tabs.mletview</xsl:with-param>
+						</xsl:call-template>
+					</a>
+				</td>
+
+				<td width="2"/>
+
+				<td class="{$about.class}">
+					<a href="/mbean?objectname=JMImplementation%3Atype%3DMBeanServerDelegate&amp;template=about" class="tabs">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">common.tabs.about</xsl:with-param>
+						</xsl:call-template>
+					</a>
+				</td>
+			</tr>
+		</table>
+	</xsl:template>
+
+	<xsl:template name="serverview">
+		<tr>
+			<td class="darkline" align="right">
+				<a href="/">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">common.serverview.return</xsl:with-param>
+					</xsl:call-template>
+				</a>
+			</td>
+		</tr>
+	</xsl:template>
+
+	<xsl:template name="mbeanview">
+		<xsl:param name="objectname" />
+		<xsl:param name="colspan">1</xsl:param>
+		<xsl:param name="text">common.mbeanview.return</xsl:param>
+
+		<tr>
+			<td class="darkline" align="right" colspan="{$colspan}">
+				<xsl:variable name="objectname-encode">
+					<xsl:call-template name="uri-encode">
+						<xsl:with-param name="uri" select="$objectname" />
+					</xsl:call-template>
+				</xsl:variable>
+
+				<a href="/mbean?objectname={$objectname-encode}">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id"><xsl:value-of select="$text" /></xsl:with-param>
+					</xsl:call-template>
+				</a>
+			</td>
+		</tr>
+	</xsl:template>
+
+	<xsl:template name="aggregation-navigation">
+		<xsl:param name="url"/>
+		<xsl:param name="total"/>
+		<xsl:param name="step"/>
+		<xsl:param name="start"/>
+		<xsl:param name="str.prefix">common</xsl:param>
+
+		<xsl:if test="$total&gt;$step">
+			<xsl:variable name="isfirst">
+				<xsl:choose>
+					<xsl:when test='$start=0'>true</xsl:when>
+					<xsl:when test='$start&gt;0'>false</xsl:when>
+				</xsl:choose>
+			</xsl:variable>
+			<xsl:variable name="islast">
+				<xsl:choose>
+					<xsl:when test='$total&lt;=($step + $start)'>true</xsl:when>
+					<xsl:otherwise>false</xsl:otherwise>
+				</xsl:choose>
+			</xsl:variable>
+			<tr><td/></tr>
+			<tr><td>
+				<xsl:choose>
+					<xsl:when test="$isfirst='false'">
+					<a href="{$url}&amp;start=0">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id"><xsl:value-of select="concat($str.prefix, '.navigation.first')"/></xsl:with-param>
+						</xsl:call-template>
+					</a>
+					</xsl:when>
+					<xsl:otherwise>
+						<xsl:call-template name="str">
+								<xsl:with-param name="id"><xsl:value-of select="concat($str.prefix, '.navigation.first')"/></xsl:with-param>
+							</xsl:call-template>
+					</xsl:otherwise>
+				</xsl:choose>
+				 -
+				<xsl:choose>
+					<xsl:when test="$isfirst='false'">
+						<xsl:variable name="previndex" select="($start - $step)"/>
+						<a href="{$url}&amp;start={$previndex}">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id"><xsl:value-of select="concat($str.prefix, '.navigation.previous')"/></xsl:with-param>
+						</xsl:call-template>
+						</a>
+					</xsl:when>
+					<xsl:otherwise>
+						<xsl:call-template name="str">
+							<xsl:with-param name="id"><xsl:value-of select="concat($str.prefix, '.navigation.previous')"/></xsl:with-param>
+						</xsl:call-template>
+					</xsl:otherwise>
+				</xsl:choose>
+				 -
+				<xsl:choose>
+					<xsl:when test="$islast='false'">
+						<xsl:variable name="nextindex" select="($start + $step)"/>
+						<a href="{$url}&amp;start={$nextindex}">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id"><xsl:value-of select="concat($str.prefix, '.navigation.next')"/></xsl:with-param>
+							</xsl:call-template>
+						</a>
+					</xsl:when>
+					<xsl:otherwise>
+						<xsl:call-template name="str">
+							<xsl:with-param name="id"><xsl:value-of select="concat($str.prefix, '.navigation.next')"/></xsl:with-param>
+						</xsl:call-template>
+					</xsl:otherwise>
+				</xsl:choose>
+				 -
+				<xsl:choose>
+					<xsl:when test="$islast='false'">
+						<xsl:variable name="lastindex" select="($total - ($total mod $step))"/>
+						<a href="{$url}&amp;start={$lastindex}">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id"><xsl:value-of select="concat($str.prefix, '.navigation.last')"/></xsl:with-param>
+							</xsl:call-template>
+						</a>
+					</xsl:when>
+					<xsl:otherwise>
+						<xsl:call-template name="str">
+							<xsl:with-param name="id"><xsl:value-of select="concat($str.prefix, '.navigation.last')"/></xsl:with-param>
+						</xsl:call-template>
+					</xsl:otherwise>
+				</xsl:choose>
+			</td>
+			</tr>
+		</xsl:if>
+	</xsl:template>
+
+	<!-- Finds a string in the strings file by id. It can replace two params -->
+	<xsl:template name="str">
+		<xsl:param name="id"/>
+		<xsl:param name="p0"/>
+		<xsl:param name="p1"/>
+
+		<xsl:variable name="str" select="$strings//str[@id=$id]" />
+
+		<!-- This is a bit lame, should be improved -->
+		<xsl:variable name="temp">
+			<xsl:call-template name="replace-param">
+				<xsl:with-param name="text" select="$str" />
+				<xsl:with-param name="paramText">{0}</xsl:with-param>
+				<xsl:with-param name="paramValue">
+					<xsl:copy-of select="$p0" />
+				</xsl:with-param>
+			</xsl:call-template>
+		</xsl:variable>
+		<xsl:choose>
+			<xsl:when test="$p1">
+				<xsl:call-template name="replace-param">
+					<xsl:with-param name="text" select="$temp" />
+					<xsl:with-param name="paramText">{1}</xsl:with-param>
+					<xsl:with-param name="paramValue">
+						<xsl:copy-of select="$p1" />
+					</xsl:with-param>
+				</xsl:call-template>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:copy-of select="$temp"/>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<!-- Replaces paramText by paramValue in text -->
+	<xsl:template name="replace-param">
+		<xsl:param name="text"/>
+		<xsl:param name="paramText"/>
+		<xsl:param name="paramValue"/>
+
+		<xsl:choose>
+			<xsl:when test="contains($text, $paramText)">
+				<xsl:copy-of select="substring-before($text, $paramText)" />
+				<xsl:copy-of select="$paramValue" />
+				<xsl:copy-of select="substring-after($text, $paramText)" />
+			</xsl:when>
+
+			<xsl:otherwise>
+					<xsl:value-of select="$text" />
+			</xsl:otherwise>
+		</xsl:choose>
+</xsl:template>
+</xsl:stylesheet>
+
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/constructors.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/constructors.xsl
new file mode 100644
index 0000000..60dfad6
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/constructors.xsl
@@ -0,0 +1,233 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">constructors.title</xsl:param>
+	<xsl:include href="common.xsl"/>
+	<xsl:include href="mbean_attributes.xsl"/>
+
+	<xsl:param name="request.objectname"/>
+
+	<!-- Constructor's parameters tempalte -->
+	<xsl:template name="parameters" match="Parameter">
+		<xsl:param name="class"/>
+
+		<tr>
+			<td colspan="3">
+				<p class="darklinebottom">
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">constructors.parameters.title</xsl:with-param>
+				</xsl:call-template>
+				</p>
+			</td>
+		</tr>
+		<tr class="darkline">
+			<td width="3%">
+				<div class="tableheader">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">constructors.parameters.id</xsl:with-param>
+					</xsl:call-template>
+				</div>
+			</td>
+			<td>
+				<div class="tableheader">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">constructors.parameters.type</xsl:with-param>
+					</xsl:call-template>
+				</div>
+			</td>
+			<td align="right">
+				<div class="tableheader">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">constructors.parameters.value</xsl:with-param>
+					</xsl:call-template>
+				</div>
+			</td>
+		</tr>
+		<xsl:for-each select="Parameter">
+			<xsl:sort data-type="text" order="ascending" select="@id"/>
+			<xsl:variable name="type.id" select="concat('type', position()-1)"/>
+			<xsl:variable name="name.id" select="concat('value', position()-1)"/>
+			<xsl:variable name="type" select="@type"/>
+			<tr class="{$class}">
+				<td align="left" class="constructorrow">
+					<div align="left"><xsl:value-of select="@id"/></div>
+				</td>
+				<td align="left" class="constructorrow">
+					<xsl:value-of select="@type"/>
+				</td>
+				<td align="right" width="15%" class="constructorrow">
+					<xsl:choose>
+						<xsl:when test="@type='java.lang.String'
+							or @type='java.lang.Double'
+							or @type='java.lang.Short'
+							or @type='java.lang.Integer'
+							or @type='java.lang.Long'
+							or @type='java.lang.Float'
+							or @type='java.lang.Byte'
+							or @type='java.lang.Character'
+							or @type='java.lang.Boolean'
+							or @type='java.lang.Number'
+							or @type='javax.management.ObjectName'
+							or @type='int'
+							or @type='long'
+							or @type='short'
+							or @type='boolean'
+							or @type='byte'
+							or @type='char'
+							or @type='double'
+							or @type='float'">
+							<xsl:attribute name="valid">
+								true
+							</xsl:attribute>
+						<xsl:call-template name="raw-input">
+							<xsl:with-param name="name" select="$name.id"/>
+							<xsl:with-param name="type" select="$type"/>
+							<xsl:with-param name="value"/>
+							<xsl:with-param name="strinit">false</xsl:with-param>
+						</xsl:call-template>
+						</xsl:when>
+						<xsl:when test="@strinit='true'">
+							<xsl:attribute name="valid">true</xsl:attribute>
+							<xsl:call-template name="raw-input">
+								<xsl:with-param name="name" select="$name.id"/>
+								<xsl:with-param name="type" select="$type"/>
+								<xsl:with-param name="value"/>
+								<xsl:with-param name="strinit">true</xsl:with-param>
+							</xsl:call-template>
+						</xsl:when>
+						<xsl:otherwise>
+							<xsl:attribute name="valid">
+								false
+							</xsl:attribute>
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">constructors.parameters.unknowntype</xsl:with-param>
+							</xsl:call-template>
+						</xsl:otherwise>
+					</xsl:choose>
+					<input type="hidden" name="{$type.id}" value="{$type}"/>
+				</td>
+				</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- Template for a Constructor node -->
+	<xsl:template match="Constructor" name="constructors">
+		<xsl:for-each select="//Constructor">
+			<form action="create">
+			<table width="100%" cellpadding="0" cellspacing="0" border="0">
+
+					<xsl:variable name="classtype">
+						<xsl:if test="(position() mod 2)=1">clearline</xsl:if>
+						<xsl:if test="(position() mod 2)=0">darkline</xsl:if>
+					</xsl:variable>
+					<xsl:variable name="hasParameters">
+						<xsl:if test="count(Parameter)>0">true</xsl:if>
+						<xsl:if test="count(Parameter)=0">false</xsl:if>
+					</xsl:variable>
+					<xsl:variable name="classname"><xsl:value-of select="@name"/></xsl:variable>
+				<tr class="{$classtype}">
+					<td valign="top" class="constructorrow">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">constructors.constructors.intro</xsl:with-param>
+							<xsl:with-param name="p0"><xsl:value-of select="@name"/></xsl:with-param>
+						</xsl:call-template>
+					</td>
+				</tr>
+				<tr class="{$classtype}">
+					<td>
+						<table cellpadding="0" width="100%" cellspacing="0" border="0">
+							<xsl:if test="$hasParameters='true'">
+								<xsl:call-template name="parameters"/>
+							</xsl:if>
+							<xsl:if test="$hasParameters='false'">
+								<tr>
+									<td width="100%" colspan="3"></td>
+								</tr>
+							</xsl:if>
+						</table>
+					</td>
+				</tr>
+				<tr class="{$classtype}">
+					<td valign="bottom" align="right" class="constructorrow">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">constructors.constructors.objectnameinput</xsl:with-param>
+						</xsl:call-template>
+						<input type="input" name="objectname"/>
+					</td>
+				</tr>
+				<tr class="{$classtype}">
+					<td align="right" class="constructorrow">
+						<xsl:variable name="str.createnew">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">constructors.constructors.createnew</xsl:with-param>
+							</xsl:call-template>
+						</xsl:variable>
+
+						<input type="submit" value="{$str.createnew}"/>
+						<input type="hidden" name="class" value="{$classname}"/>
+					</td>
+				</tr>
+
+			</table>
+			</form>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- Exception handling template -->
+	<xsl:template match="Exception" name="error">
+		<xsl:for-each select="Exception">
+			<table width="100%" cellpadding="0" cellspacing="0" border="0">
+				<tr>
+					<td class="fronttab">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">constructors.error.exception</xsl:with-param>
+							<xsl:with-param name="p0"><xsl:value-of select="@errorMsg"/></xsl:with-param>
+						</xsl:call-template>
+					</td>
+				</tr>
+			</table>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- Main template -->
+	<xsl:template match="/" name="main">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mbean</xsl:with-param>
+				</xsl:call-template>
+				<xsl:for-each select="Class|Exception">
+					<table width="100%" cellpadding="0" cellspacing="0" border="0">
+						<tr>
+							<td width="100%" class="page_title">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">constructors.main.title</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="@classname"/></xsl:with-param>
+							</xsl:call-template>
+							</td>
+						</tr>
+					</table>
+				</xsl:for-each>
+				<xsl:call-template name="error"/>
+				<xsl:call-template name="constructors"/>
+				<xsl:call-template name="bottom"/>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/create.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/create.xsl
new file mode 100644
index 0000000..774880b
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/create.xsl
@@ -0,0 +1,74 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<!-- Overall parameters -->
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">create.title</xsl:param>
+
+	<!-- Request parameters -->
+	<xsl:param name="request.objectname"/>
+	<xsl:param name="request.class"/>
+
+	<xsl:include href="common.xsl"/>
+
+	<!-- Operation processing template -->
+	<xsl:template name="operation" >
+		<xsl:for-each select="Operation">
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td width="100%" class="page_title">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">create.operation.title</xsl:with-param>
+						<xsl:with-param name="p0"><xsl:value-of select="$request.class"/></xsl:with-param>
+						<xsl:with-param name="p1"><xsl:value-of select="$request.objectname"/></xsl:with-param>
+					</xsl:call-template>
+				</td>
+			</tr>
+			<tr class="darkline">
+				<td>
+					<xsl:if test="@result='success'">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">create.operation.success</xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+					<xsl:if test="@result='error'">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">create.operation.error</xsl:with-param>
+							<xsl:with-param name="p0"><xsl:value-of select="@errorMsg"/></xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+				 </td>
+			</tr>
+			<xsl:call-template name="serverview"/>
+		</table>
+		</xsl:for-each>
+	</xsl:template>
+
+	<xsl:template match="MBeanOperation">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mbean</xsl:with-param>
+				</xsl:call-template>
+				<xsl:call-template name="operation"/>
+				<xsl:call-template name="bottom"/>
+			</body>
+	</html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/delete.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/delete.xsl
new file mode 100644
index 0000000..af968c4
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/delete.xsl
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<!-- Overall parameters -->
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">delete.title</xsl:param>
+
+	<!-- Request parameters -->
+	<xsl:param name="request.objectname"/>
+
+	<xsl:include href="common.xsl"/>
+
+	<xsl:template name="operation" >
+		<xsl:for-each select="Operation">
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td colspan="2" width="100%" class="page_title">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">delete.operation.title</xsl:with-param>
+						<xsl:with-param name="p0"><xsl:value-of select="$request.objectname"/></xsl:with-param>
+					</xsl:call-template>
+				</td>
+			</tr>
+			<tr class="darkline">
+				<td>
+					<xsl:if test="@result='success'">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">delete.operation.success</xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+					<xsl:if test="@result='error'">
+					<xsl:call-template name="str">
+							<xsl:with-param name="id">delete.operation.error</xsl:with-param>
+							<xsl:with-param name="p0"><xsl:value-of select="@errorMsg"/></xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+				</td>
+			</tr>
+			<xsl:call-template name="serverview"/>
+		</table>
+		</xsl:for-each>
+	</xsl:template>
+
+	<xsl:template match="MBeanOperation">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mbean</xsl:with-param>
+				</xsl:call-template>
+				<xsl:call-template name="operation"/>
+				<xsl:call-template name="bottom"/>
+			</body>
+	</html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/emptymbean.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/emptymbean.xsl
new file mode 100644
index 0000000..c755f2b
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/emptymbean.xsl
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 	version="1.0">
+	<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
+	<xsl:include href="common.xsl"/>
+	<xsl:include href="xalan-ext.xsl"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">emptymbean.title</xsl:param>
+
+	<!-- Main template -->
+	<xsl:template match="/">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr width="100%">
+						<td>
+						<xsl:call-template name="toprow"/>
+						<xsl:call-template name="tabs">
+							<xsl:with-param name="selection">mbean</xsl:with-param>
+						</xsl:call-template>
+							<table width="100%" cellpadding="0" cellspacing="0" border="0">
+								<tr>
+									<td class="page_title">
+										<xsl:call-template name="str">
+											<xsl:with-param name="id">emptymbean.title</xsl:with-param>
+										</xsl:call-template>
+									</td>
+								</tr>
+								<tr>
+									<form action="/constructors">
+										<td class="page_title">
+										<xsl:call-template name="str">
+											<xsl:with-param name="id">emptymbean.querycontructors</xsl:with-param>
+										</xsl:call-template>
+										<xsl:variable name="str.query">
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">emptymbean.query</xsl:with-param>
+											</xsl:call-template>
+										</xsl:variable>
+										<input type="input" name="classname"/><input type="submit" value="{$str.query}"/>
+										</td></form></tr>
+							</table>
+						<xsl:call-template name="bottom"/>
+						</td>
+					</tr>
+				</table>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/error.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/error.xsl
new file mode 100644
index 0000000..3bbc4e8
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/error.xsl
@@ -0,0 +1,57 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">error.title</xsl:param>
+	<xsl:include href="common.xsl"/>
+
+	<xsl:template match="/" name="httpexception">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+					<table width="100%" cellpadding="0" cellspacing="0" border="0">
+						<tr>
+							<td width="100%" class="page_title">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">error.title</xsl:with-param>
+								</xsl:call-template>
+							</td>
+						</tr>
+						<xsl:for-each select="HttpException">
+							<tr>
+								<td>
+									<xsl:call-template name="str">
+										<xsl:with-param name="id">error.httpexception.code</xsl:with-param>
+										<xsl:with-param name="p0"><xsl:value-of select="@code"/></xsl:with-param>
+									</xsl:call-template>
+								</td>
+							</tr>
+							<tr>
+								<td>
+									<xsl:call-template name="str">
+										<xsl:with-param name="id">error.httpexception.message</xsl:with-param>
+										<xsl:with-param name="p0"><xsl:value-of select="@description"/></xsl:with-param>
+									</xsl:call-template>
+								</td>
+							</tr>
+						</xsl:for-each>
+					</table>
+				<xsl:call-template name="bottom"/>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/favicon.ico b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/favicon.ico
new file mode 100644
index 0000000..fd64bfa
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/favicon.ico
Binary files differ
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/identity.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/identity.xsl
new file mode 100644
index 0000000..4977d05
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/identity.xsl
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+ 
+ Note: Extracted from xalan distribution
+																																					-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!-- From the XSLT spec: "the identity transformation can be written using xsl:copy as follows:" -->
+  <xsl:template match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/invoke.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/invoke.xsl
new file mode 100644
index 0000000..c107fb6
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/invoke.xsl
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<!-- Overall parameters -->
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">invoke.title</xsl:param>
+
+	<!-- Request parameters -->
+	<xsl:param name="request.objectname"/>
+	<xsl:param name="request.method"/>
+
+	<xsl:include href="common.xsl"/>
+	<xsl:include href="mbean_attributes.xsl"/>
+
+	<!-- Operation invoke -->
+	<xsl:template name="operation" >
+		<xsl:for-each select="Operation">
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td width="100%" class="page_title">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">invoke.operation.title</xsl:with-param>
+						<xsl:with-param name="p0"><xsl:value-of select="$request.method"/></xsl:with-param>
+						<xsl:with-param name="p1"><xsl:value-of select="$request.objectname"/></xsl:with-param>
+					</xsl:call-template>
+				</td>
+			</tr>
+			<tr>
+				<td class="clearline">
+					<xsl:if test="@result='success'">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">invoke.operation.success</xsl:with-param>
+						</xsl:call-template>
+						<br/>
+						<xsl:if test="not (@return='')">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">invoke.operation.success.result</xsl:with-param>
+								<xsl:with-param name="p0">
+									<xsl:call-template name="renderobject">
+										<xsl:with-param name="objectclass" select="@returnclass"/>
+										<xsl:with-param name="objectvalue" select="@return"/>
+									</xsl:call-template>
+								</xsl:with-param>
+							</xsl:call-template>
+						</xsl:if>
+						<xsl:if test="@return=''">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">invoke.operation.success.noresult</xsl:with-param>
+							</xsl:call-template>
+						</xsl:if>
+					</xsl:if>
+					<xsl:if test="@result='error'">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">invoke.operation.success.error</xsl:with-param>
+							<xsl:with-param name="p0"><xsl:value-of select="@errorMsg"/></xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+				 </td>
+			</tr>
+			<xsl:call-template name="mbeanview">
+				<xsl:with-param name="objectname" select="$request.objectname"/>
+			</xsl:call-template>
+		</table>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- Main template -->
+	<xsl:template match="MBeanOperation" name="main">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mbean</xsl:with-param>
+				</xsl:call-template>
+				<xsl:call-template name="operation"/>
+				<xsl:call-template name="bottom"/>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/logo.gif b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/logo.gif
new file mode 100644
index 0000000..31522aa
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/logo.gif
Binary files differ
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean.xsl
new file mode 100644
index 0000000..bbde9fc
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean.xsl
@@ -0,0 +1,391 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Contribution: Lachezar Dobrev (l.dobrev@lsnsoft.com)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">mbean.title</xsl:param>
+	<xsl:include href="common.xsl"/>
+	<xsl:include href="mbean_attributes.xsl"/>
+
+	<xsl:param name="request.objectname"/>
+
+	<xsl:template name="parameters" match="Parameter">
+		<xsl:param name="class"/>
+		<xsl:for-each select="Parameter">
+			<xsl:sort data-type="text" order="ascending" select="@id"/>
+			<xsl:variable name="type.id" select="concat('type', position()-1)"/>
+			<xsl:variable name="name.id" select="concat('value', position()-1)"/>
+			<xsl:variable name="type" select="@type"/>
+				<tr class="{$class}">
+				<td width="4%" align="left" class="mbean_row">
+					<div align="left"><xsl:value-of select="@id"/></div>
+				</td>
+				<td width="18%" align="left" class="mbean_row">
+					<xsl:value-of select="@name"/>
+				</td>
+				<td width="18%" align="left" class="mbean_row">
+					<xsl:value-of select="@description"/>
+				</td>
+				<td width="45%" align="left" class="mbean_row">
+					<xsl:value-of select="@type"/>
+				</td>
+				<td align="right" width="15%" class="mbean_row">
+					<xsl:choose>
+						<xsl:when test="@type='java.lang.String'
+							or @type='java.lang.String'
+							or @type='java.lang.Double'
+							or @type='java.lang.Short'
+							or @type='java.lang.Integer'
+							or @type='java.lang.Long'
+							or @type='java.lang.Float'
+							or @type='java.lang.Byte'
+							or @type='java.lang.Boolean'
+							or @type='java.lang.Number'
+							or @type='java.lang.Character'
+							or @type='javax.management.ObjectName'
+							or @type='int'
+							or @type='short'
+							or @type='boolean'
+							or @type='byte'
+							or @type='double'
+							or @type='long'
+							or @type='char'
+							or @type='float'">
+							<xsl:attribute name="valid">true</xsl:attribute>
+						<xsl:call-template name="raw-input">
+							<xsl:with-param name="name" select="$name.id"/>
+							<xsl:with-param name="type" select="$type"/>
+							<xsl:with-param name="value"/>
+							<xsl:with-param name="strinit">false</xsl:with-param>
+						</xsl:call-template>
+						</xsl:when>
+						<xsl:when test="@strinit='true'">
+							<xsl:attribute name="valid">true</xsl:attribute>
+							<xsl:call-template name="raw-input">
+								<xsl:with-param name="name" select="$name.id"/>
+								<xsl:with-param name="type" select="$type"/>
+								<xsl:with-param name="value"/>
+								<xsl:with-param name="strinit">true</xsl:with-param>
+							</xsl:call-template>
+						</xsl:when>
+						<xsl:otherwise>
+							<xsl:attribute name="valid">false</xsl:attribute>
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">mbean.parameters.unknown</xsl:with-param>
+							</xsl:call-template>
+						</xsl:otherwise>
+					</xsl:choose>
+					<input type="hidden" name="{$type.id}" value="{$type}"/>
+				</td>
+				</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<xsl:template name="operations">
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td colspan="7" width="100%" class="mbeans">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">mbean.operations.title</xsl:with-param>
+					</xsl:call-template>
+				</td>
+			</tr>
+		</table>
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr class="darkline">
+				<td width="20%">
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">mbean.operations.name</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+				<td width="20%">
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">mbean.operations.returntype</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+				<td width="*">
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">mbean.operations.description</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+				<td/>
+			</tr>
+			<xsl:variable name="invoke.str">
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">mbean.operations.invoke</xsl:with-param>
+				</xsl:call-template>
+			</xsl:variable>
+			<xsl:for-each select="Operation">
+				<xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
+				<xsl:variable name="classtype">
+					<xsl:if test="(position() mod 2)=1">clearline</xsl:if>
+					<xsl:if test="(position() mod 2)=0">darkline</xsl:if>
+				</xsl:variable>
+				<xsl:variable name="hasParameters">
+					<xsl:if test="count(./Parameter)>0">true</xsl:if>
+					<xsl:if test="count(./Parameter)=0">false</xsl:if>
+				</xsl:variable>
+
+
+				<tr class="{$classtype}">
+					<form action="invoke">
+					<input name="operation" type="hidden" value="{$name}"/>
+					<input type="hidden" name="objectname" value="{$request.objectname}"/>
+					<td width="20%" align="left" class="mbean_row">
+						<xsl:value-of select="@name"/>
+					</td>
+					<td align="left" class="mbean_row">
+						<xsl:value-of select="@return"/>
+					</td>
+					<td align="left" class="mbean_row">
+						<xsl:value-of select="@description"/>
+					</td>
+					<xsl:if test="$hasParameters='false'">
+						<td align="center" class="mbean_row">
+							<input type="submit" value="{$invoke.str}"/>
+						</td>
+					</xsl:if>
+					<xsl:if test="$hasParameters='true'">
+						<td/>
+						<tr class="{$classtype}">
+						<td valign="top" align="left" width="20%" class="mbean_row">
+							<strong>
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">mbean.operations.parameter</xsl:with-param>
+								</xsl:call-template>
+							</strong>
+						</td>
+						<td colspan="2">
+							<table width="100%" cellpadding="0" cellspacing="0" border="0">
+								<tr class="{$classtype}">
+									<td width="4%" class="mbean_row">
+										<strong>
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">mbean.operations.parameterid</xsl:with-param>
+											</xsl:call-template>
+										</strong>
+									</td>
+									<td width="18%" class="mbean_row">
+										<strong>
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">mbean.operations.parametername</xsl:with-param>
+											</xsl:call-template>
+										</strong>
+									</td>
+									<td width="50%" class="mbean_row">
+										<strong>
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">mbean.operations.parameterdescription</xsl:with-param>
+											</xsl:call-template>
+										</strong>
+									</td>
+									<td class="mbean_row">
+										<strong>
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">mbean.operations.parameterclass</xsl:with-param>
+											</xsl:call-template>
+										</strong>
+									</td>
+								</tr>
+								<xsl:call-template name="parameters">
+									<xsl:with-param name="class" select="$classtype"/>
+								</xsl:call-template>
+							</table>
+							<td align="center" valign="bottom">
+								<input style="pad-right: 1em;" type="submit" value="{$invoke.str}"/>
+							</td>
+						</td>
+					</tr>
+					</xsl:if>
+					</form>
+				</tr>
+			</xsl:for-each>
+		</table>
+	</xsl:template>
+
+	<xsl:template name="constructors">
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<xsl:for-each select="Constructor">
+			<xsl:if test="(position())=1">
+				<tr class="darkline">
+					<td>
+						<div class="tableheader">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">mbean.constructors.class</xsl:with-param>
+							</xsl:call-template>
+						</div>
+					</td>
+					<td>
+						<div class="tableheader">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">mbean.constructors.description</xsl:with-param>
+							</xsl:call-template>
+						</div>
+					</td>
+
+				</tr>
+			</xsl:if>
+				<form action="create">
+					<xsl:variable name="classtype">
+						<xsl:if test="(position() mod 2)=1">clearline</xsl:if>
+						<xsl:if test="(position() mod 2)=0">darkline</xsl:if>
+					</xsl:variable>
+					<xsl:variable name="classname"><xsl:value-of select="../@classname"/></xsl:variable>
+					<tr class="{$classtype}">
+						<td class="mbean_row">
+							<xsl:value-of select="$classname"/>
+						</td>
+						<td class="mbean_row">
+							<xsl:value-of select="@description"/>
+						</td>
+					</tr>
+					<tr class="{$classtype}">
+						<td valign="top" align="left" width="20%" class="mbean_row">
+							<strong>
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">mbean.constructors.parameter</xsl:with-param>
+								</xsl:call-template>
+							</strong>
+						</td>
+						<td>
+							<table width="100%" cellpadding="0" cellspacing="0" border="0">
+								<tr>
+									<td width="4%" class="mbean_row">
+										<strong>
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">mbean.constructors.parameterid</xsl:with-param>
+											</xsl:call-template>
+										</strong>
+									</td>
+									<td width="18%" class="mbean_row">
+										<strong>
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">mbean.constructors.parametername</xsl:with-param>
+											</xsl:call-template>
+										</strong>
+									</td>
+									<td width="50%" class="mbean_row">
+										<strong>
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">mbean.constructors.parameterdescription</xsl:with-param>
+											</xsl:call-template>
+										</strong>
+									</td>
+									<td class="mbean_row">
+										<strong>
+											<xsl:call-template name="str">
+												<xsl:with-param name="id">mbean.constructors.parameterclass</xsl:with-param>
+											</xsl:call-template>
+										</strong>
+									</td>
+								</tr>
+								<xsl:call-template name="parameters">
+									<!--<xsl:with-param name="class" select="$classtype"/>-->
+								</xsl:call-template>
+							</table>
+							</td>
+						</tr>
+					<tr class="{$classtype}">
+						<td class="mbean_row" align="right" colspan="2">
+							<strong>
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">mbean.constructors.objectname</xsl:with-param>
+								</xsl:call-template>
+							</strong>
+							 <input name="objectname" value=""/>
+						</td>
+					</tr>
+					<tr class="{$classtype}">
+						<td class="mbean_row" colspan="2">
+							<table width="100%" cellpadding="0" cellspacing="0" border="0">
+								<tr class="$class">
+									<td align="right" colspan="4"/>
+									<td align="right" class="mbean_row">
+									<xsl:variable name="create.str">
+										<xsl:call-template name="str">
+											<xsl:with-param name="id">mbean.constructors.create</xsl:with-param>
+										</xsl:call-template>
+									</xsl:variable>
+									<input type="submit" value="{$create.str}"/>
+									<input type="hidden" name="class" value="{$classname}"/>
+									</td>
+								</tr>
+							</table>
+						</td>
+					</tr>
+					</form>
+			</xsl:for-each>
+		</table>
+	</xsl:template>
+
+	<!-- Main processing template -->
+	<xsl:template match="MBean">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mbean</xsl:with-param>
+				</xsl:call-template>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr>
+						<td class="page_title">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">mbean.mbean.title</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="@objectname"/></xsl:with-param>
+							</xsl:call-template>
+
+						<xsl:if test="not (@description='')">
+							<br/>
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">mbean.mbean.description</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="@description"/></xsl:with-param>
+							</xsl:call-template>
+						</xsl:if>
+						</td>
+					</tr>
+					<tr>
+						<td width="100%" class="mbeans">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">mbean.mbean.attributes</xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+				</table>
+				<xsl:call-template name="attribute"/>
+				<xsl:call-template name="operations"/>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr>
+						<td colspan="7" width="100%" class="mbeans">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">mbean.mbean.constructors</xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+				</table>
+				<xsl:call-template name="constructors"/>
+				<xsl:call-template name="bottom"/>
+			</body>
+	</html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean_attributes.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean_attributes.xsl
new file mode 100644
index 0000000..6a87530
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mbean_attributes.xsl
@@ -0,0 +1,377 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<!-- array link generator -->
+	<xsl:template name="array">
+		
+		<xsl:choose>
+			<xsl:when test="@isnull='false'">
+				<xsl:variable name="url">getattribute?objectname=<xsl:value-of select="../@objectname"/>&amp;attribute=<xsl:value-of select="@name"/>&amp;format=array&amp;template=viewarray</xsl:variable>
+				<a href="{$url}">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">mbean_attributes.array.view</xsl:with-param>
+					</xsl:call-template>
+				</a>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">mbean_attributes.array.null</xsl:with-param>
+				</xsl:call-template>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<!-- Collection link generator -->
+	<xsl:template name="collection">
+		
+		<xsl:choose>
+			<xsl:when test="@isnull='false'">
+				<xsl:variable name="url">getattribute?objectname=<xsl:value-of select="../@objectname"/>&amp;attribute=<xsl:value-of select="@name"/>&amp;format=collection&amp;template=viewcollection</xsl:variable>
+				<a href="{$url}">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">mbean_attributes.collection.view</xsl:with-param>
+					</xsl:call-template>
+				</a>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">mbean_attributes.collection.null</xsl:with-param>
+				</xsl:call-template>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<!-- Map link generator -->
+	<xsl:template name="map">
+		
+		<xsl:choose>
+			<xsl:when test="@isnull='false'">
+				<xsl:variable name="url">getattribute?objectname=<xsl:value-of select="../@objectname"/>&amp;attribute=<xsl:value-of select="@name"/>&amp;format=map&amp;template=viewmap</xsl:variable>
+				<a href="{$url}">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">mbean_attributes.map.view</xsl:with-param>
+					</xsl:call-template>
+				</a>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">mbean_attributes.map.null</xsl:with-param>
+				</xsl:call-template>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+	
+	<!-- Composite data -->
+	<xsl:template name="compositedata">
+				
+		<xsl:choose>
+			<xsl:when test="@isnull='false'">
+				<xsl:variable name="url">getattribute?objectname=<xsl:value-of select="../@objectname"/>&amp;attribute=<xsl:value-of select="@name"/>&amp;format=compositedata&amp;template=identity</xsl:variable>
+				<a href="{$url}">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">mbean_attributes.compositedata.view</xsl:with-param>
+					</xsl:call-template>
+				</a>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">mbean_attributes.compositedata.null</xsl:with-param>
+				</xsl:call-template>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+		<!-- Composite data -->
+	<xsl:template name="tabulardata">
+				
+		<xsl:choose>
+			<xsl:when test="@isnull='false'">
+				<xsl:variable name="url">getattribute?objectname=<xsl:value-of select="../@objectname"/>&amp;attribute=<xsl:value-of select="@name"/>&amp;format=tabulardata&amp;template=viewtabulardata</xsl:variable>
+				<a href="{$url}">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">mbean_attributes.tabulardata.view</xsl:with-param>
+					</xsl:call-template>
+				</a>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">mbean_attributes.tabulardata.null</xsl:with-param>
+				</xsl:call-template>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+	
+	<xsl:template name="raw-input">
+		<xsl:param name="type"/>
+		<xsl:param name="value"/>
+		<xsl:param name="name"/>
+		<xsl:param name="strinit"/>
+		
+		<xsl:variable name="result">none</xsl:variable>
+		<xsl:choose>
+			<xsl:when test="$type='java.lang.Boolean' or $type='boolean'">
+				<xsl:choose>
+					<xsl:when test="$value='true'">
+						<input name="{$name}" type="radio" checked="checked" value="true">true </input>
+						<input name="{$name}" type="radio" value="false">false </input>
+					</xsl:when>
+					<xsl:when test="$value='false'">
+						<input name="{$name}" type="radio" value="true">true </input>
+						<input name="{$name}" type="radio" checked="checked" value="false">false </input>
+					</xsl:when>
+					<xsl:otherwise>
+						<input name="{$name}" type="radio" value="true">true </input>
+						<input name="{$name}" type="radio" value="false">false </input>
+					</xsl:otherwise>
+				</xsl:choose>
+			</xsl:when>
+			<xsl:otherwise>
+				<input type="text" name="{$name}" value="{$value}"/>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+	
+	<xsl:template match="Attribute[@type]" name="form">
+		<xsl:param name="value"/>
+		<xsl:choose>
+			<xsl:when test="@strinit='true'">
+				<xsl:variable name="name" select="@name"/>
+				<xsl:call-template name="raw-input">
+					<xsl:with-param name="type" select="@type"/>
+					<xsl:with-param name="value" select="$value"/>
+					<xsl:with-param name="name">value_<xsl:value-of select="@name"/>
+					</xsl:with-param>
+					<xsl:with-param name="strinit">true</xsl:with-param>
+				</xsl:call-template>
+				<xsl:call-template name="submit">
+					<xsl:with-param name="name" select="@name"/>
+				</xsl:call-template>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">mbean_attributes.form.unknowntype</xsl:with-param>
+				</xsl:call-template>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<!-- Makes the submit button for setting one attribute -->
+	<xsl:template match="Attribute[@type]" name="submit">
+		<xsl:param name="name"/>
+		<xsl:if test="@strinit='true'">
+			<xsl:variable name="str.set">
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">mbean_attributes.submit.set</xsl:with-param>
+				</xsl:call-template>
+			</xsl:variable>
+			<input type="Submit" name="set_{$name}" value="{$str.set}"/>
+		</xsl:if>
+	</xsl:template>
+
+	<!-- makes a link for objectnames from current value element -->
+	<xsl:template name="objectnamevalue">
+		<xsl:call-template name="renderobject">
+			<xsl:with-param name="objectclass">javax.management.ObjectName</xsl:with-param>
+			<xsl:with-param name="objectvalue" select="@value"/>
+		</xsl:call-template>
+	</xsl:template>
+
+	<!-- Renders an object
+		Currently transforms javax.management.ObjectName to links
+		Renders others as strings -->
+	<xsl:template name="renderobject">
+		<xsl:param name="objectclass"/>
+		<xsl:param name="objectvalue"/>
+		<xsl:choose>
+			<xsl:when test="$objectclass='javax.management.ObjectName'">
+				<xsl:variable name="name_encoded">
+					<xsl:call-template name="uri-encode">
+						<xsl:with-param name="uri">
+							<xsl:value-of select="$objectvalue"/>
+						</xsl:with-param>
+					</xsl:call-template>
+				</xsl:variable>
+				<a href="/mbean?objectname={$name_encoded}">
+					<xsl:value-of select="$objectvalue"/>
+				</a>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:value-of select="$objectvalue"/>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+	
+	<xsl:template match="Attribute" name="WO">
+		<td align="right" class="mbean_row">
+			<xsl:call-template name="str">
+				<xsl:with-param name="id">mbean_attributes.WO.readonly</xsl:with-param>
+			</xsl:call-template>
+		</td>
+		<td align="right" class="mbean_row">
+			<xsl:call-template name="form"/>
+		</td>
+	</xsl:template>
+
+	<!-- Template for readwrite attributes -->
+	<xsl:template match="Attribute" name="RW">
+		<td align="right" class="mbean_row">
+			<xsl:choose>
+				<xsl:when test="@aggregation='collection'">
+					<xsl:call-template name="collection"/>
+				</xsl:when>
+				<xsl:when test="@aggregation='map'">
+					<xsl:call-template name="map"/>
+				</xsl:when>
+				<xsl:when test="starts-with(@type, '[L')">
+					<xsl:call-template name="array"/>
+				</xsl:when>
+				<xsl:when test="@type='javax.management.ObjectName'">
+					<xsl:call-template name="objectnamevalue"/>
+				</xsl:when>
+				<xsl:otherwise>
+					<xsl:value-of select="@value"/>
+				</xsl:otherwise>
+			</xsl:choose>
+		</td>
+		<td align="right" class="mbean_row">
+			<xsl:call-template name="form">
+				<xsl:with-param name="value" select="@value"/>
+			</xsl:call-template>
+		</td>
+	</xsl:template>
+
+	<!-- Template for readonly attributes -->
+	<xsl:template match="Attribute" name="RO">
+		<td align="right" class="mbean_row">
+			<xsl:choose>
+				<xsl:when test="@aggregation='collection'">
+					<xsl:call-template name="collection"/>
+				</xsl:when>
+				<xsl:when test="@aggregation='map'">
+					<xsl:call-template name="map"/>
+				</xsl:when>
+				<xsl:when test="starts-with(@type, '[L')">
+					<xsl:call-template name="array"/>
+				</xsl:when>
+				<xsl:when test="@type='javax.management.ObjectName'">
+					<xsl:call-template name="objectnamevalue"/>
+				</xsl:when>
+				<xsl:otherwise>
+					<xsl:value-of select="@value"/>
+				</xsl:otherwise>
+			</xsl:choose>
+		</td>
+		<td align="right" class="mbean_row">
+			<xsl:call-template name="str">
+				<xsl:with-param name="id">mbean_attributes.RO.readonly</xsl:with-param>
+			</xsl:call-template>
+		</td>
+	</xsl:template>
+
+	<!-- MBean's attributes template -->
+	<xsl:template name="attribute">
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr class="darkline">
+				<td width="20%" align="left" class="darkline">
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">mbean_attributes.attribute.name</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+				<td width="20%" align="left" class="darkline">
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">mbean_attributes.attribute.description</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+				<td width="20%" align="left" class="darkline">
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">mbean_attributes.attribute.type</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+				<td width="20%" align="right" class="darkline">
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">mbean_attributes.attribute.value</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+				<td width="*" align="right" class="darkline">
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">mbean_attributes.attribute.newvalue</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+			</tr>
+			<form action="setattributes" method="get">
+				<xsl:for-each select="Attribute">
+					<xsl:sort data-type="text" order="ascending" select="@name"/>
+					<xsl:variable name="classtype">
+						<xsl:if test="(position() mod 2)=1">clearline</xsl:if>
+						<xsl:if test="(position() mod 2)=0">darkline</xsl:if>
+					</xsl:variable>
+					<tr class="{$classtype}">
+						<td class="mbean_row">
+							<xsl:value-of select="@name"/>
+						</td>
+						<td class="mbean_row">
+							<xsl:value-of select="@description"/>
+						</td>
+						<td class="mbean_row">
+							<xsl:choose>
+								<xsl:when test="starts-with(@type, '[L')">
+									<xsl:call-template name="str">
+										<xsl:with-param name="id">mbean_attributes.attribute.arrayof</xsl:with-param>
+										<xsl:with-param name="p0">
+											<xsl:value-of select="substring-before(substring-after(@type, '[L'), ';')"/>
+										</xsl:with-param>
+									</xsl:call-template>
+								</xsl:when>
+								<xsl:otherwise>
+									<xsl:value-of select="@type"/>
+								</xsl:otherwise>
+							</xsl:choose>
+						</td>
+						<xsl:choose>
+							<xsl:when test="@availability='RO'">
+								<xsl:call-template name="RO"/>
+							</xsl:when>
+							<xsl:when test="@availability='RW'">
+								<xsl:call-template name="RW"/>
+							</xsl:when>
+							<xsl:when test="@availability='WO'">
+								<xsl:call-template name="WO"/>
+							</xsl:when>
+						</xsl:choose>
+					</tr>
+				</xsl:for-each>
+				<td colspan="5" align="right" class="attributes_setall">
+					<input type="hidden" name="objectname" value="{$request.objectname}"/>
+					<xsl:variable name="str.setall">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">mbean_attributes.attribute.setall</xsl:with-param>
+						</xsl:call-template>
+					</xsl:variable>
+					<input type="Submit" name="setall" value="{$str.setall}"/>
+				</td>
+			</form>
+		</table>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mlet.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mlet.xsl
new file mode 100644
index 0000000..5fd78ad
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/mlet.xsl
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">mlet.title</xsl:param>
+	<xsl:include href="common.xsl"/>
+
+	<xsl:template name="domain">
+		<xsl:for-each select="Domain[Mbean]">
+			<tr>
+				<td class="domainline">
+					<div class="domainheading"><xsl:value-of select="@name"/></div>
+					<table width="100%" cellpadding="0" cellspacing="0" border="0">
+						<xsl:call-template name="mbean"/>
+					</table>
+				</td>
+			</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<xsl:template match="MBean" name="mbean">
+		<xsl:for-each select="MBean">
+			<tr>
+				<xsl:variable name="classtype">
+					<xsl:if test="(position() mod 2)=1">darkline</xsl:if>
+					<xsl:if test="(position() mod 2)=0">clearline</xsl:if>
+				</xsl:variable>
+				<xsl:variable name="objectname" select="@objectname"/>
+				<td class="{$classtype}">
+					<a href="mbean?objectname={$objectname}"><xsl:value-of select="$objectname"/></a>
+				</td>
+				<td align="right" class="{$classtype}">
+					<a href="delete?objectname={$objectname}">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">mlet.mbean.unregister</xsl:with-param>
+						</xsl:call-template>
+					</a>
+				</td>
+			</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- Main processing template -->
+	<xsl:template match="Server" name="main">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mlet</xsl:with-param>
+				</xsl:call-template>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr>
+						<td colspan="7" width="100%" class="page_title">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">mlet.main.title</xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+				</table>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<xsl:call-template name="domain"/>
+				</table>
+				<xsl:call-template name="bottom"/>
+			</body>
+	</html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor.xsl
new file mode 100644
index 0000000..952a57f
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor.xsl
@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">monitor.title</xsl:param>
+	<xsl:include href="common.xsl"/>
+
+	<!-- Domain template -->
+	<xsl:template name="domain">
+		<xsl:for-each select="Domain[MBean]">
+			<tr>
+				<td class="domainline">
+					<div class="domainheading"><xsl:value-of select="@name"/></div>
+					<table width="100%" cellpadding="0" cellspacing="0" border="0">
+						<xsl:call-template name="mbean"/>
+					</table>
+				</td>
+			</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- MBean template -->
+	<xsl:template match="MBean" name="mbean">
+		<xsl:for-each select="MBean">
+			<tr>
+				<xsl:variable name="classtype">
+					<xsl:if test="(position() mod 2)=1">darkline</xsl:if>
+					<xsl:if test="(position() mod 2)=0">clearline</xsl:if>
+				</xsl:variable>
+				<xsl:variable name="objectname">
+					<xsl:call-template name="uri-encode">
+						<xsl:with-param name="uri" select="@objectname"/>
+					</xsl:call-template>
+				</xsl:variable>
+				<td class="{$classtype}">
+					<a href="mbean?objectname={$objectname}"><xsl:value-of select="@objectname"/></a>
+				</td>
+				<td align="right" class="{$classtype}">
+					<a href="delete?objectname={$objectname}">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">monitor.mbean.unregister</xsl:with-param>
+						</xsl:call-template>
+					</a>
+				</td>
+			</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- Main template -->
+	<xsl:template match="Server" name="main">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">monitor</xsl:with-param>
+				</xsl:call-template>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr>
+						<td colspan="7" width="100%" class="page_title">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">monitor.main.title</xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+					<tr class="fronttab">
+						<form action="create">
+							<xsl:variable name="str.createstring.button">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">monitor.main.createstring.button</xsl:with-param>
+								</xsl:call-template>
+							</xsl:variable>
+							<td width="100%" align="right">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">monitor.main.createstring.label</xsl:with-param>
+								</xsl:call-template>
+								<input type="input" name="objectname"/>
+								<input type="hidden" name="template" value="monitor_create"/>
+								<input type="hidden" name="class" value="javax.management.monitor.StringMonitor"/>
+							</td>
+							<td align="right">
+								<input type="submit" style="width: 15em;" value="{$str.createstring.button}"/>
+							</td>
+						</form>
+					</tr>
+					<tr class="fronttab">
+						<form action="create">
+							<xsl:variable name="str.creategauge.button">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">monitor.main.creategauge.button</xsl:with-param>
+								</xsl:call-template>
+							</xsl:variable>
+							<td align="right">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">monitor.main.creategauge.label</xsl:with-param>
+								</xsl:call-template>
+								<input type="input" name="objectname"/>
+								<input type="hidden" name="template" value="monitor_create"/>
+								<input type="hidden" name="class" value="javax.management.monitor.GaugeMonitor"/>
+							</td>
+							<td align="right">
+								<input type="submit" style="width: 15em;" value="{$str.creategauge.button}"/>
+							</td>
+						</form>
+					</tr>
+					<tr class="fronttab">
+						<form action="create">
+							<xsl:variable name="str.createcounter.button">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">monitor.main.createcounter.button</xsl:with-param>
+								</xsl:call-template>
+							</xsl:variable>
+							<td width="100%" align="right">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">monitor.main.createcounter.label</xsl:with-param>
+								</xsl:call-template>
+								<input type="input" name="objectname"/>
+							</td>
+							<td align="right">
+								<input type="hidden" name="template" value="monitor_create"/>
+								<input type="hidden" name="class" value="javax.management.monitor.CounterMonitor"/>
+								<input type="submit" style="width: 15em;" value="{$str.createcounter.button}"/>
+							</td>
+						</form>
+					</tr>
+				</table>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<xsl:call-template name="domain"/>
+				</table>
+				<xsl:call-template name="bottom"/>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor_create.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor_create.xsl
new file mode 100644
index 0000000..1c39bab
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/monitor_create.xsl
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<!-- Overall parameters -->
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">monitor_create.title</xsl:param>
+
+	<!-- Request parameters -->
+	<xsl:param name="request.objectname"/>
+	<xsl:param name="request.class"/>
+
+	<xsl:include href="common.xsl"/>
+
+	<xsl:template name="operation" >
+		<xsl:for-each select="Operation">
+		<xsl:variable name="monitor_type">
+			<xsl:if test="$request.class='javax.management.monitor.StringMonitor'">
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">monitor_create.operation.stringmonitor</xsl:with-param>
+				</xsl:call-template>
+			</xsl:if>
+			<xsl:if test="$request.class='javax.management.monitor.GaugeMonitor'">
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">monitor_create.operation.gaguemonitor</xsl:with-param>
+				</xsl:call-template>
+			</xsl:if>
+			<xsl:if test="$request.class='javax.management.monitor.CounterMonitor'">
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">monitor_create.operation.countermonitor</xsl:with-param>
+				</xsl:call-template>
+			</xsl:if>
+		</xsl:variable>
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td width="100%" class="page_title"><xsl:value-of select="$monitor_type"/>
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">monitor_create.operation.title</xsl:with-param>
+					<xsl:with-param name="p0"><xsl:value-of select="$request.objectname"/></xsl:with-param>
+				</xsl:call-template>
+				</td>
+			</tr>
+			<tr>
+				<td class="clearline">
+					<xsl:if test="@result='success'">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">monitor_create.operation.success</xsl:with-param>
+							<xsl:with-param name="p0"><xsl:value-of select="$monitor_type"/></xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+					<xsl:if test="@result='error'">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">monitor_create.operation.error</xsl:with-param>
+							<xsl:with-param name="p0"><xsl:value-of select="$monitor_type"/></xsl:with-param>
+							<xsl:with-param name="p1"><xsl:value-of select="@errorMsg"/></xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+				 </td>
+			</tr>
+			<xsl:if test="@result='success'">
+				<xsl:call-template name="mbeanview">
+					<xsl:with-param name="objectname"><xsl:value-of select="$request.objectname"/></xsl:with-param>
+					<xsl:with-param name="text">monitor_create.operation.mbeanview</xsl:with-param>
+				</xsl:call-template>
+			</xsl:if>
+			<xsl:if test="@result='error'">
+				<xsl:call-template name="serverview"/>
+			</xsl:if>
+		</table>
+		</xsl:for-each>
+	</xsl:template>
+
+	<xsl:template match="MBeanOperation">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">timer</xsl:with-param>
+				</xsl:call-template>
+				<xsl:call-template name="operation"/>
+				<xsl:call-template name="bottom"/>
+			</body>
+	</html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/relation.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/relation.xsl
new file mode 100644
index 0000000..f89317c
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/relation.xsl
@@ -0,0 +1,179 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Bronwen Cassidy (shadow12@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+ 																																					-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+  <xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+  <xsl:param name="html.stylesheet.type">text/css</xsl:param>
+  <xsl:param name="head.title">relation.title</xsl:param>
+  <xsl:include href="common.xsl"/>
+
+   <xsl:template match="relation-type-name" name="relationtypename">
+       <table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td colspan="7" width="50%" class="mbeans">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">relation.typename.title</xsl:with-param>
+					</xsl:call-template>
+				</td>
+				<td colspan="7" width="50%" class="mbeans"><xsl:value-of select="@name"/></td>
+            </tr>
+			<tr class="darkline">
+				<td>
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">relation.metadata.title</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+			</tr>
+			<tr><xsl:apply-templates select="./relation-meta-data"/></tr>
+			<tr class="darkline">
+				<td>
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">relation.relationids.title</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td class="domainline">
+					<xsl:apply-templates select="./relation-id"/>
+				</td>
+			</tr>
+		</table>
+  </xsl:template>
+
+  <xsl:template match="relation-meta-data" name="meta-data">
+   <table width="100%" cellpadding="0" cellspacing="0" border="0">
+      <xsl:variable name="position">
+		  <xsl:if test="(position() mod 2)=1">darkline</xsl:if>
+		  <xsl:if test="(position() mod 2)=0">clearline</xsl:if>
+	  </xsl:variable>
+      <tr width="100%" border="1">
+		<td class="{$position}"><b>
+			<xsl:call-template name="str">
+				<xsl:with-param name="id">relation.rolename.title</xsl:with-param>
+			</xsl:call-template></b>
+		</td><td><xsl:apply-templates select="./role-name"/></td>
+		<td class="{$position}"><b>
+			<xsl:call-template name="str">
+				<xsl:with-param name="id">relation.classname.title</xsl:with-param>
+			</xsl:call-template></b>
+		</td><td><xsl:apply-templates select="./mbean-classname"/></td>
+	  </tr>
+	  <tr  border="1">
+		<td class="{$position}"><b>
+			<xsl:call-template name="str">
+				<xsl:with-param name="id">relation.description.title</xsl:with-param>
+			</xsl:call-template></b>
+		</td><td><xsl:apply-templates select="./description"/></td>
+		<td class="{$position}"><b>
+			<xsl:call-template name="str">
+				<xsl:with-param name="id">relation.mindegree.title</xsl:with-param>
+			</xsl:call-template></b>
+		</td><td><xsl:apply-templates select="./min-degree"/></td>
+	  </tr>
+	  <tr border="1">
+		<td class="{$position}"><b>
+			<xsl:call-template name="str">
+				<xsl:with-param name="id">relation.maxdegree.title</xsl:with-param>
+			</xsl:call-template></b>
+		</td><td><xsl:apply-templates select="./max-degree"/></td>
+		<td class="{$position}"><b>
+			<xsl:call-template name="str">
+				<xsl:with-param name="id">relation.readable.title</xsl:with-param>
+			</xsl:call-template></b>
+		</td><td><xsl:apply-templates select="./is-readable"/></td>
+		<td class="{$position}"><b>
+			<xsl:call-template name="str">
+				<xsl:with-param name="id">relation.writable.title</xsl:with-param>
+			</xsl:call-template></b>
+		</td><td><xsl:apply-templates select="./is-writable"/></td>
+	  </tr>
+	</table>
+  </xsl:template>
+
+  <xsl:template match="role-name" name="roleName">
+      <xsl:value-of select="text()"/>
+  </xsl:template>
+
+  <xsl:template match="mbean-classname" name="classname">
+      <xsl:value-of select="text()"/>
+  </xsl:template>
+
+  <xsl:template match="description" name="description">
+      <xsl:value-of select="text()"/>
+  </xsl:template>
+
+  <xsl:template match="min-degree" name="minimum">
+      <xsl:value-of select="text()"/>
+  </xsl:template>
+
+  <xsl:template match="max-degree" name="maximum">
+      <xsl:value-of select="text()"/>
+  </xsl:template>
+
+  <xsl:template match="is-readable" name="reading">
+      <xsl:value-of select="text()"/>
+  </xsl:template>
+
+  <xsl:template match="is-writable" name="writing">
+      <xsl:value-of select="text()"/>
+  </xsl:template>
+
+  <xsl:template match="default" name="default">
+      <xsl:value-of select="text()"/>
+  </xsl:template>
+
+  <xsl:template match="relation-id" name="relationId">
+    <table width="100%" cellpadding="0" cellspacing="0" border="0">
+      <xsl:variable name="position">
+        <xsl:if test="(position() mod 2)=1">darkline</xsl:if>
+        <xsl:if test="(position() mod 2)=0">clearline</xsl:if>
+      </xsl:variable>
+    	<tr>
+        <td class="{$position}" align="justify">
+			<xsl:value-of select="text()"/>
+        </td>
+      </tr>
+	</table>
+  </xsl:template>
+
+  <xsl:template match="RelationServer">
+    <html>
+    	<xsl:call-template name="head"/>
+      <body>
+      	<xsl:call-template name="toprow"/>
+        <xsl:call-template name="tabs">
+        	<xsl:with-param name="selection">relation</xsl:with-param>
+        </xsl:call-template>
+        <table width="100%" cellpadding="0" cellspacing="0" border="0">
+          <tr>
+          	<td colspan="7" width="100%" align="center" class="fronttab">
+				<xsl:call-template name="str">
+					<xsl:with-param name="id">relation.inprogress</xsl:with-param>
+				</xsl:call-template>
+			</td>
+          </tr>
+        </table>
+        <table width="100%" cellpadding="0" cellspacing="0" border="0">
+		  <xsl:apply-templates select="./default"/>
+          <xsl:apply-templates select="./relation-type-name"/>
+        </table>
+        <xsl:call-template name="bottom"/>
+      </body>
+  </html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/server.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/server.xsl
new file mode 100644
index 0000000..f22f941
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/server.xsl
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">server.title</xsl:param>
+	<xsl:include href="common.xsl"/>
+	<xsl:include href="xalan-ext.xsl"/>
+
+	<xsl:template name="mbean">
+		<xsl:for-each select="MBean">
+			<xsl:sort data-type="text" order="ascending" select="@objectname"/>
+				<xsl:variable name="classtype">
+					<xsl:if test="(position() mod 2)=1">darkline</xsl:if>
+					<xsl:if test="(position() mod 2)=0">clearline</xsl:if>
+				</xsl:variable>
+				<xsl:variable name="objectname">
+					<xsl:call-template name="uri-encode">
+						<xsl:with-param name="uri" select="@objectname"/>
+					</xsl:call-template>
+				</xsl:variable>
+				<tr class="{$classtype}" width="100%">
+					<td class="domainline"/>
+					<td width="35%" align="left">
+						<a href="mbean?objectname={$objectname}"><xsl:value-of select="@objectname"/></a>
+					</td>
+					<td width="20%" align="left">
+						<xsl:value-of select="@classname"/>
+					</td>
+					<td width="35%" align="left">
+						<xsl:value-of select="@description"/>
+					</td>
+					<td width="10%" align="right" class="{$classtype}" >
+						<a href="delete?objectname={$objectname}">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">server.unregister</xsl:with-param>
+							</xsl:call-template>
+						</a>
+					</td>
+				</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<xsl:template match="Server">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">server</xsl:with-param>
+				</xsl:call-template>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr class="fronttab">
+						<td >
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">server.mbeans.title</xsl:with-param>
+							</xsl:call-template>
+						</td>
+						<form action="server">
+							<td align="right">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">server.filter.title</xsl:with-param>
+								</xsl:call-template>
+								<input type="text" name="querynames" value="*:*"/>
+								<input type="submit" value="query"/>
+							</td>
+						</form>
+					</tr>
+				</table>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<xsl:call-template name="mbean"/>
+				</table>
+				<xsl:call-template name="bottom"/>
+			</body>
+	</html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/serverbydomain.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/serverbydomain.xsl
new file mode 100644
index 0000000..14c0deb
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/serverbydomain.xsl
@@ -0,0 +1,134 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 	version="1.0">
+	<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
+	<xsl:include href="common.xsl"/>
+	<xsl:include href="xalan-ext.xsl"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">serverbydomain.title</xsl:param>
+
+	<!-- Invoked when a query error is produced -->
+	<xsl:template match="Domain" name="error">
+		<xsl:for-each select="Exception">
+			<tr>
+				<td class="serverbydomain_domainline" colspan="5">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">serverbydomain.error.query</xsl:with-param>
+						<xsl:with-param name="p0">
+								<xsl:value-of select="@errorMsg"/>
+							</xsl:with-param>
+					</xsl:call-template>
+				</td>
+			</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- Invoked to display each domain -->
+	<xsl:template match="Domain" name="domain">
+		<xsl:for-each select="Domain">
+			<xsl:sort data-type="text" order="ascending" select="@name"/>
+			<tr>
+				<td class="serverbydomain_domainline" colspan="5">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">serverbydomain.domain.label</xsl:with-param>
+							<xsl:with-param name="p0">
+								<xsl:value-of select="@name"/>
+							</xsl:with-param>
+						</xsl:call-template>
+				</td>
+				<xsl:call-template name="mbean"/>
+			</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- invoked for each mbean -->
+	<xsl:template match="MBean" name="mbean">
+		<xsl:for-each select="MBean">
+			<xsl:sort data-type="text" order="ascending" select="@objectname"/>
+				<xsl:variable name="classtype">
+					<xsl:if test="(position() mod 2)=1">darkline</xsl:if>
+					<xsl:if test="(position() mod 2)=0">clearline</xsl:if>
+				</xsl:variable>
+				<xsl:variable name="objectname">
+					<xsl:call-template name="uri-encode">
+						<xsl:with-param name="uri" select="@objectname"/>
+					</xsl:call-template>
+				</xsl:variable>
+				<tr class="{$classtype}" width="100%">
+					<td width="35%" align="left" class="serverbydomain_row">
+						<a href="mbean?objectname={$objectname}"><xsl:value-of select="@objectname"/></a>
+					</td>
+					<td width="20%" align="left" class="serverbydomain_row">
+						<p><xsl:value-of select="@classname"/></p>
+					</td>
+					<td width="35%" align="left" class="serverbydomain_row">
+						<p><xsl:value-of select="@description"/></p>
+					</td>
+					<td width="10%" align="right" class="serverbydomain_row">
+						<p>
+						<a href="delete?objectname={$objectname}">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">serverbydomain.mbean.unregister</xsl:with-param>
+						</xsl:call-template>
+						</a></p>
+					</td>
+				</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- Main template -->
+	<xsl:template match="Server">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr width="100%">
+						<td>
+						<xsl:call-template name="toprow"/>
+						<xsl:call-template name="tabs">
+							<xsl:with-param name="selection">server</xsl:with-param>
+						</xsl:call-template>
+						<xsl:variable name="query">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">serverbydomain.server.query</xsl:with-param>
+							</xsl:call-template>
+						</xsl:variable>
+							<table width="100%" cellpadding="0" cellspacing="0" border="0">
+
+								<tr>
+									<td class="page_title">
+										<xsl:call-template name="str">
+											<xsl:with-param name="id">serverbydomain.server.title</xsl:with-param>
+										</xsl:call-template>
+									</td>
+									<form action="serverbydomain">
+									<td align="right" class="page_title">
+										<xsl:call-template name="str"><xsl:with-param name="id">serverbydomain.server.filter</xsl:with-param></xsl:call-template><input type="text" name="querynames" value="*:*"/><input type="submit" value="{$query}"/>
+									</td>
+									</form>
+								</tr>
+							</table>
+							<table width="100%" cellpadding="0" cellspacing="0" border="0">
+								<xsl:call-template name="domain"/>
+								<xsl:call-template name="error"/>
+							</table>
+						<xsl:call-template name="bottom"/>
+						</td>
+					</tr>
+				</table>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattribute.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattribute.xsl
new file mode 100644
index 0000000..714d883
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattribute.xsl
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">setattribute.title</xsl:param>
+	<xsl:include href="common.xsl"/>
+
+	<!-- Request parameters -->
+	<xsl:param name="request.objectname"/>
+	<xsl:param name="request.attribute"/>
+	<xsl:param name="request.value"/>
+
+	<xsl:template name="operation">
+		<xsl:for-each select="Operation">
+			<table width="100%" cellpadding="0" cellspacing="0" border="0">
+				<xsl:variable name="classtype">
+					<xsl:if test="(position() mod 2)=1">darkline</xsl:if>
+					<xsl:if test="(position() mod 2)=0">clearline</xsl:if>
+				</xsl:variable>
+				<tr>
+					<td width="100%" class="fronttab">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">setattribute.operation.title</xsl:with-param>
+							<xsl:with-param name="p0"><xsl:value-of select="$request.attribute"/></xsl:with-param>
+							<xsl:with-param name="p1"><xsl:value-of select="$request.objectname"/></xsl:with-param>
+						</xsl:call-template>
+					</td>
+				</tr>
+				<tr>
+					<td class="{$classtype}">
+						<xsl:if test="@result='success'">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">setattribute.operation.success</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="$request.attribute"/></xsl:with-param>
+								<xsl:with-param name="p1"><xsl:value-of select="$request.value"/></xsl:with-param>
+							</xsl:call-template>
+						</xsl:if>
+						<xsl:if test="@result='error'">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">setattribute.operation.error</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="@errorMessage"/></xsl:with-param>
+							</xsl:call-template>
+
+						 </xsl:if>
+					 </td>
+				</tr>
+				<xsl:call-template name="mbeanview">
+					<xsl:with-param name="objectname" select="$request.objectname"/>
+				</xsl:call-template>
+			</table>
+		</xsl:for-each>
+	</xsl:template>
+
+	<xsl:template match="MBeanOperation">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mbean</xsl:with-param>
+				</xsl:call-template>
+				<xsl:call-template name="operation"/>
+				<xsl:call-template name="bottom"/>
+			</body>
+	</html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattributes.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattributes.xsl
new file mode 100644
index 0000000..ac606e4
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/setattributes.xsl
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">setattributes.title</xsl:param>
+	<xsl:include href="common.xsl"/>
+
+	<!-- Request parameters -->
+	<xsl:param name="request.objectname"/>
+	<xsl:param name="request.attribute"/>
+	<xsl:param name="request.value"/>
+
+	<xsl:template name="operation">
+		<xsl:for-each select="Operation">
+			<table width="100%" cellpadding="0" cellspacing="0" border="0">
+
+				<xsl:variable name="classtype">
+					<xsl:if test="(position() mod 2)=1">darkline</xsl:if>
+					<xsl:if test="(position() mod 2)=0">clearline</xsl:if>
+				</xsl:variable>
+				<tr>
+					<td width="100%" class="page_title">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">setattributes.operation.title</xsl:with-param>
+						<xsl:with-param name="p0"><xsl:value-of select="$request.objectname"/></xsl:with-param>
+					</xsl:call-template>
+
+					</td>
+				</tr>
+					<xsl:for-each select="//Attribute">
+					<xsl:if test="@result='success'">
+					<tr class="{$classtype}">
+						<td>
+							<!-- This would be better with a 2 param replacement -->
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">setattributes.operation.success</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="@attribute"/></xsl:with-param>
+								<xsl:with-param name="p1"><xsl:value-of select="@value"/></xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+					</xsl:if>
+				<xsl:if test="@result='error'">
+					<tr  class="{$classtype}">
+						<td>
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">setattributes.operation.error</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="@attribute"/></xsl:with-param>
+								<xsl:with-param name="p1"><xsl:value-of select="@errorMsg"/></xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+				</xsl:if>
+				</xsl:for-each>
+				<xsl:call-template name="mbeanview">
+					<xsl:with-param name="objectname" select="$request.objectname"/>
+				</xsl:call-template>
+			</table>
+		</xsl:for-each>
+	</xsl:template>
+
+	<xsl:template match="MBeanOperation">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mbean</xsl:with-param>
+				</xsl:call-template>
+				<xsl:call-template name="operation"/>
+				<xsl:call-template name="bottom"/>
+			</body>
+	</html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/strings_en.xml b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/strings_en.xml
new file mode 100644
index 0000000..b680e28
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/strings_en.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0"?>
+<strings>
+	<str id="none"></str>
+	<str id="common.title">MX4J/Http Adaptor</str>
+	<str id="common.subtitle">JMX Management Console</str>
+	<str id="common.tabs.serverview">Server view</str>
+	<str id="common.tabs.mbeanview">MBean view</str>
+	<str id="common.tabs.timerview">Timers</str>
+	<str id="common.tabs.monitorview">Monitors</str>
+	<str id="common.tabs.relationview">Relations</str>
+	<str id="common.tabs.mletview">MLet</str>
+	<str id="common.tabs.about">About</str>
+	<str id="common.serverview.return">Return to server view</str>
+	<str id="common.bottom.banner">Built using {0} HttpAdaptor</str>
+	<str id="common.mbeanview.return">Return to MBean view</str>
+	<str id="common.logo">MX4J logo</str>
+	<str id="common.logo.gif">logo.gif</str>
+	<str id="common.logo.width">100</str>
+	<str id="common.logo.height">50</str>
+	<str id="common.site">mx4j.sourceforge.net</str>
+
+	<str id="serverbydomain.title">MX4J - Agent View</str>
+	<str id="serverbydomain.error.query">Exception during query: {0}</str>
+	<str id="serverbydomain.domain.label">Domain: {0}</str>
+	<str id="serverbydomain.server.title">MBean By Domain:</str>
+	<str id="serverbydomain.server.filter">Filter:</str>
+	<str id="serverbydomain.server.query">Query</str>
+	<str id="serverbydomain.mbean.unregister">Unregister</str>
+
+	<str id="emptymbean.title">MBean - View</str>
+	<str id="emptymbean.querycontructors">Query constructors for class:</str>
+	<str id="emptymbean.query">query</str>
+
+	<str id="mbean.title">MX4J - MBean View</str>
+	<str id="mbean.parameters.unknown">Unknown type</str>
+	<str id="mbean.operations.title">Operations</str>
+	<str id="mbean.operations.name">Name</str>
+	<str id="mbean.operations.returntype">Return type</str>
+	<str id="mbean.operations.description">Description</str>
+	<str id="mbean.operations.parameter">Parameters</str>
+	<str id="mbean.operations.parameterid">id</str>
+	<str id="mbean.operations.parametername">Name</str>
+	<str id="mbean.operations.parameterdescription">Description</str>
+	<str id="mbean.operations.parameterclass">Class</str>
+	<str id="mbean.operations.invoke">Invoke</str>
+	<str id="mbean.constructors.class">Class</str>
+	<str id="mbean.constructors.objectname">ObjectName: </str>
+	<str id="mbean.constructors.description">Description</str>
+	<str id="mbean.constructors.parameter">Parameters</str>
+	<str id="mbean.constructors.parameterid">id</str>
+	<str id="mbean.constructors.parametername">Name</str>
+	<str id="mbean.constructors.parameterdescription">Description</str>
+	<str id="mbean.constructors.parameterclass">Class</str>
+	<str id="mbean.constructors.create">Create new</str>
+	<str id="mbean.mbean.title">MBean {0}</str>
+	<str id="mbean.mbean.description">Description {0}</str>
+	<str id="mbean.mbean.attributes">Attributes</str>
+	<str id="mbean.mbean.constructors">Constructors</str>
+
+	<str id="mbean_attributes.attribute.name">Name</str>
+	<str id="mbean_attributes.attribute.description">Description</str>
+	<str id="mbean_attributes.attribute.type">Type</str>
+	<str id="mbean_attributes.attribute.value">Value</str>
+	<str id="mbean_attributes.attribute.newvalue">New Value</str>
+	<str id="mbean_attributes.attribute.arrayof">Array of {0}</str>
+	<str id="mbean_attributes.attribute.setall">Set all</str>
+	<str id="mbean_attributes.RO.readonly">Read-only attribute</str>
+	<str id="mbean_attributes.WO.readonly">Write-only attribute</str>
+	<str id="mbean_attributes.submit.set">set</str>
+	<str id="mbean_attributes.form.unknowntype">Unknown type</str>
+	<str id="mbean_attributes.array.view">View array</str>
+	<str id="mbean_attributes.map.view">View map</str>
+	<str id="mbean_attributes.collection.view">View collection</str>
+	<str id="mbean_attributes.array.null">Array is null</str>
+	<str id="mbean_attributes.map.null">Map is null</str>
+	<str id="mbean_attributes.collection.null">Collection is null</str>
+
+	<str id="setattributes.title">MX4J - MBean View</str>
+	<str id="setattributes.operation.title">MBean operation: set attributes on MBean {0}</str>
+	<str id="setattributes.operation.success">Attribute {0} set to {1} </str>
+	<str id="setattributes.operation.error">Exception during set attribute {0}, message: {1} </str>
+
+	<str id="error.title">MX4J - Exception</str>
+	<str id="error.httpexception.title">Error during request</str>
+	<str id="error.httpexception.code">Code: {0}</str>
+	<str id="error.httpexception.message">Message: {0}</str>
+
+	<str id="constructors.constructors.objectnameinput">ObjectName:</str>
+	<str id="constructors.constructors.createnew">Create new</str>
+	<str id="constructors.constructors.intro">Constructor for class {0}</str>
+	<str id="constructors.title">MX4J - MBean Constructor's View</str>
+	<str id="constructors.main.title">Constructors for class {0}</str>
+	<str id="constructors.error.exception">Exception: {0}</str>
+	<str id="constructors.parameters.title">Parameters</str>
+	<str id="constructors.parameters.id">id</str>
+	<str id="constructors.parameters.type">type</str>
+	<str id="constructors.parameters.value">value</str>
+	<str id="constructors.parameters.unknowntype">Unkown type</str>
+
+	<str id="create.title">MX4J - MBean View</str>
+	<str id="create.operation.success">MBean successfully created</str>
+	<str id="create.operation.error">Error during MBean creation, message: {0}</str>
+	<str id="create.operation.title">MBean operation: create MBean of class {0} and object name {1}</str>
+
+	<str id="delete.title">MX4J - MBean View</str>
+	<str id="delete.operation.title">MBean delete, objectname {0}</str>
+	<str id="delete.operation.success">MBean successfully deleted</str>
+	<str id="delete.operation.error">Error during MBean deletion, message: {0}</str>
+
+	<str id="timer.title">MX4J - Timer Service</str>
+	<str id="timer.main.title">Timers by Domain:</str>
+	<str id="timer.main.createlabel">ObjectName:</str>
+	<str id="timer.main.createbutton">New timer</str>
+	<str id="timer.mbean.unregister">Unregister</str>
+	<str id="timer.domain.title">Timers for domain: {0}</str>
+	<str id="timer.domain.objectname">ObjectName</str>
+
+	<str id="timer_create.title">MX4J - Timer Creation</str>
+	<str id="timer_create.operation.title">Timer creation with object name {0}</str>
+	<str id="timer_create.operation.success">Timer created</str>
+	<str id="timer_create.operation.error">Exception during timer creation, message: {0}</str>
+	<str id="timer_create.operation.mbeanview">Configure timer</str>
+
+	<str id="viewarray.title">MX4J - Array View</str>
+	<str id="viewarray.main.title">MBean {0}</str>
+	<str id="viewarray.main.arraytitle">Array attribute {0} of type {1}</str>
+	<str id="viewarray.main.index">Index</str>
+	<str id="viewarray.main.value">Value</str>
+	<str id="viewarray.main.navigation.first">first</str>
+	<str id="viewarray.main.navigation.previous">previous</str>
+	<str id="viewarray.main.navigation.next">next</str>
+	<str id="viewarray.main.navigation.last">last</str>
+
+	<str id="viewcollection.title">MX4J - Collection View</str>
+	<str id="viewcollection.main.title">MBean {0}</str>
+	<str id="viewcollection.main.viewcollectiontitle">Collection of class {0} on attribute {1}</str>
+	<str id="viewcollection.main.index">Index</str>
+	<str id="viewcollection.main.valueclass">Value class</str>
+	<str id="viewcollection.main.value">Value</str>
+	<str id="viewcollection.main.navigation.first">first</str>
+	<str id="viewcollection.main.navigation.previous">previous</str>
+	<str id="viewcollection.main.navigation.next">next</str>
+	<str id="viewcollection.main.navigation.last">last</str>
+
+	<str id="viewmap.title">MX4J - Map View</str>
+	<str id="viewmap.main.title">MBean {0}</str>
+	<str id="viewmap.main.viewmaptitle">Map of class {0} on attribute {1}</str>
+	<str id="viewmap.main.key">Key</str>
+	<str id="viewmap.main.keyclass">Key class</str>
+	<str id="viewmap.main.valueclass">Value class</str>
+	<str id="viewmap.main.value">Value</str>
+	<str id="viewmap.main.navigation.first">first</str>
+	<str id="viewmap.main.navigation.previous">previous</str>
+	<str id="viewmap.main.navigation.next">next</str>
+	<str id="viewmap.main.navigation.last">last</str>
+
+	<str id="monitor.title">MX4J - Monitor Service</str>
+	<str id="monitor.mbean.unregister">Unregister</str>
+	<str id="monitor.main.title">Monitors By Domain</str>
+	<str id="monitor.main.createstring.label">ObjectName:</str>
+	<str id="monitor.main.createstring.button">New StringMonitor</str>
+	<str id="monitor.main.creategauge.label">ObjectName:</str>
+	<str id="monitor.main.creategauge.button">New GaugeMonitor</str>
+	<str id="monitor.main.createcounter.label">ObjectName:</str>
+	<str id="monitor.main.createcounter.button">New CounterMonitor</str>
+
+	<str id="monitor_create.title">MX4J - Monitor creation</str>
+	<str id="monitor_create.operation.title"> creation with object name {0}</str>
+	<str id="monitor_create.operation.success">Monitor type {0} successfully created</str>
+	<str id="monitor_create.operation.error">Exception during {0} creation, mesage: {1}</str>
+	<str id="monitor_create.operation.mbeanview">Configure Monitor</str>
+	<str id="monitor_create.operation.stringmonitor">StringMonitor</str>
+	<str id="monitor_create.operation.gaugemonitor">GaugeMonitor</str>
+	<str id="monitor_create.operation.countermonitor">CounterMonitor</str>
+
+	<str id="mlet.title">MX4J - MLet Service</str>
+	<str id="mlet.mbean.unregister">MX4J - MLet Service</str>
+	<str id="mlet.main.title">Mlet: (Not yet implemented)</str>
+
+	<str id="invoke.title">MX4J - MBean View</str>
+	<str id="invoke.operation.title">MBean operation: invoke method {0} on MBean {1}</str>
+	<str id="invoke.operation.success">Invocation successful</str>
+	<str id="invoke.operation.success.result">Result value: <pre>{0}</pre></str>
+	<str id="invoke.operation.success.noresult">No result</str>
+	<str id="invoke.operation.success.error">Error during MBean operation invocation<br/>Message: {0}</str>
+
+	<str id="about.title">MX4J - About</str>
+	<str id="about.main.title">{0} - HttpAdaptor</str>
+	<str id="about.main.url">http://mx4j.sourceforge.net</str>
+	<str id="about.main.url2">http://www.javasoft.com/jmx</str>
+	<str id="about.main.line1">Built based on the {0} specification</str>
+	<str id="about.main.implementation">JMX Implementation:</str>
+	<str id="about.main.implementationversion">Implementation Version:</str>
+	<str id="about.main.serverid">MBeanServer ID:</str>
+
+	<!-- relation service strings -->
+	<str id="relation.title">MX4J - Relation Service</str>
+	<str id="relation.typename.title">RelationTypeName:</str>
+	<str id="relation.metadata.title">Relation Type metaData:</str>
+	<str id="relation.relationids.title">RelationIds:</str>
+	<str id="relation.rolename.title">Role Name:</str>
+	<str id="relation.classname.title">MBeanClass:</str>
+	<str id="relation.description.title">Description:</str>
+	<str id="relation.mindegree.title">Min Degree:</str>
+	<str id="relation.maxdegree.title">Max Degree:</str>
+	<str id="relation.readable.title">Readable:</str>
+	<str id="relation.writable.title">Writable:</str>
+	<str id="relation.paramname">relation</str>
+	<str id="relation.inprogress">Relation Service: (In Progress)</str>
+
+	<!--MBean Server strings -->
+	<str id="server.title">MX4J - Agent View</str>
+	<str id="server.unregister">Unregister</str>
+	<str id="server.mbeans.title">MBeans:</str>
+	<str id="server.filter.title">Filter:</str>
+
+	<!-- Set attribute stylesheet, to be deprecated -->
+	<str id="setattribute.title">MX4J - MBean View</str>
+	<str id="setattribute.operation.title">MBean operation: set attribute {0} on MBean {1}</str>
+	<str id="setattribute.operation.success">Attribute {0} set to {1}</str>
+	<str id="setattribute.operation.error">Error during set attribute, message: {0}</str>
+
+</strings>
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/stylesheet.css b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/stylesheet.css
new file mode 100644
index 0000000..ec0380a
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/stylesheet.css
@@ -0,0 +1,436 @@
+/*
+
+ * Copyright (C) MX4J.
+
+ * All rights reserved.
+
+ *
+
+ * This software is distributed under the terms of the MX4J License version 1.0.
+
+ * See the terms of the MX4J License in the documentation provided with this software.
+
+ * Author: Carlos Quiroz
+
+ * Revision: $Revision: 1.1.1.1 $
+
+ */
+
+
+
+body {
+
+	background: white;
+
+	color: black;
+
+	font-family: tahoma,verdana,helvetica,arial,sans-serif;
+
+	margin-top: 5px;
+
+	margin-left: 5px;
+
+	margin-right: 5px;
+
+	margin-bottom: 5px;
+
+}
+
+
+
+/* Footer class */
+
+div.footer {
+
+	font-weight: bold;
+
+	text-align: center;
+
+}
+
+
+
+/* Tabs styles */
+
+td.fronttab {
+
+	background: rgb(220,220,220);
+
+	color: black;
+
+	padding-left: 10px;
+
+	padding-right: 10px;
+
+	padding-bottom: 3px;
+
+	font-size: small;
+
+}
+
+
+
+td.backtab {
+
+	background: rgb(240,240,240);
+
+	color: black;
+
+	height: 25px;
+
+	padding-left: 10px;
+
+	padding-right: 10px;
+
+	font-size: small;
+
+}
+
+
+
+a.tabs {
+
+	color: black;
+
+	text-decoration: none;
+
+	font-size: small;
+
+}
+
+/* End of tabs styles */
+
+
+
+/* Header styles */
+
+td.darker {
+
+	background: rgb(57,128,144);
+
+	height: 18px;
+
+}
+
+
+
+td.topheading {
+
+	background: rgb(183,187,184);
+
+	color: black;
+
+	font-weight: bold;
+
+	padding-left: 10px;
+
+}
+
+/* End of Header styles */
+
+
+
+td.domainline {
+
+	background: rgb(220,220,220);
+
+	color: black;
+
+	padding-left: 10px;
+
+}
+
+
+
+td.page_title {
+
+	background: rgb(220,220,220);
+
+	color: black;
+
+	padding-left: 10px;
+
+	padding-right: 10px;
+
+	padding-top: 2px;
+
+	padding-bottom: 2px;
+
+	font-weight: bold;
+
+}
+
+
+
+div.subtitle {
+
+	font-size: smaller;
+
+}
+
+
+
+/* Server by domain styles */
+
+td.serverbydomain_domainline {
+
+	background: rgb(200,200,200);
+
+	color: black;
+
+	padding-left: 10px;
+
+	font-weight: bold;
+
+}
+
+
+
+tr.clearline {
+
+	background: rgb(255,255,255);
+
+	color: black;
+
+	padding-left: 10px;
+
+	padding-right: 10px;
+
+	padding-top: 2px;
+
+	padding-bottom: 2px;
+
+}
+
+
+
+tr.darkline {
+
+	background: rgb(240,240,240);
+
+	color: black;
+
+	padding-left: 10px;
+
+	padding-right: 10px;
+
+}
+
+
+
+td.serverbydomain_row {
+
+	font-size: x-small;
+
+	padding-left: 10px;
+
+}
+
+
+
+/* MBean section title */
+
+td.mbeans {
+
+	background: rgb(183,187,184);
+
+}
+
+
+
+p.darklinebottom {
+
+	background: rgb(240,240,240);
+
+	color: black;
+
+	height: 20px;
+
+	padding-left: 10px;
+
+	font-weight: bold;
+
+}
+
+
+
+div.tableheader {
+
+	font-weight: bold;
+
+	padding-top: 2px;
+
+	padding-bottom: 2px;
+
+	font-size: small
+
+}
+
+
+
+td.mbean_row {
+
+	font-size: x-small;
+
+	padding-left: 1px;
+
+}
+
+
+
+td.attributes_setall {
+
+	padding-right: 20px;
+
+	padding-top: 5px;
+
+	padding-bottom: 5px;
+
+}
+
+
+
+/* MBean section title */
+
+td.mbeans {
+
+	background: rgb(183,187,184);
+
+	color: black;
+
+	height: 20px;
+
+	padding-left: 10px;
+
+	padding-right: 10px;
+
+	font-weight: bold;
+
+}
+
+
+
+div.tableheader {
+
+	font-weight: bold;
+
+	padding-top: 2px;
+
+	padding-bottom: 2px;
+
+	font-size: small
+
+}
+
+
+
+td.mbean_row {
+
+	font-size: x-small;
+
+	padding-left: 1px;
+
+}
+
+
+
+td.aggregationrow {
+
+	font-size: small;
+
+	padding-left: 1px;
+
+}
+
+
+
+td.constructorrow {
+
+	font-size: small;
+
+	padding-left: 1px;
+
+}
+
+
+
+td.attributes_setall {
+
+	padding-right: 20px;
+
+	padding-top: 5px;
+
+	padding-bottom: 5px;
+
+}
+
+
+
+tr.about {
+
+	background: rgb(220,220,220);
+
+}
+
+
+
+h1.about {
+
+	padding-left: 20px;
+
+	padding-right: 20px;
+
+	padding-top: 20px;
+
+	padding-bottom: 20px;
+
+	font-size: xx-large;
+
+	background: rgb(220,220,220);
+
+	color: black;
+
+}
+
+
+
+h2.about {
+
+	padding-left: 20px;
+
+	padding-right: 20px;
+
+	padding-top: 15px;
+
+	padding-bottom: 15px;
+
+	font-size: x-large;
+
+	background: rgb(220,220,220);
+
+	color: black;
+
+}
+
+
+
+h3.about {
+
+	padding-left: 20px;
+
+	padding-right: 20px;
+
+	padding-top: 15px;
+
+	padding-bottom: 15px;
+
+	font-size: large;
+
+	background: rgb(220,220,220);
+
+	color: black;
+
+}
+
+
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer.xsl
new file mode 100644
index 0000000..25532ec
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer.xsl
@@ -0,0 +1,121 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xalan="http://xml.apache.org/xslt">
+	<xsl:output method="html" indent="yes" encoding="UTF-8" xalan:indent-amount="4"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">timer.title</xsl:param>
+	<xsl:include href="common.xsl"/>
+
+	<xsl:template name="domain">
+		<xsl:for-each select="Domain[MBean]">
+			<tr>
+				<td class="serverbydomain_domainline">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">timer.domain.title</xsl:with-param>
+						<xsl:with-param name="p0">
+							<xsl:value-of select="@name"/>
+						</xsl:with-param>
+					</xsl:call-template>
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<div class="tableheader">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">timer.domain.objectname</xsl:with-param>
+						</xsl:call-template>
+					</div>
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<table width="100%" cellpadding="0" cellspacing="0" border="0">
+						<xsl:call-template name="mbean"/>
+					</table>
+				</td>
+			</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<xsl:template match="MBean" name="mbean">
+		<xsl:for-each select="MBean">
+			<xsl:variable name="classtype">
+				<xsl:if test="(position() mod 2)=1">darkline</xsl:if>
+				<xsl:if test="(position() mod 2)=0">clearline</xsl:if>
+			</xsl:variable>
+			<tr class="{$classtype}">
+				<xsl:variable name="objectname">
+					<xsl:call-template name="uri-encode">
+						<xsl:with-param name="uri" select="@objectname"/>
+					</xsl:call-template>
+				</xsl:variable>
+				<td class="mbean_row">
+					<a href="mbean?objectname={$objectname}"><xsl:value-of select="@objectname"/></a>
+				</td>
+				<td align="right" class="mbean_row">
+					<a href="delete?objectname={$objectname}">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">timer.mbean.unregister</xsl:with-param>
+						</xsl:call-template>
+					</a>
+				</td>
+			</tr>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- Main template -->
+	<xsl:template match="Server" name="main">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">timer</xsl:with-param>
+				</xsl:call-template>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr>
+						<td width="100%" class="page_title">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">timer.main.title</xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+					<tr class="fronttab">
+						<form action="create">
+							<td align="right">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">timer.main.createlabel</xsl:with-param>
+								</xsl:call-template>
+								<xsl:variable name="str.createbutton">
+									<xsl:call-template name="str">
+										<xsl:with-param name="id">timer.main.createbutton</xsl:with-param>
+									</xsl:call-template>
+								</xsl:variable>
+								<input type="input" name="objectname"/>
+								<input type="hidden" name="template" value="timer_create"/>
+								<input type="hidden" name="class" value="javax.management.timer.Timer"/>
+								<input type="submit" value="{$str.createbutton}"/>
+							</td>
+							</form>
+					</tr>
+				</table>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<xsl:call-template name="domain"/>
+				</table>
+				<xsl:call-template name="bottom"/>
+			</body>
+	</html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer_create.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer_create.xsl
new file mode 100644
index 0000000..b0fe328
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/timer_create.xsl
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<!-- Overall parameters -->
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">timer_create.title</xsl:param>
+
+	<!-- Request parameters -->
+	<xsl:param name="request.objectname"/>
+	<xsl:param name="request.class"/>
+
+	<xsl:include href="common.xsl"/>
+
+	<!-- Operation template -->
+	<xsl:template name="operation" >
+		<xsl:for-each select="Operation">
+		<table width="100%" cellpadding="0" cellspacing="0" border="0">
+			<tr>
+				<td width="100%" class="page_title">
+					<xsl:call-template name="str">
+						<xsl:with-param name="id">timer_create.operation.title</xsl:with-param>
+						<xsl:with-param name="p0"><xsl:value-of select="$request.objectname"/></xsl:with-param>
+					</xsl:call-template>
+				</td>
+			</tr>
+			<tr>
+				<td class="clearline">
+					<xsl:if test="@result='success'">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">timer_create.operation.success</xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+					<xsl:if test="@result='error'">
+						<xsl:call-template name="str">
+							<xsl:with-param name="id">timer_create.operation.error</xsl:with-param>
+							<xsl:with-param name="p0"><xsl:value-of select="@errorMsg"/></xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+				</td>
+			</tr>
+				<xsl:if test="@result='success'">
+					<xsl:call-template name="mbeanview">
+						<xsl:with-param name="objectname"><xsl:value-of select="$request.objectname"/></xsl:with-param>
+						<xsl:with-param name="text">timer_create.operation.mbeanview</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+				<xsl:if test="@result='error'">
+					<xsl:call-template name="serverview"/>
+				</xsl:if>
+		</table>
+		</xsl:for-each>
+	</xsl:template>
+
+	<!-- Main template -->
+	<xsl:template match="MBeanOperation">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">timer</xsl:with-param>
+				</xsl:call-template>
+				<xsl:call-template name="operation"/>
+				<xsl:call-template name="bottom"/>
+			</body>
+	</html>
+</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewarray.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewarray.xsl
new file mode 100644
index 0000000..cb22bbf
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewarray.xsl
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">viewarray.title</xsl:param>
+	<xsl:param name="request.step">30</xsl:param>
+	<xsl:param name="request.start">0</xsl:param>
+	<xsl:param name="request.objectname"/>
+	<xsl:param name="request.attribute"/>
+	<xsl:param name="request.format"/>
+	<xsl:param name="request.template"/>
+
+	<xsl:include href="common.xsl"/>
+	<xsl:include href="mbean_attributes.xsl"/>
+
+	<!-- Main template -->
+	<xsl:template match="/" name="main">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mbean</xsl:with-param>
+				</xsl:call-template>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr>
+						<td colspan="2" class="page_title">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">viewarray.main.title</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="MBean/@objectname"/></xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+					<tr>
+						<td colspan="2" class="fronttab">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">viewarray.main.arraytitle</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="MBean/Attribute/@attribute"/></xsl:with-param>
+								<xsl:with-param name="p1"><xsl:value-of select="substring-before(substring-after(MBean/Attribute/@classname, '[L'), ';')"/></xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+					<tr>
+						<td class="fronttab">
+							<div class="tableheader">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">viewarray.main.index</xsl:with-param>
+								</xsl:call-template>
+							</div>
+						</td>
+						<td class="fronttab">
+							<div class="tableheader">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">viewarray.main.value</xsl:with-param>
+								</xsl:call-template>
+							</div>
+						</td>
+					</tr>
+					<xsl:for-each select="MBean/Attribute/Array/Element">
+						<xsl:sort order="ascending" select="@index"/>
+						<xsl:variable name="classtype">
+							<xsl:if test="(position() mod 2)=1">clearline</xsl:if>
+							<xsl:if test="(position() mod 2)=0">darkline</xsl:if>
+						</xsl:variable>
+						<tr class="{$classtype}">
+							<td class="aggregationrow"><xsl:value-of select="@index"/></td>
+							<td class="aggregationrow">
+								<xsl:call-template name="renderobject">
+									<xsl:with-param name="objectclass" select="../@componentclass"/>
+									<xsl:with-param name="objectvalue" select="@element"/>
+								</xsl:call-template>
+							</td>
+						</tr>
+					</xsl:for-each>
+
+					<xsl:variable name="url">getattribute?objectname=<xsl:call-template name="uri-encode"><xsl:with-param name="uri"><xsl:value-of select="$request.objectname"/></xsl:with-param></xsl:call-template>&amp;attribute=<xsl:value-of select="$request.attribute"/>&amp;format=array&amp;template=viewarray&amp;locale=<xsl:value-of select="$request.locale"/></xsl:variable>
+					<xsl:call-template name="aggregation-navigation">
+						<xsl:with-param name="url" select="$url"/>
+						<xsl:with-param name="total" select="count(MBean/Attribute/Array/Element)"/>
+						<xsl:with-param name="start" select="$request.start"/>
+						<xsl:with-param name="step" select="$request.step"/>
+						<xsl:with-param name="str.prefix">viewarray.main</xsl:with-param>
+					</xsl:call-template>
+
+					<xsl:call-template name="mbeanview">
+						<xsl:with-param name="objectname" select="MBean/@objectname"/>
+						<xsl:with-param name="colspan" select="4"/>
+					</xsl:call-template>
+
+				</table>
+
+				<xsl:call-template name="bottom"/>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewcollection.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewcollection.xsl
new file mode 100644
index 0000000..613feb0
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewcollection.xsl
@@ -0,0 +1,119 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">viewcollection.title</xsl:param>
+	<xsl:param name="request.step">30</xsl:param>
+	<xsl:param name="request.start">0</xsl:param>
+	<xsl:param name="request.objectname"/>
+	<xsl:param name="request.attribute"/>
+	<xsl:param name="request.format"/>
+	<xsl:param name="request.template"/>
+	<xsl:include href="common.xsl"/>
+	<xsl:include href="mbean_attributes.xsl"/>
+
+	<!-- Main template -->
+	<xsl:template match="/" name="main">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mbean</xsl:with-param>
+				</xsl:call-template>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr>
+						<td colspan="3" class="page_title">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">viewcollection.main.title</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="MBean/@objectname"/></xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+					<tr>
+						<td colspan="3" class="fronttab">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">viewcollection.main.viewcollectiontitle</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="MBean/Attribute/@classname"/></xsl:with-param>
+								<xsl:with-param name="p1"><xsl:value-of select="MBean/Attribute/@name"/></xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+					<tr>
+						<td class="fronttab">
+							<div class="tableheader">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">viewcollection.main.index</xsl:with-param>
+								</xsl:call-template>
+							</div>
+						</td>
+						<td class="fronttab">
+							<div class="tableheader">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">viewcollection.main.value</xsl:with-param>
+								</xsl:call-template>
+							</div>
+						</td>
+						<td class="fronttab">
+							<div class="tableheader">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">viewcollection.main.valueclass</xsl:with-param>
+								</xsl:call-template>
+							</div>
+						</td>
+					</tr>
+
+					<xsl:for-each select="MBean/Attribute/Collection/Element">
+						<xsl:sort order="ascending" select="@index"/>
+						<xsl:if test="position()&lt;($request.step+$request.start) and position()&gt;$request.start">
+							<xsl:variable name="classtype">
+								<xsl:if test="(position() mod 2)=1">clearline</xsl:if>
+								<xsl:if test="(position() mod 2)=0">darkline</xsl:if>
+							</xsl:variable>
+							<tr class="{$classtype}">
+								<td class="aggregationrow"><xsl:value-of select="@index"/></td>
+								<td class="aggregationrow">
+									<xsl:call-template name="renderobject">
+										<xsl:with-param name="objectclass" select="@elementclass"/>
+										<xsl:with-param name="objectvalue" select="@element"/>
+									</xsl:call-template>
+								</td>
+								<td class="aggregationrow"><xsl:value-of select="@elementclass"/></td>
+							</tr>
+						</xsl:if>
+					</xsl:for-each>
+
+					<xsl:variable name="url">getattribute?objectname=<xsl:call-template name="uri-encode"><xsl:with-param name="uri"><xsl:value-of select="$request.objectname"/></xsl:with-param></xsl:call-template>&amp;attribute=<xsl:value-of select="$request.attribute"/>&amp;format=collection&amp;template=viewcollection&amp;locale=<xsl:value-of select="$request.locale"/></xsl:variable>
+					<xsl:call-template name="aggregation-navigation">
+						<xsl:with-param name="url" select="$url"/>
+						<xsl:with-param name="total" select="count(MBean/Attribute/Collection/Element)"/>
+						<xsl:with-param name="start" select="$request.start"/>
+						<xsl:with-param name="step" select="$request.step"/>
+						<xsl:with-param name="str.prefix">viewcollection.main</xsl:with-param>
+					</xsl:call-template>
+
+					<xsl:call-template name="mbeanview">
+						<xsl:with-param name="objectname" select="MBean/@objectname"/>
+						<xsl:with-param name="colspan" select="3"/>
+					</xsl:call-template>
+				</table>
+
+				<xsl:call-template name="bottom"/>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewmap.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewmap.xsl
new file mode 100644
index 0000000..14b525e
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/viewmap.xsl
@@ -0,0 +1,131 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+	<xsl:output method="html" indent="yes" encoding="UTF-8"/>
+
+	<xsl:param name="html.stylesheet">stylesheet.css</xsl:param>
+	<xsl:param name="html.stylesheet.type">text/css</xsl:param>
+	<xsl:param name="head.title">viewmap.title</xsl:param>
+	<xsl:param name="request.step">30</xsl:param>
+	<xsl:param name="request.start">0</xsl:param>
+	<xsl:param name="request.objectname"/>
+	<xsl:param name="request.attribute"/>
+	<xsl:param name="request.format"/>
+	<xsl:param name="request.template"/>
+	<xsl:include href="common.xsl"/>
+	<xsl:include href="mbean_attributes.xsl"/>
+
+	<!-- Main template -->
+	<xsl:template match="/" name="main">
+		<html>
+			<xsl:call-template name="head"/>
+			<body>
+				<xsl:call-template name="toprow"/>
+				<xsl:call-template name="tabs">
+					<xsl:with-param name="selection">mbean</xsl:with-param>
+				</xsl:call-template>
+				<table width="100%" cellpadding="0" cellspacing="0" border="0">
+					<tr>
+						<td colspan="4" class="page_title">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">viewmap.main.title</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="MBean/@objectname"/></xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+					<tr>
+						<td colspan="4" class="fronttab">
+							<xsl:call-template name="str">
+								<xsl:with-param name="id">viewmap.main.viewmaptitle</xsl:with-param>
+								<xsl:with-param name="p0"><xsl:value-of select="MBean/Attribute/@classname"/></xsl:with-param>
+								<xsl:with-param name="p1"><xsl:value-of select="MBean/Attribute/@name"/></xsl:with-param>
+							</xsl:call-template>
+						</td>
+					</tr>
+					<tr>
+						<td class="fronttab">
+							<div class="tableheader">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">viewmap.main.key</xsl:with-param>
+								</xsl:call-template>
+							</div>
+						</td>
+						<td class="fronttab">
+							<div class="tableheader">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">viewmap.main.keyclass</xsl:with-param>
+								</xsl:call-template>
+							</div>
+						</td>
+						<td class="fronttab">
+							<div class="tableheader">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">viewmap.main.value</xsl:with-param>
+								</xsl:call-template>
+							</div>
+						</td>
+						<td class="fronttab">
+							<div class="tableheader">
+								<xsl:call-template name="str">
+									<xsl:with-param name="id">viewmap.main.valueclass</xsl:with-param>
+								</xsl:call-template>
+							</div>
+						</td>
+					</tr>
+					<xsl:for-each select="MBean/Attribute/Map/Element">
+						<xsl:sort order="ascending" select="@index"/>
+						<xsl:if test="position()&lt;($request.step+$request.start) and position()&gt;$request.start">
+							<xsl:variable name="classtype">
+								<xsl:if test="(position() mod 2)=1">clearline</xsl:if>
+								<xsl:if test="(position() mod 2)=0">darkline</xsl:if>
+							</xsl:variable>
+							<tr class="{$classtype}">
+								<td class="aggregationrow">
+									<xsl:call-template name="renderobject">
+										<xsl:with-param name="objectclass" select="@keyclass"/>
+										<xsl:with-param name="objectvalue" select="@key"/>
+									</xsl:call-template>
+								</td>
+								<td class="aggregationrow"><xsl:value-of select="@keyclass"/></td>
+								<td class="aggregationrow">
+									<xsl:call-template name="renderobject">
+										<xsl:with-param name="objectclass" select="@elementclass"/>
+										<xsl:with-param name="objectvalue" select="@element"/>
+									</xsl:call-template>
+								</td>
+								<td class="aggregationrow"><xsl:value-of select="@elementclass"/></td>
+							</tr>
+						</xsl:if>
+					</xsl:for-each>
+
+					<xsl:variable name="url">getattribute?objectname=<xsl:call-template name="uri-encode"><xsl:with-param name="uri"><xsl:value-of select="$request.objectname"/></xsl:with-param></xsl:call-template>&amp;attribute=<xsl:value-of select="$request.attribute"/>&amp;format=map&amp;template=viewmap&amp;locale=<xsl:value-of select="$request.locale"/></xsl:variable>
+					<xsl:call-template name="aggregation-navigation">
+						<xsl:with-param name="url" select="$url"/>
+						<xsl:with-param name="total" select="count(MBean/Attribute/Map/Element)"/>
+						<xsl:with-param name="start" select="$request.start"/>
+						<xsl:with-param name="step" select="$request.step"/>
+						<xsl:with-param name="str.prefix">viewmap.main</xsl:with-param>
+					</xsl:call-template>
+
+					<xsl:call-template name="mbeanview">
+						<xsl:with-param name="objectname" select="MBean/@objectname"/>
+						<xsl:with-param name="colspan" select="4"/>
+					</xsl:call-template>
+				</table>
+
+				<xsl:call-template name="bottom"/>
+			</body>
+		</html>
+	</xsl:template>
+</xsl:stylesheet>
+
diff --git a/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/xalan-ext.xsl b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/xalan-ext.xsl
new file mode 100644
index 0000000..f1e54ba
--- /dev/null
+++ b/org.apache.felix.mosgi.jmx.httpconnector/src/main/resources/mx4j/tools/adaptor/http/xsl/xalan-ext.xsl
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!--
+ Copyright (C) MX4J.
+ All rights reserved.
+
+ This software is distributed under the terms of the MX4J License version 1.0.
+ See the terms of the MX4J License in the documentation provided with this software.
+
+ Author: Carlos Quiroz (tibu@users.sourceforge.net)
+				 Brett Knights
+ Revision: $Revision: 1.1.1.1 $
+																																					-->
+<xsl:stylesheet
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	version="1.0"
+	xmlns:encoder="/java.net.URLEncoder"
+	xmlns:java="http://xml.apache.org/xslt/java"
+	exclude-result-prefixes="java">
+
+	<xsl:template name="uri-encode">
+		<xsl:param name="uri"/>
+			<xsl:choose>
+				<xsl:when test="function-available('java:java.net.URLEncoder.encode')">
+					<xsl:value-of select="java:java.net.URLEncoder.encode($uri)"/>
+				</xsl:when>
+				<xsl:when test="function-available('encoder:encode')">
+					<xsl:value-of select="encoder:encode($uri)"/>
+				</xsl:when>
+				<xsl:otherwise>
+					<xsl:message>No encode function available</xsl:message>
+					<xsl:value-of select="$uri"/>
+				</xsl:otherwise>
+			</xsl:choose>
+	</xsl:template>
+</xsl:stylesheet>