++++
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
<link rel="stylesheet" href="http://www.osgi.org/www/osgi.css" type="text/css">
<style type="text/css">
					.code { font-family: Courier,
					sans-serif; }
					.error,.ok, .info,
					.warning {
					background-position: 4 4;
					background-repeat:no-repeat;
					width:10px; }
					.ok {
					background-image:url("http://www.osgi.org/www/greenball.png"); }
					.warning {
					background-image:url("http://www.osgi.org/www/orangeball.png"); }
					.error {
					background-image:url("http://www.osgi.org/www/redball.png"); }
					.info {
					background-image:url("http://www.osgi.org/www/info.png"); }
					.class { padding-top:20px; padding-bottom: 10px; font-size:12;
					font-weight:bold; }

					h2 { margin-top : 20px; margin-bottom:10px; }
					table, th, td { border: 1px solid black; padding:5px; }
					table {
					border-collapse:collapse; width:100%; margin-top:20px;}
					th { height:20px; }
					}
				</style>
<script language="javascript">
					function toggle(name) {
					var el =
					document.getElementById(name);
					if ( el.style.display != 'none' ) {
					el.style.display = 'none';
					}
					else {
					el.style.display = '';
					}
					}
				</script>
</head>
<body style="width:800px">
<h2>Summary</h2>
<p>The following table provides a sumary of the test information.</p>
<table>
<tr>
<th>Property Key</th><th>Property Value</th>
</tr>
<tr>
<td width="50%">Target</td><td>/Users/nottinga/Downloads/osgict/jar/org.osgi.test.cases.jndi.secure-4.2.0.jar</td>
</tr>
<tr>
<td width="50%">Framework</td><td>org.eclipse.osgi.launch.Equinox@6f9ec4ed</td>
</tr>
<tr>
<td width="50%">Testrun</td><td>Tue May 17 20:18:55 BST 2011</td>
</tr>
<tr>
<th colspan="2">Bundles</th>
</tr>
<tr>
<td>org.eclipse.osgi</td><td>3.5.0.v20090520</td>
</tr>
<tr>
<td>osgi.enterprise</td><td>4.2.0.201003190513</td>
</tr>
<tr>
<td>org.apache.aries.util</td><td>0.3.0</td>
</tr>
<tr>
<td>org.apache.aries.proxy</td><td>0.3.0</td>
</tr>
<tr>
<td>org.apache.aries.jndi</td><td>0.3.0</td>
</tr>
<tr>
<td>slf4j.api</td><td>1.5.11</td>
</tr>
<tr>
<td>slf4j.simple</td><td>1.5.11</td>
</tr>
<tr>
<td>org.objectweb.asm.all</td><td>3.2</td>
</tr>
<tr>
<td>org.osgi.test.cases.jndi.secure</td><td>4.2.0.201004301238</td>
</tr>
</table>
<h2>Testcases</h2>
<p>The following table shows the results of each test. A red icon indicates that the
					test failed or had an error. A green icon
					indicates success. Any errors or failure messages
					will be displayed as a list beneath the test name. To see the
					exception, click on the info icon on the right.</p>
<table width="100%">
<tr>
<th width="15px"><img src="http://www.osgi.org/www/colorball.png" title="Status. red=bad, orange=almost good, green is perfect"></th><th>Test</th><th>Failures</th><th>Error</th><th>Info</th>
</tr>
<tr>
<td width="15px" class="
                                        ok
                                    "></td><td class="code">testLookupAccessRestrictions</td><td>0</td><td>0</td><td></td>
</tr>
<tr>
<td width="15px" class="
                                        ok
                                    "></td><td class="code">testBundleContextAccessRestrictions</td><td>0</td><td>0</td><td></td>
</tr>
<tr>
<td width="15px" class="
                                        ok
                                    "></td><td class="code">testSecureLookupWithSpecificInitialContextFactory</td><td>0</td><td>0</td><td></td>
</tr>
<tr>
<td width="15px" class="
                                        ok
                                    "></td><td class="code">testSecureLookupWithInitialContextFactoryBuilder</td><td>0</td><td>0</td><td></td>
</tr>
<tr>
<td width="15px" class="
                                        ok
                                    "></td><td class="code">testSecureGetObjectInstanceWithFactoryName</td><td>0</td><td>0</td><td></td>
</tr>
<tr>
<td width="15px" class="
                                        ok
                                    "></td><td class="code">testSecureGetObjectInstanceWithFactoryNameAndAttributes</td><td>0</td><td>0</td><td></td>
</tr>
<tr>
<td width="15px" class="
                                        ok
                                    "></td><td class="code">testSecureGetObjectInstanceWithBuilder</td><td>0</td><td>0</td><td></td>
</tr>
</table>
<br>
</body>
</html>
++++
