org.springframework.osgi.test
Class AbstractDependencyManagerTests

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by org.springframework.test.ConditionalTestCase
              extended by org.springframework.test.AbstractSpringContextTests
                  extended by org.springframework.test.AbstractSingleSpringContextTests
                      extended by org.springframework.test.AbstractDependencyInjectionSpringContextTests
                          extended by org.springframework.osgi.test.AbstractOptionalDependencyInjectionTests
                              extended by org.springframework.osgi.test.AbstractOsgiTests
                                  extended by org.springframework.osgi.test.AbstractConfigurableOsgiTests
                                      extended by org.springframework.osgi.test.AbstractSynchronizedOsgiTests
                                          extended by org.springframework.osgi.test.AbstractDependencyManagerTests
All Implemented Interfaces:
Test
Direct Known Subclasses:
AbstractOnTheFlyBundleCreatorTests

public abstract class AbstractDependencyManagerTests
extends AbstractSynchronizedOsgiTests

Dependency manager class - deals with locating of various artifacts required by the OSGi test. The artifacts are considered to be OSGi bundles that will be installed during the OSGi platform startup. Additionally this class installs the testing framework required bundles (such as Spring, Spring-DM).

This implementation uses internally an ArtifactLocator to retrieve the required dependencies for the running test. By default, the artifact locator uses the local maven 2 repository. Maven configurations (such as <settings.xml>) are supported. Alternatively for Maven repositories located in non-default locations, one can use the localRepository system property to specify the folder URL.

Author:
Costin Leau

Field Summary
 
Fields inherited from class org.springframework.osgi.test.AbstractSynchronizedOsgiTests
DEFAULT_WAIT_TIME
 
Fields inherited from class org.springframework.osgi.test.AbstractConfigurableOsgiTests
OSGI_FRAMEWORK_SELECTOR
 
Fields inherited from class org.springframework.osgi.test.AbstractOsgiTests
resourceLoader
 
Fields inherited from class org.springframework.osgi.test.AbstractOptionalDependencyInjectionTests
bundleContext
 
Fields inherited from class org.springframework.test.AbstractDependencyInjectionSpringContextTests
AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_NO
 
Fields inherited from class org.springframework.test.AbstractSingleSpringContextTests
applicationContext
 
Fields inherited from class org.springframework.test.ConditionalTestCase
logger
 
Constructor Summary
AbstractDependencyManagerTests()
          Default constructor.
AbstractDependencyManagerTests(String name)
          Constructs a new AbstractDependencyManagerTests instance.
 
Method Summary
protected  ArtifactLocator getLocator()
          Returns the ArtifactLocator used by this test suite.
protected  String getSpringDMVersion()
          Returns the version of the Spring-DM bundles installed by the testing framework.
protected  String getSpringVersion()
          Returns the version of the Spring bundles installed by the testing framework.
protected  Resource[] getTestBundles()
          Returns the bundles required for the test execution.
protected  String[] getTestBundlesNames()
          Returns the bundles that have to be installed as part of the test setup.
protected  Resource[] getTestFrameworkBundles()
          Returns the test framework bundles (part of the test setup).
protected  String[] getTestFrameworkBundlesNames()
          Returns the bundles that have to be installed as part of the test setup.
protected  Resource getTestingFrameworkBundlesConfiguration()
          Returns the location of the test framework bundles configuration.
protected  Resource locateBundle(String bundleId)
          Locates (through the ArtifactLocator) an OSGi bundle given as a String.
protected  Resource[] locateBundles(String[] bundles)
          Locates the given bundle identifiers.
protected  void preProcessBundleContext(BundleContext platformBundleContext)
          Pre-processes the bundle context.
 
Methods inherited from class org.springframework.osgi.test.AbstractSynchronizedOsgiTests
getDefaultWaitTime, isSpringDMManaged, postProcessBundleContext, shouldWaitForSpringBundlesContextCreation, waitOnContextCreation, waitOnContextCreation, waitOnContextCreation
 
Methods inherited from class org.springframework.osgi.test.AbstractConfigurableOsgiTests
createPlatform, getBootDelegationPackages, getPlatformName
 
Methods inherited from class org.springframework.osgi.test.AbstractOsgiTests
run, runBare
 
Methods inherited from class org.springframework.osgi.test.AbstractOptionalDependencyInjectionTests
createApplicationContext, isContextKeyEmpty
 
Methods inherited from class org.springframework.test.AbstractDependencyInjectionSpringContextTests
getAutowireMode, injectDependencies, isDependencyCheck, isPopulateProtectedVariables, prepareTestInstance, setAutowireMode, setDependencyCheck, setPopulateProtectedVariables
 
Methods inherited from class org.springframework.test.AbstractSingleSpringContextTests
contextKey, createBeanDefinitionReader, customizeBeanFactory, getApplicationContext, getConfigLocations, getConfigPath, getConfigPaths, getLoadCount, loadContext, loadContextLocations, onSetUp, onTearDown, prepareApplicationContext, setDirty, setUp, tearDown
 
Methods inherited from class org.springframework.test.AbstractSpringContextTests
addContext, contextKeyString, getContext, hasCachedContext, setDirty
 
Methods inherited from class org.springframework.test.ConditionalTestCase
getDisabledTestCount, isDisabledInThisEnvironment, recordDisabled
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AbstractDependencyManagerTests

public AbstractDependencyManagerTests()
Default constructor. Constructs a new AbstractDependencyManagerTests instance.


AbstractDependencyManagerTests

public AbstractDependencyManagerTests(String name)
Constructs a new AbstractDependencyManagerTests instance.

Parameters:
name - test name
Method Detail

getSpringDMVersion

protected String getSpringDMVersion()
Returns the version of the Spring-DM bundles installed by the testing framework.

Returns:
Spring-DM bundles version

getSpringVersion

protected String getSpringVersion()
Returns the version of the Spring bundles installed by the testing framework.

Returns:
Spring framework dependency version

getTestBundlesNames

protected String[] getTestBundlesNames()
Returns the bundles that have to be installed as part of the test setup. This method provides an alternative to getTestBundles() as it allows subclasses to specify just the bundle name w/o worrying about locating the artifact (which is resolved through the ArtifactLocator).

A bundle name can have any value and depends on the format expected by the ArtifactLocator implementation. By default, a CSV (Comma Separated Values) format is expected.

This method allows a declarative approach in declaring bundles as opposed to getTestBundles() which provides a programmatic one.

Returns:
an array of testing framework bundle identifiers
See Also:
locateBundle(String)

getTestFrameworkBundlesNames

protected String[] getTestFrameworkBundlesNames()
Returns the bundles that have to be installed as part of the test setup. This method is preferred as the bundles are by their names rather then as Resources. It allows for a declarative approach for specifying bundles as opposed to getTestBundles() which provides a programmatic one.

This implementation reads a predefined properties file to determine the bundles needed. If the configuration needs to be changed, consider changing the configuration location.

Returns:
an array of testing framework bundle identifiers
See Also:
getTestingFrameworkBundlesConfiguration(), locateBundle(String)

getTestingFrameworkBundlesConfiguration

protected Resource getTestingFrameworkBundlesConfiguration()
Returns the location of the test framework bundles configuration.

Returns:
the location of the test framework bundles configuration

getTestBundles

protected Resource[] getTestBundles()
Returns the bundles required for the test execution.

Default implementation that uses the ArtifactLocator to resolve the bundles specified in getTestBundlesNames(). Subclasses that override this method should decide whether they want to support getTestBundlesNames() or not.

Specified by:
getTestBundles in class AbstractOsgiTests
Returns:
the array of bundles to install
See Also:
AbstractOsgiTests.getTestBundles()

getTestFrameworkBundles

protected Resource[] getTestFrameworkBundles()
Returns the test framework bundles (part of the test setup). Used by the test infrastructure. Override this method only if you want to change the jars used by default, by the testing infrastructure. User subclasses should use AbstractOsgiTests.getTestBundles() instead.

Default implementation that uses getTestFrameworkBundlesNames() to discover the bundles part of the testing framework.

Specified by:
getTestFrameworkBundles in class AbstractOsgiTests
Returns:
the array of test framework bundle resources
See Also:
AbstractOsgiTests.getTestFrameworkBundles()

locateBundles

protected Resource[] locateBundles(String[] bundles)
Locates the given bundle identifiers. Will delegate to locateBundle(String).

Parameters:
bundles - bundle identifiers
Returns:
an array of Spring resources for the given bundle indentifiers

preProcessBundleContext

protected void preProcessBundleContext(BundleContext platformBundleContext)
                                throws Exception
Pre-processes the bundle context. This call back gives access to the platform bundle context before any bundles have been installed. The method is invoked after starting the OSGi environment but before any bundles are installed in the OSGi framework.

Normally, this method is called only once during the lifecycle of a test suite.

Sets specific log4j property to avoid class loading problems during start up related to the thread context class loader.

Overrides:
preProcessBundleContext in class AbstractOsgiTests
Parameters:
platformBundleContext - the platform bundle context
Throws:
Exception - if processing the bundle context fails
See Also:
AbstractOsgiTests.postProcessBundleContext(BundleContext)

locateBundle

protected Resource locateBundle(String bundleId)
Locates (through the ArtifactLocator) an OSGi bundle given as a String. The default implementation expects the argument to be in Comma Separated Values (CSV) format which indicates an artifact group, id, version and optionally the type.

Parameters:
bundleId - the bundle identifier in CSV format
Returns:
a resource pointing to the artifact location

getLocator

protected ArtifactLocator getLocator()
Returns the ArtifactLocator used by this test suite. Subclasses should override this method if the default locator (searching the local projects, falling back to the Maven2 repository) is not enough.

Note: This method will be used each time a bundle has to be retrieved; it is highly recommended to return a cached instance instead of a new one each time.

Returns:
artifact locator used by this test.


Copyright © 2006-2011 Spring Framework. All Rights Reserved.