Package org.apache.sling.testing.clients.osgi

# Class BundlesInstaller

java.lang.Object
org.apache.sling.testing.clients.osgi.BundlesInstaller

public class BundlesInstaller extends Object
Utility for installing and starting additional bundles for testing

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`ACTIVE_STATE`

## Constructor Summary

Constructors
Constructor
Description
`BundlesInstaller(OsgiConsoleClient cc)`

## Method Summary

Modifier and Type
Method
Description
`void`
`installBundles(List<File> toInstall, boolean startBundles)`
Install a list of bundles supplied as Files
`boolean`
`isInstalled(File bundleFile)`
Checks if a bundle is installed or not.
`boolean`
`isInstalledWithSameVersion(File bundleFile)`
Check if the installed version matches the one of the bundle (file)
`void`
`startAllBundles(List<String> symbolicNames, int timeout)`
Start all the bundles in a {{List}}
`void`
`uninstallBundles(List<File> toUninstall)`
Uninstall a list of bundles supplied as Files
`void`
`waitBundlesInstalled(List<String> symbolicNames, long timeout)`
Wait for multiple bundles to be installed in the OSGi web console.
`boolean`
`waitForBundlesInstalled(List<String> symbolicNames, int timeoutSeconds)`
Deprecated.
use `waitBundlesInstalled(List, long)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### ACTIVE_STATE

public static final String ACTIVE_STATE

See Also:
  - Constant Field Values

## Constructor Details

### BundlesInstaller

public BundlesInstaller(OsgiConsoleClient cc)

## Method Details

### isInstalled

public boolean isInstalled(File bundleFile) throws ClientException
Checks if a bundle is installed or not. Does not retry.

Parameters:
  `bundleFile` - bundle file
Returns:
  true if the bundle is installed
Throws:
  `ClientException` - if the state of the bundle could not be determined

### isInstalledWithSameVersion

public boolean isInstalledWithSameVersion(File bundleFile) throws ClientException, IOException
Check if the installed version matches the one of the bundle (file)

Parameters:
  `bundleFile` - bundle file
Returns:
  true if the bundle is installed and has the same version
Throws:
  `ClientException` - if the installed version cannot be retrieved
  `IOException` - if the file version cannot be read

### installBundles

public void installBundles(List<File> toInstall, boolean startBundles) throws ClientException, IOException
Install a list of bundles supplied as Files

Parameters:
  `toInstall` - list ob bundles to install
  `startBundles` - whether to start the bundles
Throws:
  `ClientException` - if an error occurs during installation
  `IOException` - if reading the file fails

### uninstallBundles

public void uninstallBundles(List<File> toUninstall) throws ClientException, IOException
Uninstall a list of bundles supplied as Files

Parameters:
  `toUninstall` - bundles to uninstall
Throws:
  `ClientException` - if one of the requests failed
  `IOException` - if the files cannot be read from disk

### waitForBundlesInstalled

@Deprecated public boolean waitForBundlesInstalled(List<String> symbolicNames, int timeoutSeconds) throws ClientException, InterruptedException
Deprecated.
use `waitBundlesInstalled(List, long)`
Wait for all bundles specified in symbolicNames list to be installed in the OSGi web console.

Parameters:
  `symbolicNames` - the list of names for the bundles
  `timeoutSeconds` - how many seconds to wait
Returns:
  true if all the bundles were installed
Throws:
  `ClientException` - if something went wrong
  `InterruptedException` - if interrupted

### waitBundlesInstalled

public void waitBundlesInstalled(List<String> symbolicNames, long timeout) throws InterruptedException, TimeoutException
Wait for multiple bundles to be installed in the OSGi web console.

Parameters:
  `symbolicNames` - the list bundles to be checked
  `timeout` - max total time to wait for all bundles, in ms, before throwing `TimeoutException`
Throws:
  `TimeoutException` - if the timeout was reached before all the bundles were installed
  `InterruptedException` - to mark this operation as "waiting", callers should rethrow it

### startAllBundles

public void startAllBundles(List<String> symbolicNames, int timeout) throws InterruptedException, TimeoutException
Start all the bundles in a {{List}}

Parameters:
  `symbolicNames` - the list of bundles to start
  `timeout` - total max time to wait for all the bundles, in ms
Throws:
  `TimeoutException` - if the timeout is reached before all the bundles are started
  `InterruptedException` - to mark this operation as "waiting", callers should rethrow it