Package org.openhab.core.test
Class SyntheticBundleInstaller
java.lang.Object
org.openhab.core.test.SyntheticBundleInstaller
Utility class for creation, installation, update and uninstallation of
synthetic bundles for the purpose of testing. The synthetic bundles content
should be stored into separate sub-directories of "/test-bundle-pool"
(which itself is situated in the test bundle's source directory). The
synthetic bundle is packed as a JAR and installed into the test runtime.
- Author:
- Alex Tugarev - Initial contribution, Dennis Nobel - Generalized the mechanism for creation of bundles by list of extensions to include, Simon Kaufmann - Install method returns when the bundle is fully loaded, Stefan Bussweiler - The list of extensions to include is extended with JSON, Andre Fuechsel - Implemented method for adding fragment, Kai Kreuzer - Applied formatting and license to the file, Dimitar Ivanov - The extension to include can be configured or default ones can be used; update method is introduced
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic org.osgi.framework.Bundle
Install synthetic bundle, denoted by its name, into the test runtime (by using the given bundle context).static org.osgi.framework.Bundle
install
(org.osgi.framework.BundleContext bundleContext, String testBundleName, String... extensionsToInclude) Install synthetic bundle, denoted by its name, into the test runtime (by using the given bundle context).static org.osgi.framework.Bundle
install
(org.osgi.framework.BundleContext bundleContext, String testBundleName, Set<String> extensionsToInclude) Install synthetic bundle, denoted by its name, into the test runtime (by using the given bundle context).static org.osgi.framework.Bundle
installFragment
(org.osgi.framework.BundleContext bundleContext, String testBundleName) Install synthetic bundle fragment, denoted by its name, into the test runtime (by using the given bundle context).static org.osgi.framework.Bundle
installFragment
(org.osgi.framework.BundleContext bundleContext, String testBundleName, Set<String> extensionsToInclude) Install synthetic bundle fragment, denoted by its name, into the test runtime (by using the given bundle context).static void
uninstall
(org.osgi.framework.Bundle bundle) Uninstalls the synthetic bundle (or bundle fragment) from the test runtime.static void
Uninstalls the synthetic bundle (or bundle fragment), denoted by its name, from the test runtime.static org.osgi.framework.Bundle
update
(org.osgi.framework.BundleContext bundleContext, String bundleToUpdateName, String updateDirName) Updates given bundle into the test runtime (the content is changed, but the symbolic name of the bundles remains the same) with a new content, prepared in another resources directory.static org.osgi.framework.Bundle
update
(org.osgi.framework.BundleContext bundleContext, String bundleToUpdateName, String updateDirName, String... extensionsToInclude) Updates given bundle into the test runtime (the content is changed, but the symbolic name of the bundles remains the same) with a new content, prepared in another resources directory.static org.osgi.framework.Bundle
update
(org.osgi.framework.BundleContext bundleContext, String bundleToUpdateName, String updateDirName, Set<String> extensionsToInclude) Updates given bundle into the test runtime (the content is changed, but the symbolic name of the bundles remains the same) with a new content, prepared in another resources directory.static void
waitUntilLoadingFinished
(org.osgi.framework.BundleContext context, org.osgi.framework.Bundle bundle) Explicitly wait for the given bundle to finish its loading
-
Constructor Details
-
SyntheticBundleInstaller
public SyntheticBundleInstaller()
-
-
Method Details
-
install
public static org.osgi.framework.Bundle install(org.osgi.framework.BundleContext bundleContext, String testBundleName) throws Exception Install synthetic bundle, denoted by its name, into the test runtime (by using the given bundle context). Only the default extensions set (DEFAULT_EXTENSIONS
) will be included into the synthetic bundle- Parameters:
bundleContext
- the bundle context of the test runtimetestBundleName
- the symbolic name of the sub-directory of "/test-bundle-pool", which contains the files for the synthetic bundle- Returns:
- the synthetic bundle representation
- Throws:
Exception
- thrown when error occurs while installing or starting the synthetic bundle
-
install
public static org.osgi.framework.Bundle install(org.osgi.framework.BundleContext bundleContext, String testBundleName, Set<String> extensionsToInclude) throws Exception Install synthetic bundle, denoted by its name, into the test runtime (by using the given bundle context).- Parameters:
bundleContext
- the bundle context of the test runtimetestBundleName
- the symbolic name of the sub-directory of "/test-bundle-pool", which contains the files for the synthetic bundleextensionsToInclude
- a list of extension to be included into the synthetic bundle. In order to use the list of default extensions (DEFAULT_EXTENSIONS
)- Returns:
- the synthetic bundle representation
- Throws:
Exception
- thrown when error occurs while installing or starting the synthetic bundle
-
install
public static org.osgi.framework.Bundle install(org.osgi.framework.BundleContext bundleContext, String testBundleName, String... extensionsToInclude) throws Exception Install synthetic bundle, denoted by its name, into the test runtime (by using the given bundle context).- Parameters:
bundleContext
- the bundle context of the test runtimetestBundleName
- the symbolic name of the sub-directory of "/test-bundle-pool", which contains the files for the synthetic bundleextensionsToInclude
- a list of extension to be included into the synthetic bundle- Returns:
- the synthetic bundle representation
- Throws:
Exception
- thrown when error occurs while installing or starting the synthetic bundle
-
update
public static org.osgi.framework.Bundle update(org.osgi.framework.BundleContext bundleContext, String bundleToUpdateName, String updateDirName) throws Exception Updates given bundle into the test runtime (the content is changed, but the symbolic name of the bundles remains the same) with a new content, prepared in another resources directory.- Parameters:
bundleContext
- the bundle context of the test runtimebundleToUpdateName
- the symbolic name of the bundle to be updatedupdateDirName
- the location of the new content, that the target bundle will be updated with- Returns:
- the Bundle representation of the updated bundle
- Throws:
Exception
- thrown when error occurs while installing or starting the synthetic bundle
-
update
public static org.osgi.framework.Bundle update(org.osgi.framework.BundleContext bundleContext, String bundleToUpdateName, String updateDirName, Set<String> extensionsToInclude) throws Exception Updates given bundle into the test runtime (the content is changed, but the symbolic name of the bundles remains the same) with a new content, prepared in another resources directory.- Parameters:
bundleContext
- the bundle context of the test runtimebundleToUpdateName
- the symbolic name of the bundle to be updatedupdateDirName
- the location of the new content, that the target bundle will be updated withextensionsToInclude
- a list of extension to be included into the synthetic bundle- Returns:
- the Bundle representation of the updated bundle
- Throws:
Exception
- thrown when error occurs while installing or starting the synthetic bundle
-
update
public static org.osgi.framework.Bundle update(org.osgi.framework.BundleContext bundleContext, String bundleToUpdateName, String updateDirName, String... extensionsToInclude) throws Exception Updates given bundle into the test runtime (the content is changed, but the symbolic name of the bundles remains the same) with a new content, prepared in another resources directory.- Parameters:
bundleContext
- the bundle context of the test runtimebundleToUpdateName
- the symbolic name of the bundle to be updatedupdateDirName
- the location of the new content, that the target bundle will be updated withextensionsToInclude
- a list of extension to be included into the synthetic bundle- Returns:
- the Bundle representation of the updated bundle
- Throws:
Exception
- thrown when error occurs while installing or starting the synthetic bundle
-
installFragment
public static org.osgi.framework.Bundle installFragment(org.osgi.framework.BundleContext bundleContext, String testBundleName) throws Exception Install synthetic bundle fragment, denoted by its name, into the test runtime (by using the given bundle context). Only the default extensions set (DEFAULT_EXTENSIONS
) will be included into the synthetic bundle fragment.- Parameters:
bundleContext
- the bundle context of the test runtimetestBundleName
- the name of the sub-directory of "/test-bundle-pool", which contains the files for the synthetic bundle- Returns:
- the synthetic bundle representation
- Throws:
Exception
- thrown when error occurs while installing or starting the synthetic bundle fragment
-
installFragment
public static org.osgi.framework.Bundle installFragment(org.osgi.framework.BundleContext bundleContext, String testBundleName, Set<String> extensionsToInclude) throws Exception Install synthetic bundle fragment, denoted by its name, into the test runtime (by using the given bundle context). Only the default extensions set (DEFAULT_EXTENSIONS
) will be included into the synthetic bundle fragment.- Parameters:
bundleContext
- the bundle context of the test runtimetestBundleName
- the name of the sub-directory of "/test-bundle-pool", which contains the files for the synthetic bundle- Returns:
- the synthetic bundle representation
- Throws:
Exception
- thrown when error occurs while installing or starting the synthetic bundle fragment
-
waitUntilLoadingFinished
public static void waitUntilLoadingFinished(org.osgi.framework.BundleContext context, org.osgi.framework.Bundle bundle) Explicitly wait for the given bundle to finish its loading- Parameters:
bundle
- the bundle object representation
-
uninstall
public static void uninstall(org.osgi.framework.Bundle bundle) throws org.osgi.framework.BundleException Uninstalls the synthetic bundle (or bundle fragment) from the test runtime.- Parameters:
bundle
- the bundle to uninstall- Throws:
org.osgi.framework.BundleException
- if error is met during the bundle uninstall
-
uninstall
public static void uninstall(org.osgi.framework.BundleContext bundleContext, String testBundleName) throws org.osgi.framework.BundleException Uninstalls the synthetic bundle (or bundle fragment), denoted by its name, from the test runtime.This method should only be used if the bundle itself provides a symbolic name. If possible you should use
uninstall(Bundle)
and give the bundle that has been provided by one of the install methods.- Parameters:
bundleContext
- the bundle context of the test runtimetestBundleName
- the name of the test bundle to be uninstalled- Throws:
org.osgi.framework.BundleException
- if error is met during the bundle uninstall
-