<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_22) on Fri Jan 21 22:15:06 GMT 2011 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Index (Apache Aries JNDI API 0.3-SNAPSHOT API)
</TITLE>

<META NAME="date" CONTENT="2011-01-21">

<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Index (Apache Aries JNDI API 0.3-SNAPSHOT API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_J_">J</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_U_">U</A> <HR>
<A NAME="_A_"><!-- --></A><H2>
<B>A</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/jndi/spi/EnvironmentAugmentation.html#augmentEnvironment(java.util.Hashtable)"><B>augmentEnvironment(Hashtable&lt;?, ?&gt;)</B></A> - 
Method in interface org.apache.aries.jndi.spi.<A HREF="./org/apache/aries/jndi/spi/EnvironmentAugmentation.html" title="interface in org.apache.aries.jndi.spi">EnvironmentAugmentation</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_B_"><!-- --></A><H2>
<B>B</B></H2>
<DL>
<DT><A HREF="./org/osgi/service/jndi/JNDIConstants.html#BUNDLE_CONTEXT"><B>BUNDLE_CONTEXT</B></A> - 
Static variable in class org.osgi.service.jndi.<A HREF="./org/osgi/service/jndi/JNDIConstants.html" title="class in org.osgi.service.jndi">JNDIConstants</A>
<DD>This JNDI environment property can be used by a JNDI client to indicate
 the caller's BundleContext.
</DL>
<HR>
<A NAME="_E_"><!-- --></A><H2>
<B>E</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/jndi/spi/EnvironmentAugmentation.html" title="interface in org.apache.aries.jndi.spi"><B>EnvironmentAugmentation</B></A> - Interface in <A HREF="./org/apache/aries/jndi/spi/package-summary.html">org.apache.aries.jndi.spi</A><DD>&nbsp;</DL>
<HR>
<A NAME="_F_"><!-- --></A><H2>
<B>F</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/jndi/urls/URLObjectFactoryFinder.html#findFactory(java.lang.String, java.util.Hashtable)"><B>findFactory(String, Hashtable&lt;?, ?&gt;)</B></A> - 
Method in interface org.apache.aries.jndi.urls.<A HREF="./org/apache/aries/jndi/urls/URLObjectFactoryFinder.html" title="interface in org.apache.aries.jndi.urls">URLObjectFactoryFinder</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_G_"><!-- --></A><H2>
<B>G</B></H2>
<DL>
<DT><A HREF="./org/osgi/service/jndi/JNDIProviderAdmin.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Map)"><B>getObjectInstance(Object, Name, Context, Map&lt;?, ?&gt;)</B></A> - 
Method in interface org.osgi.service.jndi.<A HREF="./org/osgi/service/jndi/JNDIProviderAdmin.html" title="interface in org.osgi.service.jndi">JNDIProviderAdmin</A>
<DD>Resolve the object from the given reference.
<DT><A HREF="./org/osgi/service/jndi/JNDIProviderAdmin.html#getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Map, javax.naming.directory.Attributes)"><B>getObjectInstance(Object, Name, Context, Map&lt;?, ?&gt;, Attributes)</B></A> - 
Method in interface org.osgi.service.jndi.<A HREF="./org/osgi/service/jndi/JNDIProviderAdmin.html" title="interface in org.osgi.service.jndi">JNDIProviderAdmin</A>
<DD>Resolve the object from the given reference.
</DL>
<HR>
<A NAME="_J_"><!-- --></A><H2>
<B>J</B></H2>
<DL>
<DT><A HREF="./org/osgi/service/jndi/JNDIConstants.html#JNDI_SERVICENAME"><B>JNDI_SERVICENAME</B></A> - 
Static variable in class org.osgi.service.jndi.<A HREF="./org/osgi/service/jndi/JNDIConstants.html" title="class in org.osgi.service.jndi">JNDIConstants</A>
<DD>This service property is set on an OSGi service to provide a name that
 can be used to locate the service other than the service interface name.
<DT><A HREF="./org/osgi/service/jndi/JNDIConstants.html#JNDI_URLSCHEME"><B>JNDI_URLSCHEME</B></A> - 
Static variable in class org.osgi.service.jndi.<A HREF="./org/osgi/service/jndi/JNDIConstants.html" title="class in org.osgi.service.jndi">JNDIConstants</A>
<DD>This service property is set by JNDI Providers that publish URL Context
 Factories as OSGi Services.
<DT><A HREF="./org/osgi/service/jndi/JNDIConstants.html" title="class in org.osgi.service.jndi"><B>JNDIConstants</B></A> - Class in <A HREF="./org/osgi/service/jndi/package-summary.html">org.osgi.service.jndi</A><DD>Constants for the JNDI implementation.<DT><A HREF="./org/osgi/service/jndi/JNDIContextManager.html" title="interface in org.osgi.service.jndi"><B>JNDIContextManager</B></A> - Interface in <A HREF="./org/osgi/service/jndi/package-summary.html">org.osgi.service.jndi</A><DD>This interface defines the OSGi service interface for the JNDIContextManager.<DT><A HREF="./org/osgi/service/jndi/JNDIProviderAdmin.html" title="interface in org.osgi.service.jndi"><B>JNDIProviderAdmin</B></A> - Interface in <A HREF="./org/osgi/service/jndi/package-summary.html">org.osgi.service.jndi</A><DD>This interface defines the OSGi service interface for the JNDIProviderAdmin
 service.</DL>
<HR>
<A NAME="_N_"><!-- --></A><H2>
<B>N</B></H2>
<DL>
<DT><A HREF="./org/osgi/service/jndi/JNDIContextManager.html#newInitialContext()"><B>newInitialContext()</B></A> - 
Method in interface org.osgi.service.jndi.<A HREF="./org/osgi/service/jndi/JNDIContextManager.html" title="interface in org.osgi.service.jndi">JNDIContextManager</A>
<DD>Creates a new JNDI initial context with the default JNDI environment
 properties.
<DT><A HREF="./org/osgi/service/jndi/JNDIContextManager.html#newInitialContext(java.util.Map)"><B>newInitialContext(Map&lt;?, ?&gt;)</B></A> - 
Method in interface org.osgi.service.jndi.<A HREF="./org/osgi/service/jndi/JNDIContextManager.html" title="interface in org.osgi.service.jndi">JNDIContextManager</A>
<DD>Creates a new JNDI initial context with the specified JNDI environment
 properties.
<DT><A HREF="./org/osgi/service/jndi/JNDIContextManager.html#newInitialDirContext()"><B>newInitialDirContext()</B></A> - 
Method in interface org.osgi.service.jndi.<A HREF="./org/osgi/service/jndi/JNDIContextManager.html" title="interface in org.osgi.service.jndi">JNDIContextManager</A>
<DD>Creates a new initial DirContext with the default JNDI environment
 properties.
<DT><A HREF="./org/osgi/service/jndi/JNDIContextManager.html#newInitialDirContext(java.util.Map)"><B>newInitialDirContext(Map&lt;?, ?&gt;)</B></A> - 
Method in interface org.osgi.service.jndi.<A HREF="./org/osgi/service/jndi/JNDIContextManager.html" title="interface in org.osgi.service.jndi">JNDIContextManager</A>
<DD>Creates a new initial DirContext with the specified JNDI environment
 properties.
</DL>
<HR>
<A NAME="_O_"><!-- --></A><H2>
<B>O</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/jndi/spi/package-summary.html"><B>org.apache.aries.jndi.spi</B></A> - package org.apache.aries.jndi.spi<DD>&nbsp;<DT><A HREF="./org/apache/aries/jndi/urls/package-summary.html"><B>org.apache.aries.jndi.urls</B></A> - package org.apache.aries.jndi.urls<DD>&nbsp;<DT><A HREF="./org/osgi/service/jndi/package-summary.html"><B>org.osgi.service.jndi</B></A> - package org.osgi.service.jndi<DD>JNDI Package Version 1.0.</DL>
<HR>
<A NAME="_U_"><!-- --></A><H2>
<B>U</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/jndi/urls/URLObjectFactoryFinder.html" title="interface in org.apache.aries.jndi.urls"><B>URLObjectFactoryFinder</B></A> - Interface in <A HREF="./org/apache/aries/jndi/urls/package-summary.html">org.apache.aries.jndi.urls</A><DD>&nbsp;</DL>
<HR>
<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_J_">J</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_U_">U</A> 

<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2009-2011 <a href="http://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
