Package org.eclipse.pde.core

# Interface IBundleClasspathResolver

public interface IBundleClasspathResolver
Resolves dynamically generated bundle classpath entries in the context of a java project.

Generally, dynamically generated bundle classpath entries are not present under project source tree but included in the bundle as part build process. During development time such bundle classpath entries can be resolved to external jar files or workspace resources. Resolution of the same entry may change over time, similarly to how Plug-in Dependencies classpath container can switch between external bundles and workspace projects.

A resolver is declared as an extension (`org.eclipse.pde.core.bundleClasspathResolvers`). This extension has the following attributes:

- `nature` specified nature of the projects this resolver is registered for.
- `class` specifies the fully qualified name of the Java class that implements `IBundleClasspathResolver`.

The resolver is consulted when dynamically generated bundle is added to OSGi runtime launch and when looking up sources from the bundle.

Since:
  3.8

## Method Summary

Modifier and Type
Method
Description
`Map<IPath,Collection<IPath>>`
`getAdditionalClasspathEntries(IJavaProject javaProject)`
Returns a possibly empty map describing additional bundle classpath entries for a project in the workspace.
`Collection<IRuntimeClasspathEntry>`
`getAdditionalSourceEntries(IJavaProject javaProject)`
Returns a possibly empty collection listing additional classpath entries for the source lookup path of a project in the workspace.

## Method Details

### getAdditionalClasspathEntries

Map<IPath,Collection<IPath>> getAdditionalClasspathEntries(IJavaProject javaProject)
Returns a possibly empty map describing additional bundle classpath entries for a project in the workspace.

The map key is a `IPath` describing the project relative path to a source directory or library. The value is the `Collection` of `IPath` locations (relative to the project or absolute) that should be added to the bundle classpath.

Parameters:
  `javaProject` - the java project to collect classpath entries for
Returns:
  additional entries to add to the bundle classpath. Map of IPath to Collection, possibly empty

### getAdditionalSourceEntries

Collection<IRuntimeClasspathEntry> getAdditionalSourceEntries(IJavaProject javaProject)
Returns a possibly empty collection listing additional classpath entries for the source lookup path of a project in the workspace.

The `Collection` will contain `IRuntimeClasspathEntry` describing locations where source can be obtained from.

Parameters:
  `javaProject` - the java project to collect source entries for
Returns:
  additional entries for the source lookup path. Collection of IRuntimeClasspathEntry, possibly empty