<!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 21:47:03 GMT 2011 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Index (Apache Aries Application 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 Application 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="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <HR>
<A NAME="_A_"><!-- --></A><H2>
<B>A</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationManager.html#addApplicationListener(org.apache.aries.application.management.AriesApplicationListener)"><B>addApplicationListener(AriesApplicationListener)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationManager.html" title="interface in org.apache.aries.application.management">AriesApplicationManager</A>
<DD>Add an AriesApplicationListener
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#addBundle(org.apache.aries.application.modelling.ModelledResource)"><B>addBundle(ModelledResource)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>Add a modelled resource
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html#allowsUpdate(org.apache.aries.application.DeploymentMetadata, org.apache.aries.application.DeploymentMetadata)"><B>allowsUpdate(DeploymentMetadata, DeploymentMetadata)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.html#allowsUpdate(org.apache.aries.application.DeploymentMetadata, org.apache.aries.application.DeploymentMetadata)"><B>allowsUpdate(DeploymentMetadata, DeploymentMetadata)</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy</A>
<DD>Are the two deployments subject to update or do they require full reinstall
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationListener.html#applicationChanged(org.apache.aries.application.management.AriesApplicationEvent)"><B>applicationChanged(AriesApplicationEvent)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationListener.html" title="interface in org.apache.aries.application.management">AriesApplicationListener</A>
<DD>Receives notification of an application lifecycle event
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application"><B>ApplicationMetadata</B></A> - Interface in <A HREF="./org/apache/aries/application/package-summary.html">org.apache.aries.application</A><DD>A representation of an APPLICATION.MF file.<DT><A HREF="./org/apache/aries/application/ApplicationMetadataFactory.html" title="interface in org.apache.aries.application"><B>ApplicationMetadataFactory</B></A> - Interface in <A HREF="./org/apache/aries/application/package-summary.html">org.apache.aries.application</A><DD>Provides various means of generating <A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application"><CODE>ApplicationMetadata</CODE></A> instances.<DT><A HREF="./org/apache/aries/application/modelling/utils/ModellingHelper.html#areMandatoryAttributesPresent(java.util.Map, org.apache.aries.application.modelling.Provider)"><B>areMandatoryAttributesPresent(Map&lt;String, String&gt;, Provider)</B></A> - 
Method in interface org.apache.aries.application.modelling.utils.<A HREF="./org/apache/aries/application/modelling/utils/ModellingHelper.html" title="interface in org.apache.aries.application.modelling.utils">ModellingHelper</A>
<DD>Check that all mandatory attributes from a Provider are specified by the consumer's attributes
<DT><A HREF="./org/apache/aries/application/management/AriesApplication.html" title="interface in org.apache.aries.application.management"><B>AriesApplication</B></A> - Interface in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>Metadata about an Aries application<DT><A HREF="./org/apache/aries/application/management/AriesApplicationContext.html" title="interface in org.apache.aries.application.management"><B>AriesApplicationContext</B></A> - Interface in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>Represents an Aries application in the runtime.<DT><A HREF="./org/apache/aries/application/management/AriesApplicationContext.ApplicationState.html" title="enum in org.apache.aries.application.management"><B>AriesApplicationContext.ApplicationState</B></A> - Enum in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/runtime/AriesApplicationContextManager.html" title="interface in org.apache.aries.application.management.spi.runtime"><B>AriesApplicationContextManager</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/runtime/package-summary.html">org.apache.aries.application.management.spi.runtime</A><DD>An ApplicationContextManager is responsible for managing Aries applications in the 
 server's OSGi runtime.<DT><A HREF="./org/apache/aries/application/management/AriesApplicationEvent.html" title="class in org.apache.aries.application.management"><B>AriesApplicationEvent</B></A> - Class in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>Objects of this type are passed to ApplicationListener clients<DT><A HREF="./org/apache/aries/application/management/AriesApplicationEvent.html#AriesApplicationEvent()"><B>AriesApplicationEvent()</B></A> - 
Constructor for class org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationEvent.html" title="class in org.apache.aries.application.management">AriesApplicationEvent</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationListener.html" title="interface in org.apache.aries.application.management"><B>AriesApplicationListener</B></A> - Interface in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>A client that wishes to receive AriesApplicationEvents should implement this interface.<DT><A HREF="./org/apache/aries/application/management/AriesApplicationManager.html" title="interface in org.apache.aries.application.management"><B>AriesApplicationManager</B></A> - Interface in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>An AriesApplicationManager service is used to create, install and uninstall Aries
 applications.<DT><A HREF="./org/apache/aries/application/management/spi/resolve/AriesApplicationResolver.html" title="interface in org.apache.aries.application.management.spi.resolve"><B>AriesApplicationResolver</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/resolve/package-summary.html">org.apache.aries.application.management.spi.resolve</A><DD>An <code>AriesApplicationResolver</code> is a service used by the <A HREF="./org/apache/aries/application/management/AriesApplicationManager.html" title="interface in org.apache.aries.application.management"><CODE>AriesApplicationManager</CODE></A> when one of the
 <code>createApplication</code> methods are called.</DL>
<HR>
<A NAME="_B_"><!-- --></A><H2>
<B>B</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/modelling/utils/ModellingHelper.html#buildFragmentHost(java.lang.String)"><B>buildFragmentHost(String)</B></A> - 
Method in interface org.apache.aries.application.modelling.utils.<A HREF="./org/apache/aries/application/modelling/utils/ModellingHelper.html" title="interface in org.apache.aries.application.modelling.utils">ModellingHelper</A>
<DD>Create an ImportedBundle from a Fragment-Host string
<DT><A HREF="./org/apache/aries/application/management/spi/convert/BundleConversion.html" title="interface in org.apache.aries.application.management.spi.convert"><B>BundleConversion</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/convert/package-summary.html">org.apache.aries.application.management.spi.convert</A><DD>A BundleConversion represents a .JAR file which has been converted in to 
 an well-formed OSGi bundle, or a .WAR file which has been converted into a .WAB 
 file<DT><A HREF="./org/apache/aries/application/management/spi/convert/BundleConverter.html" title="interface in org.apache.aries.application.management.spi.convert"><B>BundleConverter</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/convert/package-summary.html">org.apache.aries.application.management.spi.convert</A><DD>A BundleConverter turns a .jar that is not an OSGi bundle into a well formed OSGi bundle,
 or a .war that is not a WAB into a WAB.<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework"><B>BundleFramework</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/framework/package-summary.html">org.apache.aries.application.management.spi.framework</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfiguration.html" title="interface in org.apache.aries.application.management.spi.framework"><B>BundleFrameworkConfiguration</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/framework/package-summary.html">org.apache.aries.application.management.spi.framework</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfigurationFactory.html" title="interface in org.apache.aries.application.management.spi.framework"><B>BundleFrameworkConfigurationFactory</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/framework/package-summary.html">org.apache.aries.application.management.spi.framework</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkFactory.html" title="interface in org.apache.aries.application.management.spi.framework"><B>BundleFrameworkFactory</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/framework/package-summary.html">org.apache.aries.application.management.spi.framework</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework"><B>BundleFrameworkManager</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/framework/package-summary.html">org.apache.aries.application.management.spi.framework</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.BundleLocator.html" title="interface in org.apache.aries.application.management.spi.framework"><B>BundleFrameworkManager.BundleLocator</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/framework/package-summary.html">org.apache.aries.application.management.spi.framework</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management"><B>BundleInfo</B></A> - Interface in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>Information about a bundle<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.html" title="interface in org.apache.aries.application.management.spi.repository"><B>BundleRepository</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/repository/package-summary.html">org.apache.aries.application.management.spi.repository</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html" title="interface in org.apache.aries.application.management.spi.repository"><B>BundleRepository.BundleSuggestion</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/repository/package-summary.html">org.apache.aries.application.management.spi.repository</A><DD>A suggested bundle to use.<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html" title="interface in org.apache.aries.application.management.spi.repository"><B>BundleRepositoryManager</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/repository/package-summary.html">org.apache.aries.application.management.spi.repository</A><DD>&nbsp;</DL>
<HR>
<A NAME="_C_"><!-- --></A><H2>
<B>C</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#close()"><B>close()</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>Closes the framework and any associated resource
<DT><A HREF="./org/apache/aries/application/modelling/Consumer.html" title="interface in org.apache.aries.application.modelling"><B>Consumer</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/Content.html" title="interface in org.apache.aries.application"><B>Content</B></A> - Interface in <A HREF="./org/apache/aries/application/package-summary.html">org.apache.aries.application</A><DD>A representation of content metadata such as Application-Content, Import-Package, etc<DT><A HREF="./org/apache/aries/application/management/spi/repository/ContextException.html" title="class in org.apache.aries.application.management.spi.repository"><B>ContextException</B></A> - Exception in <A HREF="./org/apache/aries/application/management/spi/repository/package-summary.html">org.apache.aries.application.management.spi.repository</A><DD>An exception thrown by various methods within this package.<DT><A HREF="./org/apache/aries/application/management/spi/repository/ContextException.html#ContextException(java.lang.Exception)"><B>ContextException(Exception)</B></A> - 
Constructor for exception org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/ContextException.html" title="class in org.apache.aries.application.management.spi.repository">ContextException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/repository/ContextException.html#ContextException(java.lang.String)"><B>ContextException(String)</B></A> - 
Constructor for exception org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/ContextException.html" title="class in org.apache.aries.application.management.spi.repository">ContextException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/repository/ContextException.html#ContextException(java.lang.String, java.lang.Exception)"><B>ContextException(String, Exception)</B></A> - 
Constructor for exception org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/ContextException.html" title="class in org.apache.aries.application.management.spi.repository">ContextException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/convert/ConversionException.html" title="class in org.apache.aries.application.management.spi.convert"><B>ConversionException</B></A> - Exception in <A HREF="./org/apache/aries/application/management/spi/convert/package-summary.html">org.apache.aries.application.management.spi.convert</A><DD>An Exception thrown by a BundleConverter<DT><A HREF="./org/apache/aries/application/management/spi/convert/ConversionException.html#ConversionException(java.lang.Exception)"><B>ConversionException(Exception)</B></A> - 
Constructor for exception org.apache.aries.application.management.spi.convert.<A HREF="./org/apache/aries/application/management/spi/convert/ConversionException.html" title="class in org.apache.aries.application.management.spi.convert">ConversionException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/convert/ConversionException.html#ConversionException(java.lang.String)"><B>ConversionException(String)</B></A> - 
Constructor for exception org.apache.aries.application.management.spi.convert.<A HREF="./org/apache/aries/application/management/spi/convert/ConversionException.html" title="class in org.apache.aries.application.management.spi.convert">ConversionException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html#convert()"><B>convert()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem">IFile</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/convert/BundleConverter.html#convert(org.apache.aries.application.filesystem.IDirectory, org.apache.aries.application.filesystem.IFile)"><B>convert(IDirectory, IFile)</B></A> - 
Method in interface org.apache.aries.application.management.spi.convert.<A HREF="./org/apache/aries/application/management/spi/convert/BundleConverter.html" title="interface in org.apache.aries.application.management.spi.convert">BundleConverter</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationManager.html#createApplication(org.apache.aries.application.filesystem.IDirectory)"><B>createApplication(IDirectory)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationManager.html" title="interface in org.apache.aries.application.management">AriesApplicationManager</A>
<DD>Create an AriesApplication from a local resource.
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationManager.html#createApplication(java.net.URL)"><B>createApplication(URL)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationManager.html" title="interface in org.apache.aries.application.management">AriesApplicationManager</A>
<DD>Create an AriesApplication from a remote resource.
<DT><A HREF="./org/apache/aries/application/ApplicationMetadataFactory.html#createApplicationMetadata(java.util.jar.Manifest)"><B>createApplicationMetadata(Manifest)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadataFactory.html" title="interface in org.apache.aries.application">ApplicationMetadataFactory</A>
<DD>Create the application metadata from the provided Manifest.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkFactory.html#createBundleFramework(org.osgi.framework.BundleContext, org.apache.aries.application.management.spi.framework.BundleFrameworkConfiguration)"><B>createBundleFramework(BundleContext, BundleFrameworkConfiguration)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkFactory.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkFactory</A>
<DD>Creates a new isolated bundle framework with the properties provided.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfigurationFactory.html#createBundleFrameworkConfig(java.lang.String, org.osgi.framework.BundleContext)"><B>createBundleFrameworkConfig(String, BundleContext)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfigurationFactory.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkConfigurationFactory</A>
<DD>Create a BundleFrameworkConfiguration with basic config
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfigurationFactory.html#createBundleFrameworkConfig(java.lang.String, org.osgi.framework.BundleContext, org.apache.aries.application.management.AriesApplication)"><B>createBundleFrameworkConfig(String, BundleContext, AriesApplication)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfigurationFactory.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkConfigurationFactory</A>
<DD>Create a BundleFrameworkConiguration for an application framework based
 on a given AriesApplication.
<DT><A HREF="./org/apache/aries/application/modelling/utils/ModellingHelper.html#createDeployedBundles(java.lang.String, java.util.Collection, java.util.Collection, java.util.Collection)"><B>createDeployedBundles(String, Collection&lt;ImportedBundle&gt;, Collection&lt;ImportedBundle&gt;, Collection&lt;ModelledResource&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.utils.<A HREF="./org/apache/aries/application/modelling/utils/ModellingHelper.html" title="interface in org.apache.aries.application.modelling.utils">ModellingHelper</A>
<DD>Factory method for objects implementing the DeployedBundles interface
<DT><A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html#createDeploymentMetadata(org.apache.aries.application.management.AriesApplication, java.util.Set)"><B>createDeploymentMetadata(AriesApplication, Set&lt;BundleInfo&gt;)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html" title="interface in org.apache.aries.application">DeploymentMetadataFactory</A>
<DD><B>Deprecated.</B>&nbsp;
<DT><A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html#createDeploymentMetadata(org.apache.aries.application.filesystem.IFile)"><B>createDeploymentMetadata(IFile)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html" title="interface in org.apache.aries.application">DeploymentMetadataFactory</A>
<DD><B>Deprecated.</B>&nbsp;
<DT><A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html#createDeploymentMetadata(java.io.InputStream)"><B>createDeploymentMetadata(InputStream)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html" title="interface in org.apache.aries.application">DeploymentMetadataFactory</A>
<DD><B>Deprecated.</B>&nbsp;
<DT><A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html#createDeploymentMetadata(java.util.jar.Manifest)"><B>createDeploymentMetadata(Manifest)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html" title="interface in org.apache.aries.application">DeploymentMetadataFactory</A>
<DD>Extract a DeploymentMetadata instance from Manifest.
</DL>
<HR>
<A NAME="_D_"><!-- --></A><H2>
<B>D</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling"><B>DeployedBundles</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>A model of a collection of bundles and similar resources<DT><A HREF="./org/apache/aries/application/DeploymentContent.html" title="interface in org.apache.aries.application"><B>DeploymentContent</B></A> - Interface in <A HREF="./org/apache/aries/application/package-summary.html">org.apache.aries.application</A><DD>An entry in DEPLOYMENT.MF's Deployed-Content header<DT><A HREF="./org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.html" title="interface in org.apache.aries.application.management.spi.resolve"><B>DeploymentManifestManager</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/resolve/package-summary.html">org.apache.aries.application.management.spi.resolve</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application"><B>DeploymentMetadata</B></A> - Interface in <A HREF="./org/apache/aries/application/package-summary.html">org.apache.aries.application</A><DD>Represents the parsed contents of a DEPLOYMENT.MF file<DT><A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html" title="interface in org.apache.aries.application"><B>DeploymentMetadataFactory</B></A> - Interface in <A HREF="./org/apache/aries/application/package-summary.html">org.apache.aries.application</A><DD>Methods for creating a DeploymentMetadata instance<DT><A HREF="./org/apache/aries/application/modelling/DeploymentMFElement.html" title="interface in org.apache.aries.application.modelling"><B>DeploymentMFElement</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>&nbsp;</DL>
<HR>
<A NAME="_E_"><!-- --></A><H2>
<B>E</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/modelling/ExportedBundle.html" title="interface in org.apache.aries.application.modelling"><B>ExportedBundle</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>Model a bundle, required by another bundle.<DT><A HREF="./org/apache/aries/application/modelling/ExportedPackage.html" title="interface in org.apache.aries.application.modelling"><B>ExportedPackage</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>Model an exported package.<DT><A HREF="./org/apache/aries/application/modelling/ExportedService.html" title="interface in org.apache.aries.application.modelling"><B>ExportedService</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>This interface models the exported service.</DL>
<HR>
<A NAME="_G_"><!-- --></A><H2>
<B>G</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.html#generateDeployedBundles(org.apache.aries.application.ApplicationMetadata, java.util.Collection, java.util.Collection)"><B>generateDeployedBundles(ApplicationMetadata, Collection&lt;ModelledResource&gt;, Collection&lt;Content&gt;)</B></A> - 
Method in interface org.apache.aries.application.management.spi.resolve.<A HREF="./org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.html" title="interface in org.apache.aries.application.management.spi.resolve">DeploymentManifestManager</A>
<DD>Generate the deployment manifest map.
<DT><A HREF="./org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.html#generateDeploymentManifest(org.apache.aries.application.management.AriesApplication, org.apache.aries.application.management.ResolveConstraint...)"><B>generateDeploymentManifest(AriesApplication, ResolveConstraint...)</B></A> - 
Method in interface org.apache.aries.application.management.spi.resolve.<A HREF="./org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.html" title="interface in org.apache.aries.application.management.spi.resolve">DeploymentManifestManager</A>
<DD>Generate the deployment manifest map for the application.
<DT><A HREF="./org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.html#generateDeploymentManifest(java.lang.String, java.lang.String, org.apache.aries.application.modelling.DeployedBundles)"><B>generateDeploymentManifest(String, String, DeployedBundles)</B></A> - 
Method in interface org.apache.aries.application.management.spi.resolve.<A HREF="./org/apache/aries/application/management/spi/resolve/DeploymentManifestManager.html" title="interface in org.apache.aries.application.management.spi.resolve">DeploymentManifestManager</A>
<DD>Generate a Manifest representation of a DEPLOYMENT.MF, 
 suitable for example to writing to disk
<DT><A HREF="./org/apache/aries/application/management/spi/repository/RepositoryGenerator.html#generateRepository(java.lang.String, java.util.Collection, java.io.OutputStream)"><B>generateRepository(String, Collection&lt;? extends ModelledResource&gt;, OutputStream)</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/RepositoryGenerator.html" title="interface in org.apache.aries.application.management.spi.repository">RepositoryGenerator</A>
<DD>Generate repository and store the content in the output stream.
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html#getAllBundleRepositories()"><B>getAllBundleRepositories()</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepositoryManager</A>
<DD>Gets all known bundle repositories
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html#getAppFramework()"><B>getAppFramework()</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy.UpdateInfo</A>
<DD>Get a <A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework"><CODE>BundleFramework</CODE></A> object for the isolated framework corresponding 
 to the application to be updated
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationContext.html#getApplication()"><B>getApplication()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationContext.html" title="interface in org.apache.aries.application.management">AriesApplicationContext</A>
<DD>Obtain the associated AriesApplication metadata.
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationEvent.html#getApplication()"><B>getApplication()</B></A> - 
Method in class org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationEvent.html" title="class in org.apache.aries.application.management">AriesApplicationEvent</A>
<DD>Get the associated AriesApplication
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html#getApplication()"><B>getApplication()</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy.UpdateInfo</A>
<DD>Get the <A HREF="./org/apache/aries/application/management/AriesApplication.html" title="interface in org.apache.aries.application.management"><CODE>AriesApplication</CODE></A> object being updated
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationContext.html#getApplicationContent()"><B>getApplicationContent()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationContext.html" title="interface in org.apache.aries.application.management">AriesApplicationContext</A>
<DD>Get the org.osgi.framework.Bundle objects representing the application's runtime
 constituents.
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html#getApplicationContents()"><B>getApplicationContents()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application">ApplicationMetadata</A>
<DD>get the list of Application contents includes bundle name, 
 version, directives and attributes
<DT><A HREF="./org/apache/aries/application/management/spi/runtime/AriesApplicationContextManager.html#getApplicationContext(org.apache.aries.application.management.AriesApplication)"><B>getApplicationContext(AriesApplication)</B></A> - 
Method in interface org.apache.aries.application.management.spi.runtime.<A HREF="./org/apache/aries/application/management/spi/runtime/AriesApplicationContextManager.html" title="interface in org.apache.aries.application.management.spi.runtime">AriesApplicationContextManager</A>
<DD>Obtain an ApplicationContext for an AriesApplication.
<DT><A HREF="./org/apache/aries/application/management/spi/runtime/AriesApplicationContextManager.html#getApplicationContexts()"><B>getApplicationContexts()</B></A> - 
Method in interface org.apache.aries.application.management.spi.runtime.<A HREF="./org/apache/aries/application/management/spi/runtime/AriesApplicationContextManager.html" title="interface in org.apache.aries.application.management.spi.runtime">AriesApplicationContextManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#getApplicationDeploymentContents()"><B>getApplicationDeploymentContents()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>get the value of the Deployed-Content header
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html#getApplicationExportServices()"><B>getApplicationExportServices()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application">ApplicationMetadata</A>
<DD>get the value of the Export-Service header
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html#getApplicationImportServices()"><B>getApplicationImportServices()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application">ApplicationMetadata</A>
<DD>get the value of the Import-Service header
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#getApplicationMetadata()"><B>getApplicationMetadata()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>Obtain the associated 
 <A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application"><CODE>ApplicationMetadata</CODE></A>.
<DT><A HREF="./org/apache/aries/application/management/AriesApplication.html#getApplicationMetadata()"><B>getApplicationMetadata()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplication.html" title="interface in org.apache.aries.application.management">AriesApplication</A>
<DD>Get the application metadata, which is stored in META-INF/APPLICATION.MF.
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html#getApplicationName()"><B>getApplicationName()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application">ApplicationMetadata</A>
<DD>get the name of the application
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#getApplicationProvisionBundles()"><B>getApplicationProvisionBundles()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>get the value of the Provision-Bundle header
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html#getApplicationScope()"><B>getApplicationScope()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application">ApplicationMetadata</A>
<DD>get the value of the Application-Scope, which is 
 calculated from Application-SymbolicName and Application-Version
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationContext.html#getApplicationState()"><B>getApplicationState()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationContext.html" title="interface in org.apache.aries.application.management">AriesApplicationContext</A>
<DD>Get the state of a running application.
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html#getApplicationSymbolicName()"><B>getApplicationSymbolicName()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application">ApplicationMetadata</A>
<DD>get the value of the Application-SymbolicName header
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#getApplicationSymbolicName()"><B>getApplicationSymbolicName()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>get the value of the Application-SymbolicName header
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html#getApplicationVersion()"><B>getApplicationVersion()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application">ApplicationMetadata</A>
<DD>get the value of the Application-Version header
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#getApplicationVersion()"><B>getApplicationVersion()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>get the value of the Application-Version header
<DT><A HREF="./org/apache/aries/application/Content.html#getAttribute(java.lang.String)"><B>getAttribute(String)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/Content.html" title="interface in org.apache.aries.application">Content</A>
<DD>get the value of the attribute with the specified key
<DT><A HREF="./org/apache/aries/application/modelling/Consumer.html#getAttributeFilter()"><B>getAttributeFilter()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/Consumer.html" title="interface in org.apache.aries.application.modelling">Consumer</A>
<DD>This is not the same as the filter which you might get, say, by parsing a blueprint
 reference.
<DT><A HREF="./org/apache/aries/application/Content.html#getAttributes()"><B>getAttributes()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/Content.html" title="interface in org.apache.aries.application">Content</A>
<DD>get the attributes of the content
<DT><A HREF="./org/apache/aries/application/modelling/ImportedPackage.html#getAttributes()"><B>getAttributes()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ImportedPackage.html" title="interface in org.apache.aries.application.modelling">ImportedPackage</A>
<DD>All attributes specified in the import package header
<DT><A HREF="./org/apache/aries/application/modelling/Provider.html#getAttributes()"><B>getAttributes()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/Provider.html" title="interface in org.apache.aries.application.modelling">Provider</A>
<DD>ResourceType-dependent things.
<DT><A HREF="./org/apache/aries/application/modelling/ExportedPackage.html#getBundle()"><B>getBundle()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ExportedPackage.html" title="interface in org.apache.aries.application.modelling">ExportedPackage</A>
<DD>The resource that exports the package.
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getBundleAttributes()"><B>getBundleAttributes()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>Returns the attributes specified on the symbolic name
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getBundleDirectives()"><B>getBundleDirectives()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>Returns the directives specified on the symbolic name
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html#getBundleFramework(org.osgi.framework.Bundle)"><B>getBundleFramework(Bundle)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager</A>
<DD>Gets the BundleFramework object associated with the given bundle
<DT><A HREF="./org/apache/aries/application/management/AriesApplication.html#getBundleInfo()"><B>getBundleInfo()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplication.html" title="interface in org.apache.aries.application.management">AriesApplication</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/convert/BundleConversion.html#getBundleInfo()"><B>getBundleInfo()</B></A> - 
Method in interface org.apache.aries.application.management.spi.convert.<A HREF="./org/apache/aries/application/management/spi/convert/BundleConversion.html" title="interface in org.apache.aries.application.management.spi.convert">BundleConversion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/resolve/AriesApplicationResolver.html#getBundleInfo(java.lang.String, org.osgi.framework.Version)"><B>getBundleInfo(String, Version)</B></A> - 
Method in interface org.apache.aries.application.management.spi.resolve.<A HREF="./org/apache/aries/application/management/spi/resolve/AriesApplicationResolver.html" title="interface in org.apache.aries.application.management.spi.resolve">AriesApplicationResolver</A>
<DD>Return the info for the requested bundle.
<DT><A HREF="./org/apache/aries/application/management/ResolveConstraint.html#getBundleName()"><B>getBundleName()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/ResolveConstraint.html" title="interface in org.apache.aries.application.management">ResolveConstraint</A>
<DD>The name of the newly required bundle
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html#getBundleRepositoryCollection(java.lang.String, java.lang.String)"><B>getBundleRepositoryCollection(String, String)</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepositoryManager</A>
<DD>Gets a collection of all bundle repositories which can provide bundles to
 the given application scope.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#getBundles()"><B>getBundles()</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>Returns a list of bundles currently installed in this framework
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html#getBundleSuggestions(java.lang.String, java.lang.String, java.util.Collection)"><B>getBundleSuggestions(String, String, Collection&lt;DeploymentContent&gt;)</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepositoryManager</A>
<DD>Get a collection of bundle installation suggestions from repositories
 suitable for the given application scope
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html#getBundleSuggestions(java.util.Collection)"><B>getBundleSuggestions(Collection&lt;DeploymentContent&gt;)</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepositoryManager</A>
<DD>Get a collection of bundle installation suggestions from all 
 known repositories
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html#getBundleSuggestions(java.util.Collection, java.util.Collection)"><B>getBundleSuggestions(Collection&lt;BundleRepository&gt;, Collection&lt;DeploymentContent&gt;)</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepositoryManager.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepositoryManager</A>
<DD>Get a collection of bundle installation suggestions from the collection of
 given repositories
<DT><A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html#getComponentName()"><B>getComponentName()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedReferenceMetadata</A>
<DD>Get the component-name attribute.
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#getContent()"><B>getContent()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>Get the value corresponding to the Deployed-Content header in the deployment.mf.
<DT><A HREF="./org/apache/aries/application/Content.html#getContentName()"><B>getContentName()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/Content.html" title="interface in org.apache.aries.application">Content</A>
<DD>get the content name of the content
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html#getCost()"><B>getCost()</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepository.BundleSuggestion</A>
<DD>This method can be queried to discover the cost of using this bundle 
 repository.
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.html#getCost()"><B>getCost()</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepository</A>
<DD>This method can be queried to discover the cost of using this bundle 
 repository.
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#getDeployedContent()"><B>getDeployedContent()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>Get the set of bundles that are going to be deployed into an isolated framework
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#getDeployedImportService()"><B>getDeployedImportService()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>Get the Deployed-ImportService header.
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#getDeployedProvisionBundle()"><B>getDeployedProvisionBundle()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>Get the set of bundles that map to Provision-Bundle: these plus 
 getRequiredUseBundle combined give the bundles that will be provisioned
 into the shared bundle space
 'getProvisionBundle' returns the manifest header string, so this method 
 needs to be called something else.
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#getDeployedServiceImport()"><B>getDeployedServiceImport()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>Get the list of DeployedService-Import
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#getDeployedUseBundle()"><B>getDeployedUseBundle()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>get the value of Deployed-UseBundle header
<DT><A HREF="./org/apache/aries/application/management/AriesApplication.html#getDeploymentMetadata()"><B>getDeploymentMetadata()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplication.html" title="interface in org.apache.aries.application.management">AriesApplication</A>
<DD>Get the deployment metadata, which is stored in META-INF/DEPLOYMENT.MF.
<DT><A HREF="./org/apache/aries/application/Content.html#getDirective(java.lang.String)"><B>getDirective(String)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/Content.html" title="interface in org.apache.aries.application">Content</A>
<DD>get the value of the directive with the specified key
<DT><A HREF="./org/apache/aries/application/Content.html#getDirectives()"><B>getDirectives()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/Content.html" title="interface in org.apache.aries.application">Content</A>
<DD>get the directives of the content
<DT><A HREF="./org/apache/aries/application/DeploymentContent.html#getExactVersion()"><B>getExactVersion()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentContent.html" title="interface in org.apache.aries.application">DeploymentContent</A>
<DD>get the exact version of the deployment content
 this cannot be null
<DT><A HREF="./org/apache/aries/application/VersionRange.html#getExactVersion()"><B>getExactVersion()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/VersionRange.html" title="interface in org.apache.aries.application">VersionRange</A>
<DD>this method returns the exact version from the versionInfo obj.
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getExportedBundle()"><B>getExportedBundle()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>Return the bundle that represents the resource object.
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getExportedBundle(java.util.Map, org.apache.aries.application.modelling.ImportedBundle)"><B>getExportedBundle(Map&lt;String, String&gt;, ImportedBundle)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getExportedPackage(org.apache.aries.application.modelling.ModelledResource, java.lang.String, java.util.Map)"><B>getExportedPackage(ModelledResource, String, Map&lt;String, Object&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getExportedPackages()"><B>getExportedPackages()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>Export-Package header modelled to be a collection of exported package objects.
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getExportedService(java.lang.String, int, java.util.Collection, java.util.Map)"><B>getExportedService(String, int, Collection&lt;String&gt;, Map&lt;String, Object&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getExportedService(java.lang.String, java.util.Map)"><B>getExportedService(String, Map&lt;String, String&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getExportedServices()"><B>getExportedServices()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>Export-Service header modelled to be a collection of exported service objects.
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getExportPackage()"><B>getExportPackage()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>Export-Package
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html#getExportPackage()"><B>getExportPackage()</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepository.BundleSuggestion</A>
<DD>Get the exports of the bundle
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getExportService()"><B>getExportService()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>Export-Service
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#getExtraHeaders()"><B>getExtraHeaders()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>A local environment extension to Apache Aries may manipulate a DeployedBundles object.
<DT><A HREF="./org/apache/aries/application/filesystem/IDirectory.html#getFile(java.lang.String)"><B>getFile(String)</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IDirectory.html" title="interface in org.apache.aries.application.filesystem">IDirectory</A>
<DD>Gets the requested file under this directory.
<DT><A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html#getFilter()"><B>getFilter()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedReferenceMetadata</A>
<DD>Get the properties of the associated blueprint service
<DT><A HREF="./org/apache/aries/application/ServiceDeclaration.html#getFilter()"><B>getFilter()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ServiceDeclaration.html" title="interface in org.apache.aries.application">ServiceDeclaration</A>
<DD>get the filter for the service
<DT><A HREF="./org/apache/aries/application/modelling/ExportedBundle.html#getFragmentHost()"><B>getFragmentHost()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ExportedBundle.html" title="interface in org.apache.aries.application.modelling">ExportedBundle</A>
<DD>Get the fragment host.
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getFragmentHost()"><B>getFragmentHost()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>The fragment host.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#getFrameworkBundle()"><B>getFrameworkBundle()</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>Returns the OSGi bundle representing the framework
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfiguration.html#getFrameworkID()"><B>getFrameworkID()</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfiguration.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfiguration.html#getFrameworkManifest()"><B>getFrameworkManifest()</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfiguration.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfiguration.html#getFrameworkProperties()"><B>getFrameworkProperties()</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkConfiguration.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkConfiguration</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#getHeaders()"><B>getHeaders()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>get the contents of deployment manifest in a map
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getHeaders()"><B>getHeaders()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>All the headers in the MANIFEST.MF file
<DT><A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html#getId()"><B>getId()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedReferenceMetadata</A>
<DD>Get the reference's id as defined in the blueprint
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getImportedBundle(java.lang.String, java.util.Map)"><B>getImportedBundle(String, Map&lt;String, String&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getImportedBundle(java.lang.String, java.lang.String)"><B>getImportedBundle(String, String)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getImportedPackage(java.lang.String, java.util.Map)"><B>getImportedPackage(String, Map&lt;String, String&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getImportedPackages()"><B>getImportedPackages()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>Import-Package header modelled to be a collection of the imported packages objects.
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getImportedService(boolean, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean)"><B>getImportedService(boolean, String, String, String, String, boolean)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getImportedService(java.lang.String, java.util.Map)"><B>getImportedService(String, Map&lt;String, String&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getImportedServices()"><B>getImportedServices()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>Import-Service header modelled to be a collection of imported service objects.
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#getImportPackage()"><B>getImportPackage()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>get the value of Import-Package
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getImportPackage()"><B>getImportPackage()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>Import-Package
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html#getImportPackage()"><B>getImportPackage()</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepository.BundleSuggestion</A>
<DD>Get the imports of the bundle
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#getImportPackage()"><B>getImportPackage()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>Get the value corresponding to the Import-Package header in the deployment.mf.
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getImportService()"><B>getImportService()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>Import-Service
<DT><A HREF="./org/apache/aries/application/management/spi/convert/BundleConversion.html#getInputStream()"><B>getInputStream()</B></A> - 
Method in interface org.apache.aries.application.management.spi.convert.<A HREF="./org/apache/aries/application/management/spi/convert/BundleConversion.html" title="interface in org.apache.aries.application.management.spi.convert">BundleConversion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html#getInterface()"><B>getInterface()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedReferenceMetadata</A>
<DD>Get the interface required by the reference
<DT><A HREF="./org/apache/aries/application/ServiceDeclaration.html#getInterfaceName()"><B>getInterfaceName()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ServiceDeclaration.html" title="interface in org.apache.aries.application">ServiceDeclaration</A>
<DD>get the interface name for the service
<DT><A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html#getInterfaces()"><B>getInterfaces()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedServiceMetadata</A>
<DD>Get the interfaces implemented by the service
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#getIsolatedBundleContext()"><B>getIsolatedBundleContext()</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>Returns the bundle context for the framework.
<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html#getLastModified()"><B>getLastModified()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem">IFile</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getLocation()"><B>getLocation()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>Returns a String which can be turned into a URL to the bundle binary
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getLocation()"><B>getLocation()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>Returns a String which can be turned into a URL to the bundle binary
<DT><A HREF="./org/apache/aries/application/VersionRange.html#getMaximumVersion()"><B>getMaximumVersion()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/VersionRange.html" title="interface in org.apache.aries.application">VersionRange</A>
<DD>get the maximum version
<DT><A HREF="./org/apache/aries/application/VersionRange.html#getMinimumVersion()"><B>getMinimumVersion()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/VersionRange.html" title="interface in org.apache.aries.application">VersionRange</A>
<DD>get the minimum version
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResourceManager.html#getModelledResource(java.lang.String, org.apache.aries.application.filesystem.IDirectory)"><B>getModelledResource(String, IDirectory)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResourceManager.html" title="interface in org.apache.aries.application.modelling">ModelledResourceManager</A>
<DD>Obtain a ModelledResource object
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getModelledResource(java.lang.String, org.apache.aries.application.management.BundleInfo, java.util.Collection, java.util.Collection)"><B>getModelledResource(String, BundleInfo, Collection&lt;ImportedService&gt;, Collection&lt;ExportedService&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getModelledResource(java.lang.String, java.util.jar.Attributes, java.util.Collection, java.util.Collection)"><B>getModelledResource(String, Attributes, Collection&lt;ImportedService&gt;, Collection&lt;ExportedService&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getModelledResource(java.lang.String, java.util.jar.Attributes, org.apache.aries.application.modelling.ExportedBundle, org.apache.aries.application.modelling.ResourceType, java.util.Collection, java.util.Collection)"><B>getModelledResource(String, Attributes, ExportedBundle, ResourceType, Collection&lt;ImportedService&gt;, Collection&lt;ExportedService&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem">IFile</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html#getName()"><B>getName()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedServiceMetadata</A>
<DD>Get the service name.
<DT><A HREF="./org/apache/aries/application/Content.html#getNameValueMap()"><B>getNameValueMap()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/Content.html" title="interface in org.apache.aries.application">Content</A>
<DD>get the attribute and directive info in NameValueMap
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html#getNewMetadata()"><B>getNewMetadata()</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy.UpdateInfo</A>
<DD>Get the <A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application"><CODE>DeploymentMetadata</CODE></A> that is to be activated
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html#getOldMetadata()"><B>getOldMetadata()</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy.UpdateInfo</A>
<DD>Get the <A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application"><CODE>DeploymentMetadata</CODE></A> that is currently active and to be phased out
<DT><A HREF="./org/apache/aries/application/modelling/ExportedPackage.html#getPackageName()"><B>getPackageName()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ExportedPackage.html" title="interface in org.apache.aries.application.modelling">ExportedPackage</A>
<DD>The package name
<DT><A HREF="./org/apache/aries/application/modelling/ImportedPackage.html#getPackageName()"><B>getPackageName()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ImportedPackage.html" title="interface in org.apache.aries.application.modelling">ImportedPackage</A>
<DD>The imported package name
<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html#getParent()"><B>getParent()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem">IFile</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html#getParsedServiceElements(java.util.Collection, java.util.Collection)"><B>getParsedServiceElements(Collection&lt;ExportedService&gt;, Collection&lt;ImportedService&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling">ModellingManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/repository/PlatformRepository.html#getPlatformRepositoryURLs()"><B>getPlatformRepositoryURLs()</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/PlatformRepository.html" title="interface in org.apache.aries.application.management.spi.repository">PlatformRepository</A>
<DD>Obtain a set of URIs to bundle repositories representing the local platform's capabilities.
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#getProvisionBundle()"><B>getProvisionBundle()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>Get the value corresponding to the Provision-Bundle header in the deployment.mf.
<DT><A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html#getRanking()"><B>getRanking()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedServiceMetadata</A>
<DD>Get the service ranking
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getRawAttributes()"><B>getRawAttributes()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>The Attribute object in the MANIFEST.MF file
<DT><A HREF="./org/apache/aries/application/modelling/ParsedServiceElements.html#getReferences()"><B>getReferences()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ParsedServiceElements.html" title="interface in org.apache.aries.application.modelling">ParsedServiceElements</A>
<DD>Get the ImportedServices
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getRequireBundle()"><B>getRequireBundle()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>Require-Bundle
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getRequiredBundles()"><B>getRequiredBundles()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>The required bundles modelled as a collection of ImportedBundle objects.
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#getRequiredUseBundle()"><B>getRequiredUseBundle()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>Get the subset of bundles specified in use-bundle that are actually required to
 satisfy direct requirements of deployed content.
<DT><A HREF="./org/apache/aries/application/management/UpdateException.html#getRollbackException()"><B>getRollbackException()</B></A> - 
Method in exception org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/UpdateException.html" title="class in org.apache.aries.application.management">UpdateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html#getRoot()"><B>getRoot()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem">IFile</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResourceManager.html#getServiceElements(org.apache.aries.application.filesystem.IDirectory)"><B>getServiceElements(IDirectory)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResourceManager.html" title="interface in org.apache.aries.application.modelling">ModelledResourceManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html#getServiceProperties()"><B>getServiceProperties()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedServiceMetadata</A>
<DD>Get the properties of the associated blueprint service
<DT><A HREF="./org/apache/aries/application/modelling/ParsedServiceElements.html#getServices()"><B>getServices()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ParsedServiceElements.html" title="interface in org.apache.aries.application.modelling">ParsedServiceElements</A>
<DD>Get the exported services
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html#getSharedBundleFramework()"><B>getSharedBundleFramework()</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager</A>
<DD>Gets a reference to the single shared bundle framework.
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html#getSharedFramework()"><B>getSharedFramework()</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy.UpdateInfo</A>
<DD>Get a <A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework"><CODE>BundleFramework</CODE></A> object for the shared framework
<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html#getSize()"><B>getSize()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem">IFile</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getSymbolicName()"><B>getSymbolicName()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>Bundle-SymbolicName
<DT><A HREF="./org/apache/aries/application/modelling/ExportedBundle.html#getSymbolicName()"><B>getSymbolicName()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ExportedBundle.html" title="interface in org.apache.aries.application.modelling">ExportedBundle</A>
<DD>The bundle symbolic name
<DT><A HREF="./org/apache/aries/application/modelling/ImportedBundle.html#getSymbolicName()"><B>getSymbolicName()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ImportedBundle.html" title="interface in org.apache.aries.application.modelling">ImportedBundle</A>
<DD>The imported bundle symbolic name
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getSymbolicName()"><B>getSymbolicName()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>The resource's symbolic name
<DT><A HREF="./org/apache/aries/application/management/spi/runtime/LocalPlatform.html#getTemporaryDirectory()"><B>getTemporaryDirectory()</B></A> - 
Method in interface org.apache.aries.application.management.spi.runtime.<A HREF="./org/apache/aries/application/management/spi/runtime/LocalPlatform.html" title="interface in org.apache.aries.application.management.spi.runtime">LocalPlatform</A>
<DD>Obtain a temporary directory
<DT><A HREF="./org/apache/aries/application/management/spi/runtime/LocalPlatform.html#getTemporaryFile()"><B>getTemporaryFile()</B></A> - 
Method in interface org.apache.aries.application.management.spi.runtime.<A HREF="./org/apache/aries/application/management/spi/runtime/LocalPlatform.html" title="interface in org.apache.aries.application.management.spi.runtime">LocalPlatform</A>
<DD>Obtain a temporary file
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationEvent.html#getType()"><B>getType()</B></A> - 
Method in class org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationEvent.html" title="class in org.apache.aries.application.management">AriesApplicationEvent</A>
<DD>Get the type of the event
<DT><A HREF="./org/apache/aries/application/modelling/Consumer.html#getType()"><B>getType()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/Consumer.html" title="interface in org.apache.aries.application.modelling">Consumer</A>
<DD>Return the resource type
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getType()"><B>getType()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>The resource type, mainly BUNDLE or other special bundle.
<DT><A HREF="./org/apache/aries/application/modelling/Provider.html#getType()"><B>getType()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/Provider.html" title="interface in org.apache.aries.application.modelling">Provider</A>
<DD>Get resource type.
<DT><A HREF="./org/apache/aries/application/management/ResolverException.html#getUnsatisfiedRequirements()"><B>getUnsatisfiedRequirements()</B></A> - 
Method in exception org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/ResolverException.html" title="class in org.apache.aries.application.management">ResolverException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#getUseBundle()"><B>getUseBundle()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>Get the value corresponding to the Deployed-Use-Bundle header in the deployment.mf.
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html#getUseBundles()"><B>getUseBundles()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application">ApplicationMetadata</A>
<DD>get the list of use-bundle content including bundle symbolic name and version range
<DT><A HREF="./org/apache/aries/application/Content.html#getVersion()"><B>getVersion()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/Content.html" title="interface in org.apache.aries.application">Content</A>
<DD>get the version info for the version attribute
<DT><A HREF="./org/apache/aries/application/management/BundleInfo.html#getVersion()"><B>getVersion()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/BundleInfo.html" title="interface in org.apache.aries.application.management">BundleInfo</A>
<DD>Bundle-Version:
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html#getVersion()"><B>getVersion()</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepository.BundleSuggestion</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ExportedBundle.html#getVersion()"><B>getVersion()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ExportedBundle.html" title="interface in org.apache.aries.application.modelling">ExportedBundle</A>
<DD>The bundle version
<DT><A HREF="./org/apache/aries/application/modelling/ExportedPackage.html#getVersion()"><B>getVersion()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ExportedPackage.html" title="interface in org.apache.aries.application.modelling">ExportedPackage</A>
<DD>The package version
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#getVersion()"><B>getVersion()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>The resource version
<DT><A HREF="./org/apache/aries/application/management/ResolveConstraint.html#getVersionRange()"><B>getVersionRange()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/ResolveConstraint.html" title="interface in org.apache.aries.application.management">ResolveConstraint</A>
<DD>The version range of the newly required bundle
<DT><A HREF="./org/apache/aries/application/modelling/ImportedBundle.html#getVersionRange()"><B>getVersionRange()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ImportedBundle.html" title="interface in org.apache.aries.application.modelling">ImportedBundle</A>
<DD>The version range that the imported bundle's version fall into.
<DT><A HREF="./org/apache/aries/application/modelling/ImportedPackage.html#getVersionRange()"><B>getVersionRange()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ImportedPackage.html" title="interface in org.apache.aries.application.modelling">ImportedPackage</A>
<DD>The imported package version
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.html#GLOBAL_SCOPE"><B>GLOBAL_SCOPE</B></A> - 
Static variable in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepository</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_H_"><!-- --></A><H2>
<B>H</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/management/UpdateException.html#hasRolledBack()"><B>hasRolledBack()</B></A> - 
Method in exception org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/UpdateException.html" title="class in org.apache.aries.application.management">UpdateException</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_I_"><!-- --></A><H2>
<B>I</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html#identicalOrDiffersOnlyByName(org.apache.aries.application.modelling.WrappedServiceMetadata)"><B>identicalOrDiffersOnlyByName(WrappedServiceMetadata)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedServiceMetadata</A>
<DD>Sometimes we want to know if two services are identical except for their names
<DT><A HREF="./org/apache/aries/application/filesystem/IDirectory.html" title="interface in org.apache.aries.application.filesystem"><B>IDirectory</B></A> - Interface in <A HREF="./org/apache/aries/application/filesystem/package-summary.html">org.apache.aries.application.filesystem</A><DD>A virtual directory in a file system.<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem"><B>IFile</B></A> - Interface in <A HREF="./org/apache/aries/application/filesystem/package-summary.html">org.apache.aries.application.filesystem</A><DD>A virtual file on the virtual file system.<DT><A HREF="./org/apache/aries/application/modelling/ImportedBundle.html" title="interface in org.apache.aries.application.modelling"><B>ImportedBundle</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>Model a required bundle.<DT><A HREF="./org/apache/aries/application/modelling/ImportedPackage.html" title="interface in org.apache.aries.application.modelling"><B>ImportedPackage</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>Model an imported package.<DT><A HREF="./org/apache/aries/application/modelling/ImportedService.html" title="interface in org.apache.aries.application.modelling"><B>ImportedService</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>This interface represents the imported service.<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#init()"><B>init()</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>Initialises the framework (but does not start the framework bundle)
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationManager.html#install(org.apache.aries.application.management.AriesApplication)"><B>install(AriesApplication)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationManager.html" title="interface in org.apache.aries.application.management">AriesApplicationManager</A>
<DD>Install an AriesApplication - i.e.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#install(org.apache.aries.application.management.spi.repository.BundleRepository.BundleSuggestion, org.apache.aries.application.management.AriesApplication)"><B>install(BundleRepository.BundleSuggestion, AriesApplication)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>Installs a bundle to this framework.
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html#install(org.apache.aries.application.management.spi.framework.BundleFramework, org.apache.aries.application.management.AriesApplication)"><B>install(BundleFramework, AriesApplication)</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepository.BundleSuggestion</A>
<DD>Install the bundle represented by this suggestion via the given context
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html#installIsolatedBundles(java.util.Collection, org.apache.aries.application.management.AriesApplication)"><B>installIsolatedBundles(Collection&lt;BundleRepository.BundleSuggestion&gt;, AriesApplication)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager</A>
<DD>Creates a new framework inside the shared bundle framework and installs a 
 collection of bundles into the framework.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html#installSharedBundles(java.util.Collection, org.apache.aries.application.management.AriesApplication)"><B>installSharedBundles(Collection&lt;BundleRepository.BundleSuggestion&gt;, AriesApplication)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager</A>
<DD>Installs a collection of shared bundles to the shared bundle framework
<DT><A HREF="./org/apache/aries/application/VersionRange.html#intersect(org.apache.aries.application.VersionRange)"><B>intersect(VersionRange)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/VersionRange.html" title="interface in org.apache.aries.application">VersionRange</A>
<DD>Create a new version range that is the intersection of <code>this</code> and the argument.
<DT><A HREF="./org/apache/aries/application/modelling/utils/ModellingHelper.html#intersectPackage(org.apache.aries.application.modelling.ImportedPackage, org.apache.aries.application.modelling.ImportedPackage)"><B>intersectPackage(ImportedPackage, ImportedPackage)</B></A> - 
Method in interface org.apache.aries.application.modelling.utils.<A HREF="./org/apache/aries/application/modelling/utils/ModellingHelper.html" title="interface in org.apache.aries.application.modelling.utils">ModellingHelper</A>
<DD>Create a new ImnportedPackage that is the intersection of the two supplied imports.
<DT><A HREF="./org/apache/aries/application/InvalidAttributeException.html" title="class in org.apache.aries.application"><B>InvalidAttributeException</B></A> - Exception in <A HREF="./org/apache/aries/application/package-summary.html">org.apache.aries.application</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/InvalidAttributeException.html#InvalidAttributeException(java.lang.Exception)"><B>InvalidAttributeException(Exception)</B></A> - 
Constructor for exception org.apache.aries.application.<A HREF="./org/apache/aries/application/InvalidAttributeException.html" title="class in org.apache.aries.application">InvalidAttributeException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/InvalidAttributeException.html#InvalidAttributeException(java.lang.String)"><B>InvalidAttributeException(String)</B></A> - 
Constructor for exception org.apache.aries.application.<A HREF="./org/apache/aries/application/InvalidAttributeException.html" title="class in org.apache.aries.application">InvalidAttributeException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html#isDirectory()"><B>isDirectory()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem">IFile</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/VersionRange.html#isExactVersion()"><B>isExactVersion()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/VersionRange.html" title="interface in org.apache.aries.application">VersionRange</A>
<DD>check if the versioninfo is the exact version
<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html#isFile()"><B>isFile()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem">IFile</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ExportedBundle.html#isFragment()"><B>isFragment()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ExportedBundle.html" title="interface in org.apache.aries.application.modelling">ExportedBundle</A>
<DD>Whether the bundle is fragment
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html#isFragment()"><B>isFragment()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling">ModelledResource</A>
<DD>Whether the resource is fragment.
<DT><A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html#isList()"><B>isList()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedReferenceMetadata</A>
<DD>Is this a reference list or a reference
<DT><A HREF="./org/apache/aries/application/VersionRange.html#isMaximumExclusive()"><B>isMaximumExclusive()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/VersionRange.html" title="interface in org.apache.aries.application">VersionRange</A>
<DD>is the maximum version exclusive
<DT><A HREF="./org/apache/aries/application/VersionRange.html#isMaximumUnbounded()"><B>isMaximumUnbounded()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/VersionRange.html" title="interface in org.apache.aries.application">VersionRange</A>
<DD>is the maximum version unbounded
<DT><A HREF="./org/apache/aries/application/VersionRange.html#isMinimumExclusive()"><B>isMinimumExclusive()</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/VersionRange.html" title="interface in org.apache.aries.application">VersionRange</A>
<DD>is the minimum version exclusive
<DT><A HREF="./org/apache/aries/application/modelling/Consumer.html#isMultiple()"><B>isMultiple()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/Consumer.html" title="interface in org.apache.aries.application.modelling">Consumer</A>
<DD>Whether the resources consumed can be multiple.
<DT><A HREF="./org/apache/aries/application/modelling/Consumer.html#isOptional()"><B>isOptional()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/Consumer.html" title="interface in org.apache.aries.application.modelling">Consumer</A>
<DD>Whether the resource consumed can be optional.
<DT><A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html#isOptional()"><B>isOptional()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html" title="interface in org.apache.aries.application.modelling">WrappedReferenceMetadata</A>
<DD>Is this an optional reference
<DT><A HREF="./org/apache/aries/application/management/AriesApplication.html#isResolved()"><B>isResolved()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplication.html" title="interface in org.apache.aries.application.management">AriesApplication</A>
<DD>Check if the application is resolved or not.
<DT><A HREF="./org/apache/aries/application/filesystem/IDirectory.html#isRoot()"><B>isRoot()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IDirectory.html" title="interface in org.apache.aries.application.filesystem">IDirectory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/Consumer.html#isSatisfied(org.apache.aries.application.modelling.Provider)"><B>isSatisfied(Provider)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/Consumer.html" title="interface in org.apache.aries.application.modelling">Consumer</A>
<DD>Whether the provider object satisfies the consume criteria.
</DL>
<HR>
<A NAME="_L_"><!-- --></A><H2>
<B>L</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/filesystem/IDirectory.html#listAllFiles()"><B>listAllFiles()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IDirectory.html" title="interface in org.apache.aries.application.filesystem">IDirectory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/filesystem/IDirectory.html#listFiles()"><B>listFiles()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IDirectory.html" title="interface in org.apache.aries.application.filesystem">IDirectory</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/runtime/LocalPlatform.html" title="interface in org.apache.aries.application.management.spi.runtime"><B>LocalPlatform</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/runtime/package-summary.html">org.apache.aries.application.management.spi.runtime</A><DD>This is a difficult interface to name properly.</DL>
<HR>
<A NAME="_M_"><!-- --></A><H2>
<B>M</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/management/ManagementException.html" title="class in org.apache.aries.application.management"><B>ManagementException</B></A> - Exception in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>An exception thrown by various methods within this package.<DT><A HREF="./org/apache/aries/application/management/ManagementException.html#ManagementException(java.lang.Exception)"><B>ManagementException(Exception)</B></A> - 
Constructor for exception org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/ManagementException.html" title="class in org.apache.aries.application.management">ManagementException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/ManagementException.html#ManagementException(java.lang.String)"><B>ManagementException(String)</B></A> - 
Constructor for exception org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/ManagementException.html" title="class in org.apache.aries.application.management">ManagementException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/ManagementException.html#ManagementException(java.lang.String, java.lang.Exception)"><B>ManagementException(String, Exception)</B></A> - 
Constructor for exception org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/ManagementException.html" title="class in org.apache.aries.application.management">ManagementException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/VersionRange.html#matches(org.osgi.framework.Version)"><B>matches(Version)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/VersionRange.html" title="interface in org.apache.aries.application">VersionRange</A>
<DD>This method tests to see if the provided version is inside this range.
<DT><A HREF="./org/apache/aries/application/modelling/ModelledResource.html" title="interface in org.apache.aries.application.modelling"><B>ModelledResource</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>Model a bundle resource.<DT><A HREF="./org/apache/aries/application/modelling/ModelledResourceManager.html" title="interface in org.apache.aries.application.modelling"><B>ModelledResourceManager</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/modelling/ModellerException.html" title="class in org.apache.aries.application.modelling"><B>ModellerException</B></A> - Exception in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/modelling/ModellerException.html#ModellerException(java.lang.String)"><B>ModellerException(String)</B></A> - 
Constructor for exception org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellerException.html" title="class in org.apache.aries.application.modelling">ModellerException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellerException.html#ModellerException(java.lang.Exception)"><B>ModellerException(Exception)</B></A> - 
Constructor for exception org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellerException.html" title="class in org.apache.aries.application.modelling">ModellerException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingConstants.html" title="class in org.apache.aries.application.modelling"><B>ModellingConstants</B></A> - Class in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/modelling/ModellingConstants.html#ModellingConstants()"><B>ModellingConstants()</B></A> - 
Constructor for class org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingConstants.html" title="class in org.apache.aries.application.modelling">ModellingConstants</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/utils/ModellingHelper.html" title="interface in org.apache.aries.application.modelling.utils"><B>ModellingHelper</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/utils/package-summary.html">org.apache.aries.application.modelling.utils</A><DD>Useful functions associated with application modelling<DT><A HREF="./org/apache/aries/application/modelling/ModellingManager.html" title="interface in org.apache.aries.application.modelling"><B>ModellingManager</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>&nbsp;</DL>
<HR>
<A NAME="_O_"><!-- --></A><H2>
<B>O</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/modelling/ModellingConstants.html#OBR_BUNDLE"><B>OBR_BUNDLE</B></A> - 
Static variable in class org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingConstants.html" title="class in org.apache.aries.application.modelling">ModellingConstants</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingConstants.html#OBR_COMPOSITE_BUNDLE"><B>OBR_COMPOSITE_BUNDLE</B></A> - 
Static variable in class org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingConstants.html" title="class in org.apache.aries.application.modelling">ModellingConstants</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingConstants.html#OBR_MANIFEST_VERSION"><B>OBR_MANIFEST_VERSION</B></A> - 
Static variable in class org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingConstants.html" title="class in org.apache.aries.application.modelling">ModellingConstants</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingConstants.html#OBR_PACKAGE"><B>OBR_PACKAGE</B></A> - 
Static variable in class org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingConstants.html" title="class in org.apache.aries.application.modelling">ModellingConstants</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingConstants.html#OBR_PRESENTATION_NAME"><B>OBR_PRESENTATION_NAME</B></A> - 
Static variable in class org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingConstants.html" title="class in org.apache.aries.application.modelling">ModellingConstants</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingConstants.html#OBR_SERVICE"><B>OBR_SERVICE</B></A> - 
Static variable in class org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingConstants.html" title="class in org.apache.aries.application.modelling">ModellingConstants</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ModellingConstants.html#OBR_SYMBOLIC_NAME"><B>OBR_SYMBOLIC_NAME</B></A> - 
Static variable in class org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingConstants.html" title="class in org.apache.aries.application.modelling">ModellingConstants</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html#open()"><B>open()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem">IFile</A>
<DD>The input stream returned by this method should always be closed after use.
<DT><A HREF="./org/apache/aries/application/modelling/ModellingConstants.html#OPTIONAL_KEY"><B>OPTIONAL_KEY</B></A> - 
Static variable in class org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ModellingConstants.html" title="class in org.apache.aries.application.modelling">ModellingConstants</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/package-summary.html"><B>org.apache.aries.application</B></A> - package org.apache.aries.application<DD>&nbsp;<DT><A HREF="./org/apache/aries/application/filesystem/package-summary.html"><B>org.apache.aries.application.filesystem</B></A> - package org.apache.aries.application.filesystem<DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/package-summary.html"><B>org.apache.aries.application.management</B></A> - package org.apache.aries.application.management<DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/convert/package-summary.html"><B>org.apache.aries.application.management.spi.convert</B></A> - package org.apache.aries.application.management.spi.convert<DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/framework/package-summary.html"><B>org.apache.aries.application.management.spi.framework</B></A> - package org.apache.aries.application.management.spi.framework<DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/repository/package-summary.html"><B>org.apache.aries.application.management.spi.repository</B></A> - package org.apache.aries.application.management.spi.repository<DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/resolve/package-summary.html"><B>org.apache.aries.application.management.spi.resolve</B></A> - package org.apache.aries.application.management.spi.resolve<DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/runtime/package-summary.html"><B>org.apache.aries.application.management.spi.runtime</B></A> - package org.apache.aries.application.management.spi.runtime<DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/spi/update/package-summary.html"><B>org.apache.aries.application.management.spi.update</B></A> - package org.apache.aries.application.management.spi.update<DD>&nbsp;<DT><A HREF="./org/apache/aries/application/modelling/package-summary.html"><B>org.apache.aries.application.modelling</B></A> - package org.apache.aries.application.modelling<DD>&nbsp;<DT><A HREF="./org/apache/aries/application/modelling/utils/package-summary.html"><B>org.apache.aries.application.modelling.utils</B></A> - package org.apache.aries.application.modelling.utils<DD>&nbsp;</DL>
<HR>
<A NAME="_P_"><!-- --></A><H2>
<B>P</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/modelling/ParserProxy.html#parse(java.util.List)"><B>parse(List&lt;URL&gt;)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ParserProxy.html" title="interface in org.apache.aries.application.modelling">ParserProxy</A>
<DD>Parse blueprint xml files and extract the parsed ServiceMetadata objects
<DT><A HREF="./org/apache/aries/application/modelling/ParserProxy.html#parse(java.net.URL)"><B>parse(URL)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ParserProxy.html" title="interface in org.apache.aries.application.modelling">ParserProxy</A>
<DD>Parse a blueprint xml files and extract the parsed ServiceMetadata objects
<DT><A HREF="./org/apache/aries/application/modelling/ParserProxy.html#parse(java.io.InputStream)"><B>parse(InputStream)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ParserProxy.html" title="interface in org.apache.aries.application.modelling">ParserProxy</A>
<DD>Parse an InputStream containing blueprint xml and extract the parsed ServiceMetadata objects
<DT><A HREF="./org/apache/aries/application/modelling/ParserProxy.html#parseAllServiceElements(java.io.InputStream)"><B>parseAllServiceElements(InputStream)</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ParserProxy.html" title="interface in org.apache.aries.application.modelling">ParserProxy</A>
<DD>Parse an InputStream containing blueprint xml and extract Service, Reference and RefList
 elements.
<DT><A HREF="./org/apache/aries/application/ApplicationMetadataFactory.html#parseApplicationMetadata(java.io.InputStream)"><B>parseApplicationMetadata(InputStream)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadataFactory.html" title="interface in org.apache.aries.application">ApplicationMetadataFactory</A>
<DD>Parse from the input stream the application manifest.
<DT><A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html#parseDeploymentMetadata(org.apache.aries.application.filesystem.IFile)"><B>parseDeploymentMetadata(IFile)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html" title="interface in org.apache.aries.application">DeploymentMetadataFactory</A>
<DD>Extract a DeploymentMetadata instance from an IFile
<DT><A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html#parseDeploymentMetadata(java.io.InputStream)"><B>parseDeploymentMetadata(InputStream)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadataFactory.html" title="interface in org.apache.aries.application">DeploymentMetadataFactory</A>
<DD>Extract a DeploymentMetadata instance from InputStream.
<DT><A HREF="./org/apache/aries/application/modelling/ParsedServiceElements.html" title="interface in org.apache.aries.application.modelling"><B>ParsedServiceElements</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>A simple data structure containing two immutable Collections, 
 one each of ImportedServiceImpl and ExportedServiceImpl<DT><A HREF="./org/apache/aries/application/modelling/ParserProxy.html" title="interface in org.apache.aries.application.modelling"><B>ParserProxy</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>This interface is implemented by the service which proxies the
 Apache Aries blueprint parser.<DT><A HREF="./org/apache/aries/application/management/spi/repository/PlatformRepository.html" title="interface in org.apache.aries.application.management.spi.repository"><B>PlatformRepository</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/repository/package-summary.html">org.apache.aries.application.management.spi.repository</A><DD>This interface allows one to find out information about configured bundle repositories<DT><A HREF="./org/apache/aries/application/management/spi/resolve/PostResolveTransformer.html#postResolveProcess(org.apache.aries.application.ApplicationMetadata, org.apache.aries.application.modelling.DeployedBundles)"><B>postResolveProcess(ApplicationMetadata, DeployedBundles)</B></A> - 
Method in interface org.apache.aries.application.management.spi.resolve.<A HREF="./org/apache/aries/application/management/spi/resolve/PostResolveTransformer.html" title="interface in org.apache.aries.application.management.spi.resolve">PostResolveTransformer</A>
<DD>This method is to perform any post process after the resolver returns back a collection of bundles.
<DT><A HREF="./org/apache/aries/application/management/spi/resolve/PostResolveTransformer.html" title="interface in org.apache.aries.application.management.spi.resolve"><B>PostResolveTransformer</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/resolve/package-summary.html">org.apache.aries.application.management.spi.resolve</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/modelling/Provider.html" title="interface in org.apache.aries.application.modelling"><B>Provider</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>Base interface to model a bundle, package or service</DL>
<HR>
<A NAME="_R_"><!-- --></A><H2>
<B>R</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html#register(org.osgi.framework.Bundle)"><B>register(Bundle)</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy.UpdateInfo</A>
<DD>Register a new bundle with the application (i.e.
<DT><A HREF="./org/apache/aries/application/management/spi/runtime/AriesApplicationContextManager.html#remove(org.apache.aries.application.management.AriesApplicationContext)"><B>remove(AriesApplicationContext)</B></A> - 
Method in interface org.apache.aries.application.management.spi.runtime.<A HREF="./org/apache/aries/application/management/spi/runtime/AriesApplicationContextManager.html" title="interface in org.apache.aries.application.management.spi.runtime">AriesApplicationContextManager</A>
<DD>Remove the provided AriesApplicationContext from the running system.
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationManager.html#removeApplicationListener(org.apache.aries.application.management.AriesApplicationListener)"><B>removeApplicationListener(AriesApplicationListener)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationManager.html" title="interface in org.apache.aries.application.management">AriesApplicationManager</A>
<DD>Remove an AriesApplicationListener
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.html#REPOSITORY_SCOPE"><B>REPOSITORY_SCOPE</B></A> - 
Static variable in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepository</A>
<DD>Service property denoting the scope of the bundle repository.
<DT><A HREF="./org/apache/aries/application/management/spi/repository/RepositoryGenerator.html" title="interface in org.apache.aries.application.management.spi.repository"><B>RepositoryGenerator</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/repository/package-summary.html">org.apache.aries.application.management.spi.repository</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/AriesApplicationManager.html#resolve(org.apache.aries.application.management.AriesApplication, org.apache.aries.application.management.ResolveConstraint...)"><B>resolve(AriesApplication, ResolveConstraint...)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationManager.html" title="interface in org.apache.aries.application.management">AriesApplicationManager</A>
<DD>Resolve an AriesApplication against a set of constraints.
<DT><A HREF="./org/apache/aries/application/management/spi/resolve/AriesApplicationResolver.html#resolve(org.apache.aries.application.management.AriesApplication, org.apache.aries.application.management.ResolveConstraint...)"><B>resolve(AriesApplication, ResolveConstraint...)</B></A> - 
Method in interface org.apache.aries.application.management.spi.resolve.<A HREF="./org/apache/aries/application/management/spi/resolve/AriesApplicationResolver.html" title="interface in org.apache.aries.application.management.spi.resolve">AriesApplicationResolver</A>
<DD><B>Deprecated.</B>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/resolve/AriesApplicationResolver.html#resolve(java.lang.String, java.lang.String, java.util.Collection, java.util.Collection)"><B>resolve(String, String, Collection&lt;ModelledResource&gt;, Collection&lt;Content&gt;)</B></A> - 
Method in interface org.apache.aries.application.management.spi.resolve.<A HREF="./org/apache/aries/application/management/spi/resolve/AriesApplicationResolver.html" title="interface in org.apache.aries.application.management.spi.resolve">AriesApplicationResolver</A>
<DD>Resolve an AriesApplication.
<DT><A HREF="./org/apache/aries/application/management/spi/resolve/AriesApplicationResolver.html#resolve(java.lang.String, java.lang.String, java.util.Collection, java.util.Collection, org.apache.aries.application.management.spi.repository.PlatformRepository)"><B>resolve(String, String, Collection&lt;ModelledResource&gt;, Collection&lt;Content&gt;, PlatformRepository)</B></A> - 
Method in interface org.apache.aries.application.management.spi.resolve.<A HREF="./org/apache/aries/application/management/spi/resolve/AriesApplicationResolver.html" title="interface in org.apache.aries.application.management.spi.resolve">AriesApplicationResolver</A>
<DD>Resolve an AriesApplication against a given platform repository.
<DT><A HREF="./org/apache/aries/application/management/ResolveConstraint.html" title="interface in org.apache.aries.application.management"><B>ResolveConstraint</B></A> - Interface in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>An administrator may wish to change the content of an installed application.<DT><A HREF="./org/apache/aries/application/management/ResolverException.html" title="class in org.apache.aries.application.management"><B>ResolverException</B></A> - Exception in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>Exception thrown by the AriesApplicationResolver interface<DT><A HREF="./org/apache/aries/application/management/ResolverException.html#ResolverException(java.lang.Exception)"><B>ResolverException(Exception)</B></A> - 
Constructor for exception org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/ResolverException.html" title="class in org.apache.aries.application.management">ResolverException</A>
<DD>Construct from an Exception
<DT><A HREF="./org/apache/aries/application/management/ResolverException.html#ResolverException(java.lang.String)"><B>ResolverException(String)</B></A> - 
Constructor for exception org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/ResolverException.html" title="class in org.apache.aries.application.management">ResolverException</A>
<DD>Construct from a String
<DT><A HREF="./org/apache/aries/application/modelling/ResourceType.html" title="enum in org.apache.aries.application.modelling"><B>ResourceType</B></A> - Enum in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>&nbsp;</DL>
<HR>
<A NAME="_S_"><!-- --></A><H2>
<B>S</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/ServiceDeclaration.html" title="interface in org.apache.aries.application"><B>ServiceDeclaration</B></A> - Interface in <A HREF="./org/apache/aries/application/package-summary.html">org.apache.aries.application</A><DD>Represents a service imported or exported by an Aries application.<DT><A HREF="./org/apache/aries/application/management/ResolverException.html#setUnsatisfiedRequirements(java.util.List)"><B>setUnsatisfiedRequirements(List&lt;String&gt;)</B></A> - 
Method in exception org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/ResolverException.html" title="class in org.apache.aries.application.management">ResolverException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#SHARED_BUNDLE_FRAMEWORK"><B>SHARED_BUNDLE_FRAMEWORK</B></A> - 
Static variable in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html#SHARED_FRAMEWORK_LOCK"><B>SHARED_FRAMEWORK_LOCK</B></A> - 
Static variable in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager</A>
<DD>All additions/removals of frameworks and bundles from the shared bundle framework are
 performed under this object lock.
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationContext.html#start()"><B>start()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationContext.html" title="interface in org.apache.aries.application.management">AriesApplicationContext</A>
<DD>Start the application by starting all its constituent bundles as per the DeploymentContent 
 in the associated AriesApplication's DeploymentMetadata.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#start()"><B>start()</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>Starts the framework and the framework bundle
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#start(org.osgi.framework.Bundle)"><B>start(Bundle)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>Start a previously installed bundle in this framework.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html#startBundle(org.osgi.framework.Bundle)"><B>startBundle(Bundle)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager</A>
<DD>Starts a previously installed bundle
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html#startBundles()"><B>startBundles()</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy.UpdateInfo</A>
<DD>Whether to start any newly installed bundles
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationContext.html#stop()"><B>stop()</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationContext.html" title="interface in org.apache.aries.application.management">AriesApplicationContext</A>
<DD>Stop the application by stopping all its constituent bundles.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#stop(org.osgi.framework.Bundle)"><B>stop(Bundle)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>Stop a previously installed bundle in this framework.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html#stopBundle(org.osgi.framework.Bundle)"><B>stopBundle(Bundle)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager</A>
<DD>Stops a previously installed bundle
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html#store(java.io.File)"><B>store(File)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application">ApplicationMetadata</A>
<DD>Persist this metadata.
<DT><A HREF="./org/apache/aries/application/ApplicationMetadata.html#store(java.io.OutputStream)"><B>store(OutputStream)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/ApplicationMetadata.html" title="interface in org.apache.aries.application">ApplicationMetadata</A>
<DD>Persist this metadata.
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#store(java.io.File)"><B>store(File)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>Persist this metadata as Manifest-formatted text.
<DT><A HREF="./org/apache/aries/application/DeploymentMetadata.html#store(java.io.OutputStream)"><B>store(OutputStream)</B></A> - 
Method in interface org.apache.aries.application.<A HREF="./org/apache/aries/application/DeploymentMetadata.html" title="interface in org.apache.aries.application">DeploymentMetadata</A>
<DD>Persist this metadata.
<DT><A HREF="./org/apache/aries/application/management/AriesApplication.html#store(java.io.File)"><B>store(File)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplication.html" title="interface in org.apache.aries.application.management">AriesApplication</A>
<DD>Persist this metadata.
<DT><A HREF="./org/apache/aries/application/management/AriesApplication.html#store(java.io.OutputStream)"><B>store(OutputStream)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplication.html" title="interface in org.apache.aries.application.management">AriesApplication</A>
<DD>Persist this metadata.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.BundleLocator.html#suggestBundle(java.util.Collection)"><B>suggestBundle(Collection&lt;DeploymentContent&gt;)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.BundleLocator.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager.BundleLocator</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html#suggestBundle(java.util.Collection)"><B>suggestBundle(Collection&lt;DeploymentContent&gt;)</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy.UpdateInfo</A>
<DD>Find <A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.BundleSuggestion.html" title="interface in org.apache.aries.application.management.spi.repository"><CODE>BundleRepository.BundleSuggestion</CODE></A> objects for new bundle requests
<DT><A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.html#suggestBundleToUse(org.apache.aries.application.DeploymentContent)"><B>suggestBundleToUse(DeploymentContent)</B></A> - 
Method in interface org.apache.aries.application.management.spi.repository.<A HREF="./org/apache/aries/application/management/spi/repository/BundleRepository.html" title="interface in org.apache.aries.application.management.spi.repository">BundleRepository</A>
<DD>This method attempts to find a bundle in the repository that matches the
 specified DeploymentContent specification.
</DL>
<HR>
<A NAME="_T_"><!-- --></A><H2>
<B>T</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/modelling/DeploymentMFElement.html#toDeploymentString()"><B>toDeploymentString()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeploymentMFElement.html" title="interface in org.apache.aries.application.modelling">DeploymentMFElement</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/DeployedBundles.html#toString()"><B>toString()</B></A> - 
Method in interface org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/DeployedBundles.html" title="interface in org.apache.aries.application.modelling">DeployedBundles</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/modelling/ResourceType.html#toString()"><B>toString()</B></A> - 
Method in enum org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ResourceType.html" title="enum in org.apache.aries.application.modelling">ResourceType</A>
<DD>An enum class to represent the resource type, such as bundle, package, service etc.
<DT><A HREF="./org/apache/aries/application/filesystem/IFile.html#toURL()"><B>toURL()</B></A> - 
Method in interface org.apache.aries.application.filesystem.<A HREF="./org/apache/aries/application/filesystem/IFile.html" title="interface in org.apache.aries.application.filesystem">IFile</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_U_"><!-- --></A><H2>
<B>U</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationManager.html#uninstall(org.apache.aries.application.management.AriesApplicationContext)"><B>uninstall(AriesApplicationContext)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationManager.html" title="interface in org.apache.aries.application.management">AriesApplicationManager</A>
<DD>Uninstall an AriesApplication - i.e.
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html#uninstall(org.osgi.framework.Bundle)"><B>uninstall(Bundle)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFramework.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFramework</A>
<DD>Removes a bundle from this framework
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html#uninstallBundle(org.osgi.framework.Bundle)"><B>uninstallBundle(Bundle)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager</A>
<DD>Removes a bundle from the runtime
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html#unregister(org.osgi.framework.Bundle)"><B>unregister(Bundle)</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy.UpdateInfo</A>
<DD>Unregister a bundle from the application (i.e.
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationManager.html#update(org.apache.aries.application.management.AriesApplication, org.apache.aries.application.DeploymentMetadata)"><B>update(AriesApplication, DeploymentMetadata)</B></A> - 
Method in interface org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationManager.html" title="interface in org.apache.aries.application.management">AriesApplicationManager</A>
<DD>Update an application's deployment and apply the changes to the runtime if the application is deployed
<DT><A HREF="./org/apache/aries/application/management/spi/runtime/AriesApplicationContextManager.html#update(org.apache.aries.application.management.AriesApplication, org.apache.aries.application.DeploymentMetadata)"><B>update(AriesApplication, DeploymentMetadata)</B></A> - 
Method in interface org.apache.aries.application.management.spi.runtime.<A HREF="./org/apache/aries/application/management/spi/runtime/AriesApplicationContextManager.html" title="interface in org.apache.aries.application.management.spi.runtime">AriesApplicationContextManager</A>
<DD>Update the AriesApplication and return an updated application context.
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.html#update(org.apache.aries.application.management.spi.update.UpdateStrategy.UpdateInfo)"><B>update(UpdateStrategy.UpdateInfo)</B></A> - 
Method in interface org.apache.aries.application.management.spi.update.<A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.html" title="interface in org.apache.aries.application.management.spi.update">UpdateStrategy</A>
<DD>Update an application
<DT><A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html#updateBundles(org.apache.aries.application.DeploymentMetadata, org.apache.aries.application.DeploymentMetadata, org.apache.aries.application.management.AriesApplication, org.apache.aries.application.management.spi.framework.BundleFrameworkManager.BundleLocator, java.util.Set, boolean)"><B>updateBundles(DeploymentMetadata, DeploymentMetadata, AriesApplication, BundleFrameworkManager.BundleLocator, Set&lt;Bundle&gt;, boolean)</B></A> - 
Method in interface org.apache.aries.application.management.spi.framework.<A HREF="./org/apache/aries/application/management/spi/framework/BundleFrameworkManager.html" title="interface in org.apache.aries.application.management.spi.framework">BundleFrameworkManager</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/UpdateException.html" title="class in org.apache.aries.application.management"><B>UpdateException</B></A> - Exception in <A HREF="./org/apache/aries/application/management/package-summary.html">org.apache.aries.application.management</A><DD>&nbsp;<DT><A HREF="./org/apache/aries/application/management/UpdateException.html#UpdateException(java.lang.String, java.lang.Exception, boolean, java.lang.Exception)"><B>UpdateException(String, Exception, boolean, Exception)</B></A> - 
Constructor for exception org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/UpdateException.html" title="class in org.apache.aries.application.management">UpdateException</A>
<DD>&nbsp;
<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.html" title="interface in org.apache.aries.application.management.spi.update"><B>UpdateStrategy</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/update/package-summary.html">org.apache.aries.application.management.spi.update</A><DD>Plug point for update implementation<DT><A HREF="./org/apache/aries/application/management/spi/update/UpdateStrategy.UpdateInfo.html" title="interface in org.apache.aries.application.management.spi.update"><B>UpdateStrategy.UpdateInfo</B></A> - Interface in <A HREF="./org/apache/aries/application/management/spi/update/package-summary.html">org.apache.aries.application.management.spi.update</A><DD>Representation for an update request</DL>
<HR>
<A NAME="_V_"><!-- --></A><H2>
<B>V</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationContext.ApplicationState.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationContext.ApplicationState.html" title="enum in org.apache.aries.application.management">AriesApplicationContext.ApplicationState</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/aries/application/modelling/ResourceType.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
Static method in enum org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ResourceType.html" title="enum in org.apache.aries.application.modelling">ResourceType</A>
<DD>Returns the enum constant of this type with the specified name.
<DT><A HREF="./org/apache/aries/application/management/AriesApplicationContext.ApplicationState.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.aries.application.management.<A HREF="./org/apache/aries/application/management/AriesApplicationContext.ApplicationState.html" title="enum in org.apache.aries.application.management">AriesApplicationContext.ApplicationState</A>
<DD>Returns an array containing the constants of this enum type, in
the order they are declared.
<DT><A HREF="./org/apache/aries/application/modelling/ResourceType.html#values()"><B>values()</B></A> - 
Static method in enum org.apache.aries.application.modelling.<A HREF="./org/apache/aries/application/modelling/ResourceType.html" title="enum in org.apache.aries.application.modelling">ResourceType</A>
<DD>Returns an array containing the constants of this enum type, in
the order they are declared.
<DT><A HREF="./org/apache/aries/application/VersionRange.html" title="interface in org.apache.aries.application"><B>VersionRange</B></A> - Interface in <A HREF="./org/apache/aries/application/package-summary.html">org.apache.aries.application</A><DD>A representation of a Version Range.</DL>
<HR>
<A NAME="_W_"><!-- --></A><H2>
<B>W</B></H2>
<DL>
<DT><A HREF="./org/apache/aries/application/modelling/WrappedReferenceMetadata.html" title="interface in org.apache.aries.application.modelling"><B>WrappedReferenceMetadata</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>Information about a parsed blueprint reference<DT><A HREF="./org/apache/aries/application/modelling/WrappedServiceMetadata.html" title="interface in org.apache.aries.application.modelling"><B>WrappedServiceMetadata</B></A> - Interface in <A HREF="./org/apache/aries/application/modelling/package-summary.html">org.apache.aries.application.modelling</A><DD>A proxy for org.osgi.service.blueprint.reflect.ServiceMetadata, which we cannot
 pass to clients in the outer framework.</DL>
<HR>
<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</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>
