Author: cziegeler
Date: Mon Aug 23 18:15:49 2010
New Revision: 988240
URL: http://svn.apache.org/viewvc?rev=988240&view=rev
Log:
SLING-1560 : Finally fix config install test case
Modified:
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/ConfigInstallTest.java
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/OsgiInstallerTestBase.java
Modified:
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/ConfigInstallTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/ConfigInstallTest.java?rev=988240&r1=988239&r2=988240&view=diff
==============================================================================
---
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/ConfigInstallTest.java
(original)
+++
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/ConfigInstallTest.java
Mon Aug 23 18:15:49 2010
@@ -109,8 +109,10 @@ public class ConfigInstallTest extends O
final String cfgName = "org.apache.felix.configadmin";
Bundle configAdmin = null;
+ // in some cases more than one config admin is installed!
+ // therefore we just stopp all of them and restart the first one
for(Bundle b : bundleContext.getBundles()) {
- if(b.getSymbolicName().equals(cfgName)) {
+ if (b.getSymbolicName().equals(cfgName)) {
configAdmin = b;
break;
}
@@ -124,7 +126,11 @@ public class ConfigInstallTest extends O
assertNull("Config " + cfgPid + " must not be found before test",
findConfiguration(cfgPid));
// Config installs must be deferred if ConfigAdmin service is stopped
- configAdmin.stop();
+ for(Bundle b : bundleContext.getBundles()) {
+ if (b.getSymbolicName().equals(cfgName)) {
+ b.stop();
+ }
+ }
waitForConfigAdmin(false);
final InstallableResource r = getInstallableResource(cfgPid, cfgData);
installer.addResource(URL_SCHEME, r);
Modified:
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/OsgiInstallerTestBase.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/OsgiInstallerTestBase.java?rev=988240&r1=988239&r2=988240&view=diff
==============================================================================
---
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/OsgiInstallerTestBase.java
(original)
+++
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/OsgiInstallerTestBase.java
Mon Aug 23 18:15:49 2010
@@ -311,7 +311,7 @@ class OsgiInstallerTestBase implements F
return result;
}
- protected ConfigurationAdmin waitForConfigAdmin(boolean shouldBePresent) {
+ protected ConfigurationAdmin waitForConfigAdmin(final boolean
shouldBePresent) {
ConfigurationAdmin result = null;
if (configAdminTracker == null) {
synchronized (this) {
@@ -322,15 +322,19 @@ class OsgiInstallerTestBase implements F
}
}
- final int timeout = 5;
+ final int timeout = 5;
final long waitUntil = System.currentTimeMillis() + (timeout * 1000L);
+ boolean isPresent;
do {
result = (ConfigurationAdmin)configAdminTracker.getService();
- boolean isPresent = result != null;
- assertEquals("Expected ConfigurationAdmin to be " +
(shouldBePresent ? "present" : "absent"),
- shouldBePresent, isPresent);
+ isPresent = result != null;
+ if ( shouldBePresent == isPresent ) {
+ return result;
+ }
} while(System.currentTimeMillis() < waitUntil);
+ assertEquals("Expected ConfigurationAdmin to be " + (shouldBePresent ?
"present" : "absent"),
+ shouldBePresent, isPresent);
return result;
}