Return-Path: Delivered-To: apmail-sling-commits-archive@www.apache.org Received: (qmail 94066 invoked from network); 10 Aug 2010 13:39:32 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 10 Aug 2010 13:39:32 -0000 Received: (qmail 84444 invoked by uid 500); 10 Aug 2010 13:39:32 -0000 Delivered-To: apmail-sling-commits-archive@sling.apache.org Received: (qmail 84377 invoked by uid 500); 10 Aug 2010 13:39:31 -0000 Mailing-List: contact commits-help@sling.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@sling.apache.org Delivered-To: mailing list commits@sling.apache.org Received: (qmail 84370 invoked by uid 99); 10 Aug 2010 13:39:31 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Aug 2010 13:39:31 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Aug 2010 13:39:22 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B31A52388A2C; Tue, 10 Aug 2010 13:38:02 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r983998 [2/3] - in /sling/trunk/installer: jcr/jcrinstall/src/main/java/org/apache/sling/jcr/jcrinstall/impl/ jcr/jcrinstall/src/test/java/org/apache/sling/jcr/jcrinstall/impl/ osgi/installer/src/main/java/org/apache/sling/osgi/installer/ o... Date: Tue, 10 Aug 2010 13:38:01 -0000 To: commits@sling.apache.org From: cziegeler@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100810133802.B31A52388A2C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResourceImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResourceImpl.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResourceImpl.java (original) +++ sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResourceImpl.java Tue Aug 10 13:37:59 2010 @@ -35,20 +35,15 @@ import java.util.HashMap; import java.util.Hashtable; import java.util.List; import java.util.Map; -import java.util.Properties; import java.util.jar.JarInputStream; import java.util.jar.Manifest; import org.apache.sling.osgi.installer.InstallableResource; -import org.apache.sling.osgi.installer.impl.propertyconverter.PropertyConverter; -import org.apache.sling.osgi.installer.impl.propertyconverter.PropertyValue; import org.osgi.framework.BundleContext; import org.osgi.framework.Constants; -/** A resource that's been registered in the OSGi controller. - * Data can be either an InputStream or a Dictionary, and we store - * it locally to avoid holding up to classes or data from our - * clients, in case those disappear while we're installing stuff. +/** + * Implementation of the registered resource */ public class RegisteredResourceImpl implements RegisteredResource, Serializable { private static final long serialVersionUID = 2L; @@ -64,11 +59,7 @@ public class RegisteredResourceImpl impl private final long serialNumber; private static long serialNumberCounter = System.currentTimeMillis(); - private final InstallableResource.Type resourceType; - - public static final String ENTITY_JAR_PREFIX = "jar:"; - public static final String ENTITY_BUNDLE_PREFIX = "bundle:"; - public static final String ENTITY_CONFIG_PREFIX = "config:"; + private final String resourceType; /** Create a RegisteredResource from given data. If the data's extension * maps to a configuration and the data provides an input stream, it is @@ -87,7 +78,7 @@ public class RegisteredResourceImpl impl throw new IllegalArgumentException("Missing digest: " + input); } - if(resourceType == InstallableResource.Type.BUNDLE) { + if (resourceType.equals(InstallableResource.TYPE_BUNDLE)) { final InputStream is = input.getInputStream(); if (is == null) { throw new IllegalArgumentException("InputStream is required for BUNDLE resource type: " + input); @@ -95,7 +86,7 @@ public class RegisteredResourceImpl impl try { dictionary = null; final File f = getDataFile(ctx); - osgiCtx.logDebug("Copying data to local storage " + f.getAbsolutePath()); + Logger.logDebug("Copying data to local storage " + f.getAbsolutePath()); copyToLocalStorage(input.getInputStream(), f); hasDataFile = true; digest = input.getDigest(); @@ -110,7 +101,7 @@ public class RegisteredResourceImpl impl } finally { is.close(); } - } else { + } else if ( resourceType.equals(InstallableResource.TYPE_CONFIG)) { hasDataFile = false; final ConfigurationPid pid = new ConfigurationPid(input.getUrl()); entity = ENTITY_CONFIG_PREFIX + pid.getCompositePid(); @@ -118,6 +109,8 @@ public class RegisteredResourceImpl impl // config provided as a Dictionary dictionary = copy(input.getDictionary()); digest = input.getDigest(); + } else { + throw new IOException("Unknown type " + resourceType); } } @@ -140,7 +133,7 @@ public class RegisteredResourceImpl impl public void cleanup(OsgiInstallerContext ctx) { final File dataFile = getDataFile(ctx.getBundleContext()); if(dataFile.exists()) { - ctx.logDebug("Deleting local storage file " + Logger.logDebug("Deleting local storage file " + dataFile.getAbsolutePath()); dataFile.delete(); } @@ -183,21 +176,6 @@ public class RegisteredResourceImpl impl } } - /** Convert InputStream to Dictionary using our extended properties format, - * which supports multi-value properties - */ - static Dictionary readDictionary(InputStream is) throws IOException { - final Dictionary result = new Hashtable(); - final PropertyConverter converter = new PropertyConverter(); - final Properties p = new Properties(); - p.load(is); - for(Map.Entry e : p.entrySet()) { - final PropertyValue v = converter.convert((String)e.getKey(), (String)e.getValue()); - result.put(v.getKey(), v.getValue()); - } - return result; - } - /** Copy given Dictionary, sorting keys */ static Dictionary copy(Dictionary d) { final Dictionary result = new Hashtable(); @@ -217,7 +195,7 @@ public class RegisteredResourceImpl impl return url; } - public InstallableResource.Type getResourceType() { + public String getResourceType() { return resourceType; } Modified: sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleInstallTask.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleInstallTask.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleInstallTask.java (original) +++ sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleInstallTask.java Tue Aug 10 13:37:59 2010 @@ -18,7 +18,7 @@ */ package org.apache.sling.osgi.installer.impl.tasks; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; import org.apache.sling.osgi.installer.impl.OsgiInstallerContext; import org.apache.sling.osgi.installer.impl.OsgiInstallerTask; import org.apache.sling.osgi.installer.impl.RegisteredResource; @@ -31,23 +31,23 @@ import org.osgi.framework.Version; public class BundleInstallTask extends OsgiInstallerTask { private final RegisteredResource resource; - + public BundleInstallTask(RegisteredResource r) { this.resource = r; } - - @Override + + @Override public String toString() { return getClass().getSimpleName() + ": " + resource; } - + public void execute(OsgiInstallerContext ctx) throws Exception { final Bundle b = ctx.getBundleContext().installBundle(resource.getUrl(), resource.getInputStream(ctx.getBundleContext())); final Version newVersion = new Version((String)resource.getAttributes().get(Constants.BUNDLE_VERSION)); ctx.saveInstalledBundleInfo(b, resource.getDigest(), newVersion.toString()); - logExecution(ctx); + logExecution(); ctx.addTaskToCurrentCycle(new BundleStartTask(b.getBundleId())); - ctx.incrementCounter(OsgiInstaller.OSGI_TASKS_COUNTER); + ctx.incrementCounter(OsgiInstallerStatistics.OSGI_TASKS_COUNTER); } @Override Modified: sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleRemoveTask.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleRemoveTask.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleRemoveTask.java (original) +++ sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleRemoveTask.java Tue Aug 10 13:37:59 2010 @@ -18,33 +18,33 @@ */ package org.apache.sling.osgi.installer.impl.tasks; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; import org.apache.sling.osgi.installer.impl.OsgiInstallerContext; import org.apache.sling.osgi.installer.impl.OsgiInstallerTask; import org.apache.sling.osgi.installer.impl.RegisteredResource; import org.osgi.framework.Bundle; import org.osgi.framework.Constants; -/** Remove a bundle from a RegisteredResource. - * Creates a SynchronousRefreshPackagesTask when +/** Remove a bundle from a RegisteredResource. + * Creates a SynchronousRefreshPackagesTask when * executed. */ public class BundleRemoveTask extends OsgiInstallerTask { private final RegisteredResource resource; - + public BundleRemoveTask(RegisteredResource r) { this.resource = r; } - - @Override + + @Override public String toString() { return getClass().getSimpleName() + ": " + resource; } - + @Override public void execute(OsgiInstallerContext ctx) throws Exception { - logExecution(ctx); + logExecution(); final String symbolicName = (String)resource.getAttributes().get(Constants.BUNDLE_SYMBOLICNAME); final Bundle b = ctx.getMatchingBundle(symbolicName); if(b == null) { @@ -56,7 +56,7 @@ public class BundleRemoveTask extends Os } b.uninstall(); ctx.addTaskToCurrentCycle(new SynchronousRefreshPackagesTask()); - ctx.incrementCounter(OsgiInstaller.OSGI_TASKS_COUNTER); + ctx.incrementCounter(OsgiInstallerStatistics.OSGI_TASKS_COUNTER); } @Override Modified: sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleStartTask.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleStartTask.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleStartTask.java (original) +++ sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleStartTask.java Tue Aug 10 13:37:59 2010 @@ -20,8 +20,9 @@ package org.apache.sling.osgi.installer. import java.text.DecimalFormat; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; import org.apache.sling.osgi.installer.impl.Activator; +import org.apache.sling.osgi.installer.impl.Logger; import org.apache.sling.osgi.installer.impl.OsgiInstallerContext; import org.apache.sling.osgi.installer.impl.OsgiInstallerTask; import org.osgi.framework.Bundle; @@ -59,26 +60,26 @@ public class BundleStartTask extends Osg boolean needToRetry = false; if(bundleId == 0) { - ctx.logDebug("Bundle 0 is the framework bundle, ignoring request to start it"); + Logger.logDebug("Bundle 0 is the framework bundle, ignoring request to start it"); return; } if(b == null) { - ctx.logInfo("Cannot start bundle, id not found:" + bundleId); + Logger.logInfo("Cannot start bundle, id not found:" + bundleId); return; } try { if(b.getState() == Bundle.ACTIVE) { - ctx.logDebug("Bundle already started, no action taken:" + bundleId + "/" + b.getSymbolicName()); + Logger.logDebug("Bundle already started, no action taken:" + bundleId + "/" + b.getSymbolicName()); } else { // Try to start bundle, and if that doesn't work we'll need to retry - logExecution(ctx); + logExecution(); try { b.start(); - ctx.logInfo("Bundle started (retry count=" + retryCount + ", bundle ID=" + bundleId + ") " + b.getSymbolicName()); + Logger.logInfo("Bundle started (retry count=" + retryCount + ", bundle ID=" + bundleId + ") " + b.getSymbolicName()); } catch(BundleException e) { - ctx.logInfo("Could not start bundle (retry count=" + retryCount + ", " + e + Logger.logInfo("Could not start bundle (retry count=" + retryCount + ", " + e + "), will retry: " + bundleId + "/" + b.getSymbolicName()); needToRetry = true; } @@ -100,7 +101,7 @@ public class BundleStartTask extends Osg } } retryCount++; - ctx.incrementCounter(OsgiInstaller.OSGI_TASKS_COUNTER); + ctx.incrementCounter(OsgiInstallerStatistics.OSGI_TASKS_COUNTER); } /** Do not execute this task if waiting for events */ @@ -108,7 +109,7 @@ public class BundleStartTask extends Osg final long eventsCount = Activator.getTotalEventsCount(); final boolean result = eventsCount >= eventsCountForRetrying; if(!result) { - tctx.logDebug(this + " is not executable at this time, counters=" + eventsCountForRetrying + "/" + eventsCount); + Logger.logDebug(this + " is not executable at this time, counters=" + eventsCountForRetrying + "/" + eventsCount); } return result; } Modified: sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleUpdateTask.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleUpdateTask.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleUpdateTask.java (original) +++ sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleUpdateTask.java Tue Aug 10 13:37:59 2010 @@ -20,7 +20,8 @@ package org.apache.sling.osgi.installer. import java.io.InputStream; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; +import org.apache.sling.osgi.installer.impl.Logger; import org.apache.sling.osgi.installer.impl.OsgiInstallerContext; import org.apache.sling.osgi.installer.impl.OsgiInstallerTask; import org.apache.sling.osgi.installer.impl.RegisteredResource; @@ -64,7 +65,7 @@ public class BundleUpdateTask extends Os final Version newVersion = new Version((String)resource.getAttributes().get(Constants.BUNDLE_VERSION)); snapshot = ctx.isSnapshot(newVersion); if(currentVersion.equals(newVersion) && !snapshot) { - ctx.logDebug("Same version is already installed, and not a snapshot, ignoring update:" + resource); + Logger.logDebug("Same version is already installed, and not a snapshot, ignoring update:" + resource); return; } @@ -74,12 +75,12 @@ public class BundleUpdateTask extends Os if(snapshot) { final String oldDigest = ctx.getInstalledBundleDigest(b); if(resource.getDigest().equals(oldDigest)) { - ctx.logDebug("Snapshot digest did not change, ignoring update:" + resource); + Logger.logDebug("Snapshot digest did not change, ignoring update:" + resource); return; } } - logExecution(ctx); + logExecution(); if(b.getState() == Bundle.ACTIVE) { // bundle was active before the update - restart it once updated, but // in sequence, not right now @@ -96,8 +97,8 @@ public class BundleUpdateTask extends Os b.update(is); ctx.saveInstalledBundleInfo(b, resource.getDigest(), newVersion.toString()); ctx.addTaskToCurrentCycle(new SynchronousRefreshPackagesTask()); - ctx.logDebug("Bundle updated: " + b.getBundleId() + "/" + b.getSymbolicName()); - ctx.incrementCounter(OsgiInstaller.OSGI_TASKS_COUNTER); + Logger.logDebug("Bundle updated: " + b.getBundleId() + "/" + b.getSymbolicName()); + ctx.incrementCounter(OsgiInstallerStatistics.OSGI_TASKS_COUNTER); } @Override Modified: sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/ConfigInstallTask.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/ConfigInstallTask.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/ConfigInstallTask.java (original) +++ sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/ConfigInstallTask.java Tue Aug 10 13:37:59 2010 @@ -25,6 +25,7 @@ import java.util.HashSet; import java.util.Set; import org.apache.sling.osgi.installer.impl.DigestUtil; +import org.apache.sling.osgi.installer.impl.Logger; import org.apache.sling.osgi.installer.impl.OsgiInstallerContext; import org.apache.sling.osgi.installer.impl.RegisteredResource; import org.osgi.service.cm.Configuration; @@ -60,7 +61,7 @@ public class ConfigInstallTask extends A final ConfigurationAdmin ca = ctx.getConfigurationAdmin(); if(ca == null) { ctx.addTaskToNextCycle(this); - ctx.logDebug("ConfigurationAdmin not available, task will be retried later: " + this); + Logger.logDebug("ConfigurationAdmin not available, task will be retried later: " + this); return; } @@ -88,7 +89,7 @@ public class ConfigInstallTask extends A config = getConfiguration(ca, pid, true, ctx); } else { if(isSameData(config.getProperties(), resource.getDictionary())) { - ctx.logDebug("Configuration " + config.getPid() + Logger.logDebug("Configuration " + config.getPid() + " already installed with same data, update request ignored: " + resource); config = null; @@ -96,12 +97,12 @@ public class ConfigInstallTask extends A } if(config != null) { - logExecution(ctx); + logExecution(); if (config.getBundleLocation() != null) { config.setBundleLocation(null); } config.update(dict); - ctx.logInfo("Configuration " + config.getPid() + Logger.logInfo("Configuration " + config.getPid() + " " + (created ? "created" : "updated") + " from " + resource); } Modified: sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/ConfigRemoveTask.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/ConfigRemoveTask.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/ConfigRemoveTask.java (original) +++ sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/ConfigRemoveTask.java Tue Aug 10 13:37:59 2010 @@ -18,6 +18,7 @@ */ package org.apache.sling.osgi.installer.impl.tasks; +import org.apache.sling.osgi.installer.impl.Logger; import org.apache.sling.osgi.installer.impl.OsgiInstallerContext; import org.apache.sling.osgi.installer.impl.RegisteredResource; import org.osgi.service.cm.Configuration; @@ -44,16 +45,16 @@ import org.osgi.service.cm.Configuration final ConfigurationAdmin ca = ctx.getConfigurationAdmin(); if(ca == null) { ctx.addTaskToNextCycle(this); - ctx.logDebug("ConfigurationAdmin not available, task will be retried later: " + this); + Logger.logDebug("ConfigurationAdmin not available, task will be retried later: " + this); return; } - logExecution(ctx); + logExecution(); final Configuration cfg = getConfiguration(ca, pid, false, ctx); if(cfg == null) { - ctx.logDebug("Cannot delete config , pid=" + pid + " not found, ignored (" + resource + ")"); + Logger.logDebug("Cannot delete config , pid=" + pid + " not found, ignored (" + resource + ")"); } else { - ctx.logInfo("Deleting config " + pid + " (" + resource + ")"); + Logger.logInfo("Deleting config " + pid + " (" + resource + ")"); cfg.delete(); } } Modified: sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/SynchronousRefreshPackagesTask.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/SynchronousRefreshPackagesTask.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/SynchronousRefreshPackagesTask.java (original) +++ sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/SynchronousRefreshPackagesTask.java Tue Aug 10 13:37:59 2010 @@ -18,6 +18,7 @@ */ package org.apache.sling.osgi.installer.impl.tasks; +import org.apache.sling.osgi.installer.impl.Logger; import org.apache.sling.osgi.installer.impl.OsgiInstallerContext; import org.apache.sling.osgi.installer.impl.OsgiInstallerTask; import org.osgi.framework.Bundle; @@ -31,7 +32,6 @@ public class SynchronousRefreshPackagesT public static final int MAX_REFRESH_PACKAGES_WAIT_SECONDS = 30; private volatile int packageRefreshEventsCount; - private OsgiInstallerContext ctx; /** * Handles the PACKAGES_REFRESHED framework event which is sent after @@ -42,9 +42,7 @@ public class SynchronousRefreshPackagesT */ public void frameworkEvent(FrameworkEvent event) { if (event.getType() == FrameworkEvent.PACKAGES_REFRESHED) { - if (ctx!= null) { - ctx.logDebug("FrameworkEvent.PACKAGES_REFRESHED"); - } + Logger.logDebug("FrameworkEvent.PACKAGES_REFRESHED"); packageRefreshEventsCount++; } } @@ -60,8 +58,7 @@ public class SynchronousRefreshPackagesT } public void execute(OsgiInstallerContext ctx) throws Exception { - logExecution(ctx); - this.ctx = ctx; + logExecution(); final int targetEventCount = packageRefreshEventsCount + 1; final long start = System.currentTimeMillis(); final long timeout = System.currentTimeMillis() + MAX_REFRESH_PACKAGES_WAIT_SECONDS * 1000L; @@ -73,7 +70,7 @@ public class SynchronousRefreshPackagesT if(b.getState() == Bundle.ACTIVE) { final OsgiInstallerTask t = new BundleStartTask(b.getBundleId()); ctx.addTaskToCurrentCycle(t); - ctx.logDebug("Added " + t + " to restart bundle if needed after refreshing packages"); + Logger.logDebug("Added " + t + " to restart bundle if needed after refreshing packages"); } } @@ -84,14 +81,14 @@ public class SynchronousRefreshPackagesT ctx.getPackageAdmin().refreshPackages(null); while(true) { if(System.currentTimeMillis() > timeout) { - ctx.logWarn("No FrameworkEvent.PACKAGES_REFRESHED event received within " + Logger.logWarn("No FrameworkEvent.PACKAGES_REFRESHED event received within " + MAX_REFRESH_PACKAGES_WAIT_SECONDS + " seconds after refresh"); break; } if(packageRefreshEventsCount >= targetEventCount) { final long delta = System.currentTimeMillis() - start; - ctx.logDebug("FrameworkEvent.PACKAGES_REFRESHED received " + Logger.logDebug("FrameworkEvent.PACKAGES_REFRESHED received " + delta + " msec after refreshPackages call"); break; Modified: sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/InstallableResourceTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/InstallableResourceTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/InstallableResourceTest.java (original) +++ sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/InstallableResourceTest.java Tue Aug 10 13:37:59 2010 @@ -21,6 +21,7 @@ package org.apache.sling.osgi.installer. import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import java.io.IOException; import java.util.Dictionary; import java.util.Hashtable; @@ -33,9 +34,9 @@ public class InstallableResourceTest { private InstallableResourceFactory factory = new InstallableResourceFactoryImpl(); @Test - public void testDictionaryDigest() { + public void testDictionaryDigest() throws IOException { final Dictionary d = new Hashtable(); - final InstallableResource r = factory.create("x:url", d, null, null, null); + final InstallableResource r = factory.create("x:url", null, d, null, null, null); assertNotNull("Expected InstallableResource to compute its own digest", r.getDigest()); } @@ -51,8 +52,8 @@ public class InstallableResourceTest { d2.put(keys[i], keys[i] + "." + keys[i]); } - final InstallableResource r1 = factory.create("test:url1", d1, null, null, null); - final InstallableResource r2 = factory.create("test:url1", d2, null, null, null); + final InstallableResource r1 = factory.create("test:url1", null, d1, null, null, null); + final InstallableResource r2 = factory.create("test:url1", null, d2, null, null, null); assertEquals( "Two InstallableResource (Dictionary) with same values but different key orderings must have the same key", Modified: sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockBundleResource.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockBundleResource.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockBundleResource.java (original) +++ sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockBundleResource.java Tue Aug 10 13:37:59 2010 @@ -100,8 +100,8 @@ public class MockBundleResource implemen return null; } - public InstallableResource.Type getResourceType() { - return InstallableResource.Type.BUNDLE; + public String getResourceType() { + return InstallableResource.TYPE_BUNDLE; } public String getUrl() { Modified: sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockOsgiInstallerContext.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockOsgiInstallerContext.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockOsgiInstallerContext.java (original) +++ sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockOsgiInstallerContext.java Tue Aug 10 13:37:59 2010 @@ -34,7 +34,7 @@ public class MockOsgiInstallerContext im public MockOsgiInstallerContext() throws IOException { final File f = File.createTempFile(MockOsgiInstallerContext.class.getSimpleName(), ".data"); f.deleteOnExit(); - persistentBundleInfo = new PersistentBundleInfo(this, f); + persistentBundleInfo = new PersistentBundleInfo(f); } public void addTaskToCurrentCycle(OsgiInstallerTask t) { @@ -84,46 +84,4 @@ public class MockOsgiInstallerContext im public void saveInstalledBundleInfo(String symbolicName, String digest, String version) throws IOException { persistentBundleInfo.putInfo(symbolicName, digest, version); } - - /** - * @see org.apache.sling.osgi.installer.impl.OsgiInstallerContext#logDebug(java.lang.String, java.lang.Throwable) - */ - public void logDebug(String message, Throwable t) { - // nothing to do - no logging - } - - /** - * @see org.apache.sling.osgi.installer.impl.OsgiInstallerContext#logDebug(java.lang.String) - */ - public void logDebug(String message) { - // nothing to do - no logging - } - - /** - * @see org.apache.sling.osgi.installer.impl.OsgiInstallerContext#logInfo(java.lang.String, java.lang.Throwable) - */ - public void logInfo(String message, Throwable t) { - // nothing to do - no logging - } - - /** - * @see org.apache.sling.osgi.installer.impl.OsgiInstallerContext#logInfo(java.lang.String) - */ - public void logInfo(String message) { - // nothing to do - no logging - } - - /** - * @see org.apache.sling.osgi.installer.impl.OsgiInstallerContext#logWarn(java.lang.String, java.lang.Throwable) - */ - public void logWarn(String message, Throwable t) { - // nothing to do - no logging - } - - /** - * @see org.apache.sling.osgi.installer.impl.OsgiInstallerContext#logWarn(java.lang.String) - */ - public void logWarn(String message) { - // nothing to do - no logging - } } Modified: sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/PersistentBundleInfoTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/PersistentBundleInfoTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/PersistentBundleInfoTest.java (original) +++ sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/PersistentBundleInfoTest.java Tue Aug 10 13:37:59 2010 @@ -19,8 +19,8 @@ package org.apache.sling.osgi.installer.impl; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import java.io.File; import java.io.IOException; @@ -34,15 +34,15 @@ public class PersistentBundleInfoTest { private File testFile; private TreeSet installedBundles; private static final String NO_VERSION = ""; - + @Before public void setUp() throws Exception { testFile = File.createTempFile(getClass().getSimpleName(), "properties"); testFile.deleteOnExit(); - storage = new PersistentBundleInfo(new MockOsgiInstallerContext(), testFile); + storage = new PersistentBundleInfo(testFile); installedBundles = new TreeSet(); } - + @Test public void testCloseAndReopen() throws IOException { storage.putInfo("foo", "bar", NO_VERSION); @@ -53,10 +53,10 @@ public class PersistentBundleInfoTest { storage.putInfo("foo", "wii", NO_VERSION); assertEquals("After change, expecting wii digest", "wii", storage.getDigest("foo")); storage = null; - final PersistentBundleInfo copy = new PersistentBundleInfo(new MockOsgiInstallerContext(), testFile); + final PersistentBundleInfo copy = new PersistentBundleInfo(testFile); assertEquals("In copy saved before change, expecting bar digest", "bar", copy.getDigest("foo")); } - + @Test public void testPurge() throws IOException { for(int i=0; i < 50; i++) { @@ -66,45 +66,45 @@ public class PersistentBundleInfoTest { } } for(int i=0; i < 50; i++) { - assertEquals("Before save, expecting digest to match at step " + i, "bar" + i, + assertEquals("Before save, expecting digest to match at step " + i, "bar" + i, storage.getDigest("foo" + i)); - assertEquals("Before save, expecting version to match at step " + i, "1." + i, + assertEquals("Before save, expecting version to match at step " + i, "1." + i, storage.getInstalledVersion("foo" + i)); } storage.purgeAndSave(installedBundles); for(int i=0; i < 50; i++) { if(i % 2 != 0) { - assertNull("After purge, expecting null digest at step " + i, + assertNull("After purge, expecting null digest at step " + i, storage.getDigest("foo" + i)); - assertNull("After purge, expecting null version at step " + i, + assertNull("After purge, expecting null version at step " + i, storage.getInstalledVersion("foo" + i)); } else { - assertNotNull("After purge, expecting non-null digest at step " + i, + assertNotNull("After purge, expecting non-null digest at step " + i, storage.getDigest("foo" + i)); - assertEquals("After purge, expecting digest to match at step " + i, "bar" + i, + assertEquals("After purge, expecting digest to match at step " + i, "bar" + i, storage.getDigest("foo" + i)); - assertNotNull("After purge, expecting non-null version at step " + i, + assertNotNull("After purge, expecting non-null version at step " + i, storage.getInstalledVersion("foo" + i)); - assertEquals("After purge, expecting version to match at step " + i, "1." + i, + assertEquals("After purge, expecting version to match at step " + i, "1." + i, storage.getInstalledVersion("foo" + i)); } } storage = null; - final PersistentBundleInfo copy = new PersistentBundleInfo(new MockOsgiInstallerContext(), testFile); + final PersistentBundleInfo copy = new PersistentBundleInfo(testFile); for(int i=0; i < 50; i++) { if(i % 2 != 0) { - assertNull("In copy, expecting null digest at step " + i, + assertNull("In copy, expecting null digest at step " + i, copy.getDigest("foo" + i)); - assertNull("In copy, expecting null version at step " + i, + assertNull("In copy, expecting null version at step " + i, copy.getInstalledVersion("foo" + i)); } else { - assertNotNull("In copy, expecting non-null digest at step " + i, + assertNotNull("In copy, expecting non-null digest at step " + i, copy.getDigest("foo" + i)); - assertEquals("In copy, expecting digest to match at step " + i, "bar" + i, + assertEquals("In copy, expecting digest to match at step " + i, "bar" + i, copy.getDigest("foo" + i)); - assertNotNull("In copy, expecting non-null version at step " + i, + assertNotNull("In copy, expecting non-null version at step " + i, copy.getInstalledVersion("foo" + i)); - assertEquals("In copy, expecting version to match at step " + i, "1." + i, + assertEquals("In copy, expecting version to match at step " + i, "1." + i, copy.getInstalledVersion("foo" + i)); } } Modified: sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/PersistentResourceListTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/PersistentResourceListTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/PersistentResourceListTest.java (original) +++ sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/PersistentResourceListTest.java Tue Aug 10 13:37:59 2010 @@ -37,14 +37,14 @@ import org.osgi.framework.Version; public class PersistentResourceListTest { private final static int TEST_SCALE = 5; private final static String FAKE = "fakebundle."; - + @Test public void testFileNotFound() throws IOException { File f = new File("NONEXISTENT"); - PersistentResourceList p = new PersistentResourceList(new MockOsgiInstallerContext(), f); + PersistentResourceList p = new PersistentResourceList(f); assertNotNull(p.getData()); } - + @Test public void testBadDataFile() throws IOException { File f = File.createTempFile(getClass().getSimpleName(), ".ser"); @@ -55,35 +55,35 @@ public class PersistentResourceListTest } finally { oos.close(); } - PersistentResourceList p = new PersistentResourceList(new MockOsgiInstallerContext(), f); + PersistentResourceList p = new PersistentResourceList(f); assertNotNull(p.getData()); assertEquals("Constructor must fail gracefully with invalid data file", 0, p.getData().size()); } - + @Test public void testTestData() throws IOException { File f = new File("NONEXISTENT"); - PersistentResourceList p = new PersistentResourceList(new MockOsgiInstallerContext(), f); + PersistentResourceList p = new PersistentResourceList(f); assertNotNull(p.getData()); addTestData(p); assertTestData(p); } - + @Test public void testSaveAndRetrieve() throws IOException { File f = File.createTempFile(getClass().getSimpleName(), ".ser"); f.deleteOnExit(); { - PersistentResourceList p = new PersistentResourceList(new MockOsgiInstallerContext(), f); + PersistentResourceList p = new PersistentResourceList(f); addTestData(p); p.save(); } { - PersistentResourceList p = new PersistentResourceList(new MockOsgiInstallerContext(), f); + PersistentResourceList p = new PersistentResourceList(f); assertTestData(p); } } - + private void addTestData(PersistentResourceList p) { for(int i = 0; i < TEST_SCALE; i++) { final String symbolicName = FAKE + i; @@ -94,7 +94,7 @@ public class PersistentResourceListTest p.getData().put(symbolicName, s); } } - + private void assertTestData(PersistentResourceList p) { for(int i = 0; i < TEST_SCALE; i++) { final String symbolicName = FAKE + i; @@ -114,7 +114,7 @@ public class PersistentResourceListTest p.getData().put(symbolicName, s); } } - + private String getFakeVersion(int i, int j) { return j + "." + i + ".0"; } Modified: sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/RegisteredResourceComparatorTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/RegisteredResourceComparatorTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/RegisteredResourceComparatorTest.java (original) +++ sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/RegisteredResourceComparatorTest.java Tue Aug 10 13:37:59 2010 @@ -51,7 +51,7 @@ public class RegisteredResourceComparato data = new Hashtable(); data.put("foo", "bar"); } - final InstallableResource r = factory.create("test:" + url, data, null, null, priority); + final InstallableResource r = factory.create("test:" + url, null, data, null, null, priority); return new RegisteredResourceImpl(new MockOsgiInstallerContext(), r); } Modified: sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/RegisteredResourceTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/RegisteredResourceTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/RegisteredResourceTest.java (original) +++ sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/RegisteredResourceTest.java Tue Aug 10 13:37:59 2010 @@ -28,8 +28,6 @@ import static org.junit.Assert.fail; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; -import java.io.FilterInputStream; -import java.io.IOException; import java.io.InputStream; import java.util.Dictionary; import java.util.Hashtable; @@ -49,37 +47,12 @@ public class RegisteredResourceTest { "org.apache.sling.osgi.installer-" + System.getProperty("osgi.installer.pom.version") + "-" + name); } - @org.junit.Test public void testStreamIsClosed() throws Exception { - final String data = "some data"; - - class TestInputStream extends FilterInputStream { - int closeCount; - - TestInputStream(InputStream i) { - super(i); - } - - @Override - public void close() throws IOException { - super.close(); - closeCount++; - } - - } - - final TestInputStream t = new TestInputStream(new ByteArrayInputStream(data.getBytes())); - final InstallableResource ir = factory.create(TEST_URL, t, "somedigest", null, null); - //assertEquals("TestInputStream must not be closed before test", 0, t.closeCount); - new LocalFileRegisteredResource(ir); - assertEquals("TestInputStream must be closed by RegisteredResource", 1, t.closeCount); - } - @org.junit.Test public void testResourceType() throws Exception { { final InputStream s = new FileInputStream(getTestBundle("testbundle-1.0.jar")); - final RegisteredResource r = new LocalFileRegisteredResource(factory.create("test:1.jar", s, "some digest", null, null)); + final RegisteredResource r = new LocalFileRegisteredResource(factory.create("test:1.jar", s, null, "some digest", null, null)); assertEquals(".jar URL creates a BUNDLE resource", - InstallableResource.Type.BUNDLE, r.getResourceType()); + InstallableResource.TYPE_BUNDLE, r.getResourceType()); final InputStream rs = r.getInputStream(null); assertNotNull("BUNDLE resource provides an InputStream", rs); rs.close(); @@ -88,25 +61,12 @@ public class RegisteredResourceTest { } { - final InputStream s = new ByteArrayInputStream("foo=bar\nother=2".getBytes()); - final RegisteredResource r = new LocalFileRegisteredResource(factory.create("test:1.properties", s, "digest1", null, null)); - assertEquals(".properties URL creates a CONFIG resource", - InstallableResource.Type.CONFIG, r.getResourceType()); - final InputStream rs = r.getInputStream(null); - assertNull("CONFIG resource does not provide an InputStream", rs); - final Dictionary d = r.getDictionary(); - assertNotNull("CONFIG resource provides a Dictionary", d); - assertEquals("CONFIG resource dictionary has two properties", 2, d.size()); - assertNotNull("CONFIG resource has a pid attribute", r.getAttributes().get(RegisteredResource.CONFIG_PID_ATTRIBUTE)); - } - - { final Hashtable data = new Hashtable(); data.put("foo", "bar"); data.put("other", 2); - final RegisteredResource r = new LocalFileRegisteredResource(factory.create("test:1", data, null, null, null)); + final RegisteredResource r = new LocalFileRegisteredResource(factory.create("test:1", null, data, null, null, null)); assertEquals("No-extension URL with Dictionary creates a CONFIG resource", - InstallableResource.Type.CONFIG, r.getResourceType()); + InstallableResource.TYPE_CONFIG, r.getResourceType()); final InputStream rs = r.getInputStream(null); assertNull("CONFIG resource does not provide an InputStream", rs); final Dictionary d = r.getDictionary(); @@ -119,7 +79,7 @@ public class RegisteredResourceTest { @org.junit.Test public void testLocalFileCopy() throws Exception { final File f = getTestBundle("testbundle-1.0.jar"); final InputStream s = new FileInputStream(f); - final LocalFileRegisteredResource r = new LocalFileRegisteredResource(factory.create("test:1.jar", s, "somedigest", null, null)); + final LocalFileRegisteredResource r = new LocalFileRegisteredResource(factory.create("test:1.jar", s, null, "somedigest", null, null)); assertTrue("Local file exists", r.getDataFile(null).exists()); assertEquals("Local file length matches our data", f.length(), r.getDataFile(null).length()); @@ -130,7 +90,7 @@ public class RegisteredResourceTest { final InputStream in = new ByteArrayInputStream(data.getBytes()); try { - new LocalFileRegisteredResource(factory.create("test:1.jar", in, null, null, null)); + new LocalFileRegisteredResource(factory.create("test:1.jar", in, null, null, null, null)); fail("With jar extension, expected an IllegalArgumentException as digest is null"); } catch(IllegalArgumentException asExpected) { } @@ -138,14 +98,14 @@ public class RegisteredResourceTest { @org.junit.Test public void testBundleManifest() throws Exception { final File f = getTestBundle("testbundle-1.0.jar"); - final InstallableResource i = factory.create("test:" + f.getAbsolutePath(), new FileInputStream(f), f.getName(), null, null); + final InstallableResource i = factory.create("test:" + f.getAbsolutePath(), new FileInputStream(f), null, f.getName(), null, null); final RegisteredResource r = new LocalFileRegisteredResource(i); assertNotNull("RegisteredResource must have bundle symbolic name", r.getAttributes().get(Constants.BUNDLE_SYMBOLICNAME)); assertEquals("RegisteredResource entity ID must match", "bundle:osgi-installer-testbundle", r.getEntityId()); } @org.junit.Test public void testConfigEntity() throws Exception { - final InstallableResource i = factory.create("test:/foo/someconfig", new Hashtable(), null, null, null); + final InstallableResource i = factory.create("test:/foo/someconfig", null, new Hashtable(), null, null, null); final RegisteredResource r = new LocalFileRegisteredResource(i); assertNull("RegisteredResource must not have bundle symbolic name", r.getAttributes().get(Constants.BUNDLE_SYMBOLICNAME)); assertEquals("RegisteredResource entity ID must match", "config:someconfig", r.getEntityId()); @@ -153,17 +113,14 @@ public class RegisteredResourceTest { @org.junit.Test public void testConfigDigestIncludesUrl() throws Exception { final Dictionary data = new Hashtable(); - final InstallableResource rA = factory.create("test:urlA", data, null, null, null); - final InstallableResource rB = factory.create("test:urlB", data, null, null, null); + final InstallableResource rA = factory.create("test:urlA", null, data, null, null, null); + final InstallableResource rB = factory.create("test:urlB", null, data, null, null, null); assertFalse( "Expecting configs with same data but different URLs to have different digests", rA.getDigest().equals(rB.getDigest())); } @org.junit.Test public void testUrlScheme() throws Exception { - final ByteArrayInputStream s = new ByteArrayInputStream("foo".getBytes()); - - final String [] badOnes = { "", ":colonTooEarly", @@ -172,7 +129,7 @@ public class RegisteredResourceTest { }; for(String url : badOnes) { try { - new RegisteredResourceImpl(new MockOsgiInstallerContext(),factory.create(url, s, null, null, null)); + new RegisteredResourceImpl(new MockOsgiInstallerContext(),factory.create(url, null, new Hashtable(), null, null, null)); fail("Expected bad URL '" + url + "' to throw IllegalArgumentException"); } catch(IllegalArgumentException asExpected) { } @@ -187,7 +144,7 @@ public class RegisteredResourceTest { for(String url : goodOnes) { final RegisteredResource r = new RegisteredResourceImpl(new MockOsgiInstallerContext(), - factory.create(url, s, "digest1", null, null)); + factory.create(url, null, new Hashtable(), "digest1", null, null)); assertEquals("Expected scheme 'foo' for URL " + url, "foo", r.getUrlScheme()); } } Modified: sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/TaskOrderingTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/TaskOrderingTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/TaskOrderingTest.java (original) +++ sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/TaskOrderingTest.java Tue Aug 10 13:37:59 2010 @@ -51,7 +51,7 @@ public class TaskOrderingTest { } private static RegisteredResource getRegisteredResource(String url) throws IOException { - return new RegisteredResourceImpl(new MockOsgiInstallerContext(), factory.create(url, new Hashtable(), null, null, null)); + return new RegisteredResourceImpl(new MockOsgiInstallerContext(), factory.create(url, null, new Hashtable(), null, null, null)); } private void assertOrder(int testId, Collection actual, OsgiInstallerTask [] expected) { Modified: sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleDependenciesTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleDependenciesTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleDependenciesTest.java (original) +++ sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleDependenciesTest.java Tue Aug 10 13:37:59 2010 @@ -19,7 +19,7 @@ package org.apache.sling.osgi.installer. import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -35,39 +35,39 @@ public class BundleDependenciesTest exte public static Option[] configuration() { return defaultConfiguration(); } - + @Before public void setUp() { setupInstaller(); } - + @After public void tearDown() { super.tearDown(); } - + // needsB bundle requires testB, try loading needsB first, - // then testB, and verify that in the end needsB is started + // then testB, and verify that in the end needsB is started @Test public void testBundleDependencies() throws Exception { final String testB = "osgi-installer-testB"; final String needsB = "osgi-installer-needsB"; - + assertNull("TestB bundle must not be present at beginning of test", findBundle(testB)); - + // without testB, needsB must not start { resetCounters(); installer.addResource(getInstallableResource(getTestBundle(BUNDLE_BASE_NAME + "-needsB.jar"))); - waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 2); + waitForInstallerAction(OsgiInstallerStatistics.OSGI_TASKS_COUNTER, 2); assertBundle(needsB + " must not be started, testB not present", needsB, null, Bundle.INSTALLED); } - + // now install testB -> needsB must start { resetCounters(); installer.addResource(getInstallableResource(getTestBundle(BUNDLE_BASE_NAME + "-testB-1.0.jar"))); - waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 2); + waitForInstallerAction(OsgiInstallerStatistics.OSGI_TASKS_COUNTER, 2); assertNotNull(testB + " must be installed", findBundle(testB)); assertBundle(needsB + " must be started now that testB is installed", needsB, null, Bundle.ACTIVE); } Modified: sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallStressTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallStressTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallStressTest.java (original) +++ sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallStressTest.java Tue Aug 10 13:37:59 2010 @@ -25,7 +25,7 @@ import java.util.List; import java.util.Random; import org.apache.sling.osgi.installer.InstallableResource; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -37,49 +37,49 @@ import org.osgi.service.log.LogService; /** Repeatedly install/remove/reinstall semi-random sets * of bundles, to stress-test the installer and framework. - * + * * Randomly selects bundles to remove and reinstall in a folder - * containing from 4 to N bundles - by supplying a folder with many - * bundles, and increasing the number of cycles executed (via - * system properties, see pom.xml) the test can be turned into a - * long-running stress test. + * containing from 4 to N bundles - by supplying a folder with many + * bundles, and increasing the number of cycles executed (via + * system properties, see pom.xml) the test can be turned into a + * long-running stress test. */ @RunWith(JUnit4TestRunner.class) public class BundleInstallStressTest extends OsgiInstallerTestBase { - - public static final String PROP_BUNDLES_FOLDER = "osgi.installer.BundleInstallStressTest.bundles.folder"; + + public static final String PROP_BUNDLES_FOLDER = "osgi.installer.BundleInstallStressTest.bundles.folder"; public static final String PROP_CYCLE_COUNT = "osgi.installer.BundleInstallStressTest.cycle.count"; public static final String PROP_EXPECT_TIMEOUT_SECONDS = "osgi.installer.BundleInstallStressTest.expect.timeout.seconds"; public static final int MIN_TEST_BUNDLES = 4; - + /** Folder where test bundles are found */ private File bundlesFolder; - + /** How many cycles to run */ private int cycleCount; - + /** List of available test bundles */ private List testBundles; - + /** Always use the same random sequence */ private Random random; - + /** Timeout for expectBundles() */ private long expectBundlesTimeoutMsec; - + /** Synchronize (somewhat) with OSGi operations, to be fair */ private EventsDetector eventsDetector; public static final long MSEC_WITHOUT_EVENTS = 1000L; - + @org.ops4j.pax.exam.junit.Configuration public static Option[] configuration() { return defaultConfiguration(); } - + @Before public void setUp() { setupInstaller(); - + final String bf = System.getProperty(PROP_BUNDLES_FOLDER); if(bf == null) { fail("Missing system property: " + PROP_BUNDLES_FOLDER); @@ -88,24 +88,24 @@ public class BundleInstallStressTest ext if(!bundlesFolder.isDirectory()) { fail("Bundles folder '" + bundlesFolder.getAbsolutePath() + "' not found"); } - + final String cc = System.getProperty(PROP_CYCLE_COUNT); if(cc == null) { fail("Missing system property:" + PROP_CYCLE_COUNT); } cycleCount = Integer.parseInt(cc); - + final String et = System.getProperty(PROP_EXPECT_TIMEOUT_SECONDS); if(et == null) { fail("Missing system property:" + PROP_EXPECT_TIMEOUT_SECONDS); } expectBundlesTimeoutMsec = Integer.parseInt(et) * 1000L; - - log(LogService.LOG_INFO, getClass().getSimpleName() + + log(LogService.LOG_INFO, getClass().getSimpleName() + ": cycle count=" + cycleCount + ", expect timeout (msec)=" + expectBundlesTimeoutMsec + ", test bundles folder=" + bundlesFolder.getAbsolutePath()); - + testBundles = new LinkedList(); final String [] files = bundlesFolder.list(); for(String filename : files) { @@ -113,41 +113,41 @@ public class BundleInstallStressTest ext testBundles.add(new File(bundlesFolder, filename)); } } - + if(testBundles.size() < MIN_TEST_BUNDLES) { - fail("Found only " + testBundles.size() + fail("Found only " + testBundles.size() + " bundles in test folder, expected at least " + MIN_TEST_BUNDLES + " (test folder=" + bundlesFolder.getAbsolutePath() + ")" ); } - + random = new Random(42 + cycleCount); eventsDetector = new EventsDetector(bundleContext); } - + @After public void tearDown() { super.tearDown(); eventsDetector.close(); } - + @Test public void testSemiRandomInstall() throws Exception { if(cycleCount < 1) { fail("Cycle count (" + cycleCount + ") should be >= 1"); } - + final int initialBundleCount = bundleContext.getBundles().length; log(LogService.LOG_INFO,"Initial bundle count=" + initialBundleCount); logInstalledBundles(); - + // Start by installing all bundles log(LogService.LOG_INFO,"Registering all test bundles, " + testBundles.size() + " resources"); install(testBundles); - waitForInstallerAction("After registering all bundles", OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, + waitForInstallerAction("After registering all bundles", OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1, expectBundlesTimeoutMsec); expectBundleCount("After installing all test bundles", initialBundleCount + testBundles.size()); - + // And run a number of cycles where randomly selected bundles are removed and reinstalled for(int i=0; i < cycleCount; i++) { final long start = System.currentTimeMillis(); @@ -155,16 +155,16 @@ public class BundleInstallStressTest ext final List toInstall = selectRandomBundles(); log(LogService.LOG_INFO,"Re-registering " + toInstall.size() + " randomly selected resources (other test bundles should be uninstalled)"); install(toInstall); - waitForInstallerAction("At cycle " + i, OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, + waitForInstallerAction("At cycle " + i, OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1, expectBundlesTimeoutMsec); eventsDetector.waitForNoEvents(MSEC_WITHOUT_EVENTS, expectBundlesTimeoutMsec); expectBundleCount("At cycle " + i, initialBundleCount + toInstall.size()); - log(LogService.LOG_INFO,"Test cycle " + i + " successful, " - + toInstall.size() + " bundles, " + log(LogService.LOG_INFO,"Test cycle " + i + " successful, " + + toInstall.size() + " bundles, " + (System.currentTimeMillis() - start) + " msec"); } } - + private void install(List bundles) throws IOException { final List toInstall = new LinkedList(); for(File f : bundles) { @@ -172,7 +172,7 @@ public class BundleInstallStressTest ext } installer.registerResources(toInstall, URL_SCHEME); } - + private void expectBundleCount(String info, final int nBundles) throws Exception { log(LogService.LOG_INFO,"Expecting " + nBundles + " bundles to be installed"); final Condition c = new Condition() { @@ -181,26 +181,26 @@ public class BundleInstallStressTest ext actualCount = bundleContext.getBundles().length; return actualCount == nBundles; } - + @Override String additionalInfo() { return "Expected " + nBundles + " installed bundles, got " + actualCount; } - + @Override void onFailure() { log(LogService.LOG_INFO, "Failure: " + additionalInfo()); logInstalledBundles(); } - + @Override - long getMsecBetweenEvaluations() { - return 1000L; + long getMsecBetweenEvaluations() { + return 1000L; } }; waitForCondition(info, expectBundlesTimeoutMsec, c); } - + private List selectRandomBundles() { final List result = new LinkedList(); for(File f : testBundles) { @@ -209,14 +209,14 @@ public class BundleInstallStressTest ext result.add(f); } } - + if(result.size() == 0) { result.add(testBundles.get(0)); } - + return result; } - + private void logInstalledBundles() { for(Bundle b : bundleContext.getBundles()) { log(LogService.LOG_INFO, "Installed bundle: " + b.getSymbolicName()); Modified: sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallUpgradeDowngradeTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallUpgradeDowngradeTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallUpgradeDowngradeTest.java (original) +++ sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleInstallUpgradeDowngradeTest.java Tue Aug 10 13:37:59 2010 @@ -19,7 +19,7 @@ package org.apache.sling.osgi.installer. import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -60,7 +60,7 @@ public class BundleInstallUpgradeDowngra resetCounters(); installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); final Bundle b = assertBundle("After installing", symbolicName, "1.1", Bundle.ACTIVE); bundleId = b.getBundleId(); } @@ -72,7 +72,7 @@ public class BundleInstallUpgradeDowngra resetCounters(); installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.2.jar"), "digestA")); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); final Bundle b = assertBundle("After updating to 1.2", symbolicName, "1.2", Bundle.ACTIVE); assertEquals("Bundle ID must not change after update", bundleId, b.getBundleId()); } @@ -86,7 +86,7 @@ public class BundleInstallUpgradeDowngra getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.0.jar"), "digestA")); // make sure no updates happen - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); final Bundle b = assertBundle("After ignored downgrade", symbolicName, "1.2", Bundle.ACTIVE); assertEquals("Bundle ID must not change after ignored downgrade", bundleId, b.getBundleId()); } @@ -94,8 +94,8 @@ public class BundleInstallUpgradeDowngra assertNoOsgiTasks("After test " + testIndex++); // Verify number of registered resources and groups - assertCounter(OsgiInstaller.REGISTERED_RESOURCES_COUNTER, 3); - assertCounter(OsgiInstaller.REGISTERED_GROUPS_COUNTER, 1); + assertCounter(OsgiInstallerStatistics.REGISTERED_RESOURCES_COUNTER, 3); + assertCounter(OsgiInstallerStatistics.REGISTERED_GROUPS_COUNTER, 1); // Update to same version with different digest must be ignored { @@ -110,25 +110,25 @@ public class BundleInstallUpgradeDowngra resetCounters(); installer.removeResource(getNonInstallableResourceUrl( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.0.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); resetCounters(); installer.removeResource(getNonInstallableResourceUrl( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); resetCounters(); installer.removeResource(getNonInstallableResourceUrl( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.2.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); final Bundle b = findBundle(symbolicName); assertNull("Testbundle must be gone", b); } // No resources must be registered anymore - assertCounter(OsgiInstaller.REGISTERED_RESOURCES_COUNTER, 0); - assertCounter(OsgiInstaller.REGISTERED_GROUPS_COUNTER, 0); + assertCounter(OsgiInstallerStatistics.REGISTERED_RESOURCES_COUNTER, 0); + assertCounter(OsgiInstallerStatistics.REGISTERED_GROUPS_COUNTER, 0); assertNoOsgiTasks("After test " + testIndex++); @@ -137,7 +137,7 @@ public class BundleInstallUpgradeDowngra resetCounters(); installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); assertBundle("After reinstalling 1.1", symbolicName, "1.1", Bundle.ACTIVE); } @@ -154,7 +154,7 @@ public class BundleInstallUpgradeDowngra resetCounters(); installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); assertBundle("After installing", symbolicName, "1.1", Bundle.ACTIVE); } @@ -164,7 +164,7 @@ public class BundleInstallUpgradeDowngra resetCounters(); installer.removeResource(getNonInstallableResourceUrl( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); assertNull("Test bundle must be gone", findBundle(symbolicName)); } @@ -174,7 +174,7 @@ public class BundleInstallUpgradeDowngra resetCounters(); installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); assertBundle("After reinstalling", symbolicName, "1.1", Bundle.ACTIVE); } Modified: sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundlePrioritiesTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundlePrioritiesTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundlePrioritiesTest.java (original) +++ sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundlePrioritiesTest.java Tue Aug 10 13:37:59 2010 @@ -21,7 +21,7 @@ import static org.junit.Assert.assertNul import java.io.IOException; import org.apache.sling.osgi.installer.InstallableResourceFactory; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -61,7 +61,7 @@ public class BundlePrioritiesTest extend resetCounters(); installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-snap.jar"), "digest1")); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); assertBundle("Initial install", symbolicName, null, Bundle.ACTIVE); } @@ -75,7 +75,7 @@ public class BundlePrioritiesTest extend resetCounters(); installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-snap.jar"), "digest3", highPriority)); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); } assertNoOsgiTasks("At end of test"); Modified: sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java (original) +++ sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java Tue Aug 10 13:37:59 2010 @@ -16,13 +16,13 @@ */ package org.apache.sling.osgi.installer.it; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertEquals; import java.io.IOException; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -39,22 +39,22 @@ import org.osgi.framework.BundleExceptio */ @RunWith(JUnit4TestRunner.class) public class BundleSnapshotUpdateTest extends OsgiInstallerTestBase { - + @org.ops4j.pax.exam.junit.Configuration public static Option[] configuration() { return defaultConfiguration(); } - + @Before public void setUp() { setupInstaller(); } - + @After public void tearDown() { super.tearDown(); } - + @Test public void testNonSnapshot() throws IOException { final String symbolicName = "osgi-installer-testbundle"; @@ -63,32 +63,32 @@ public class BundleSnapshotUpdateTest ex installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"), "digest1")); // wait for two tasks: install and start - waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 2); + waitForInstallerAction(OsgiInstallerStatistics.OSGI_TASKS_COUNTER, 2); final Bundle b = findBundle(symbolicName); assertNotNull("Test bundle 1.1 must be found after waitForInstallerAction", b); assertNoOsgiTasks("At end of test"); - + // Update with same digest must be ignored - long nOps = installer.getCounters()[OsgiInstaller.OSGI_TASKS_COUNTER]; + long nOps = statistics.getCounters()[OsgiInstallerStatistics.OSGI_TASKS_COUNTER]; installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"), "digest1")); - waitForInstallerAction(OsgiInstaller.INSTALLER_CYCLES_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.INSTALLER_CYCLES_COUNTER, 1); assertEquals("Updating testbundle with same digest must not generate any OSGi tasks", - nOps, installer.getCounters()[OsgiInstaller.OSGI_TASKS_COUNTER]); - + nOps, statistics.getCounters()[OsgiInstallerStatistics.OSGI_TASKS_COUNTER]); + // Update with different digest must be ignored - nOps = installer.getCounters()[OsgiInstaller.OSGI_TASKS_COUNTER]; + nOps = statistics.getCounters()[OsgiInstallerStatistics.OSGI_TASKS_COUNTER]; installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"), "digest2")); - waitForInstallerAction(OsgiInstaller.INSTALLER_CYCLES_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.INSTALLER_CYCLES_COUNTER, 1); assertEquals("Updating testbundle with different digest must not generate any OSGi tasks", - nOps, installer.getCounters()[OsgiInstaller.OSGI_TASKS_COUNTER]); - + nOps, statistics.getCounters()[OsgiInstallerStatistics.OSGI_TASKS_COUNTER]); + assertNoOsgiTasks("At end of test"); } - + private void testSnapshotPrimitive(boolean restartInstaller) throws IOException, BundleException { - + // Install test bundle final String symbolicName = "osgi-installer-snapshot-test"; assertNull("Snapshot test bundle must be absent before installing", findBundle(symbolicName)); @@ -96,31 +96,31 @@ public class BundleSnapshotUpdateTest ex installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-snap.jar"), "digest1")); // wait for two tasks: install and start - waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 2); + waitForInstallerAction(OsgiInstallerStatistics.OSGI_TASKS_COUNTER, 2); final Bundle b = findBundle(symbolicName); assertNotNull("Snapshot bundle must be found after waitForInstallerAction", b); if(restartInstaller) { restartInstaller(); } - + // Update with same digest must be ignored - final long nOps = installer.getCounters()[OsgiInstaller.OSGI_TASKS_COUNTER]; + final long nOps = statistics.getCounters()[OsgiInstallerStatistics.OSGI_TASKS_COUNTER]; installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-snap.jar"), "digest1")); - waitForInstallerAction(OsgiInstaller.INSTALLER_CYCLES_COUNTER, 3); + waitForInstallerAction(OsgiInstallerStatistics.INSTALLER_CYCLES_COUNTER, 3); assertEquals("Updating snapshot bundle with same digest must not generate any OSGi tasks", - nOps, installer.getCounters()[OsgiInstaller.OSGI_TASKS_COUNTER]); - + nOps, statistics.getCounters()[OsgiInstallerStatistics.OSGI_TASKS_COUNTER]); + // Update with different digest must generate an OSGi update resetCounters(); installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-snap.jar"), "digest2")); // update also generates a start task, as the bundle was started before, and a framework refresh - waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 3); - + waitForInstallerAction(OsgiInstallerStatistics.OSGI_TASKS_COUNTER, 3); + // And no more OSGi tasks after that - waitForInstallerAction(OsgiInstaller.INSTALLER_CYCLES_COUNTER, 3); + waitForInstallerAction(OsgiInstallerStatistics.INSTALLER_CYCLES_COUNTER, 3); assertNoOsgiTasks("At end of test"); } @@ -128,7 +128,7 @@ public class BundleSnapshotUpdateTest ex public void testSnapshot() throws IOException, BundleException { testSnapshotPrimitive(false); } - + @Test public void testSnapshotWithInstallerRestart() throws IOException, BundleException { testSnapshotPrimitive(true); Modified: sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleStartRetriesTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleStartRetriesTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleStartRetriesTest.java (original) +++ sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleStartRetriesTest.java Tue Aug 10 13:37:59 2010 @@ -3,7 +3,7 @@ package org.apache.sling.osgi.installer. import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -19,12 +19,12 @@ public class BundleStartRetriesTest exte public static Option[] configuration() { return defaultConfiguration(); } - + @Before public void setUp() { setupInstaller(); } - + @After public void tearDown() { super.tearDown(); @@ -34,30 +34,30 @@ public class BundleStartRetriesTest exte public void testBundleStartRetries() throws Exception { final String testB = "osgi-installer-testB"; final String needsB = "osgi-installer-needsB"; - + assertNull("TestB bundle must not be present at beginning of test", findBundle(testB)); - + // without testB, needsB must not start resetCounters(); - final long nOps = installer.getCounters()[OsgiInstaller.OSGI_TASKS_COUNTER]; + final long nOps = statistics.getCounters()[OsgiInstallerStatistics.OSGI_TASKS_COUNTER]; installer.addResource(getInstallableResource(getTestBundle(BUNDLE_BASE_NAME + "-needsB.jar"))); - waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 2); + waitForInstallerAction(OsgiInstallerStatistics.OSGI_TASKS_COUNTER, 2); assertBundle(needsB + " must not be started, testB not present", needsB, null, Bundle.INSTALLED); - + // the bundle start task must be retried immediately // (== 3 tasks since last counters reset) - waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 3); - + waitForInstallerAction(OsgiInstallerStatistics.OSGI_TASKS_COUNTER, 3); + // and no more retries must happen before receiving a bundle event sleep(1000L); assertEquals("Exactly 3 OSGi tasks must have been executed after a few installer cycles", - nOps + 3, installer.getCounters()[OsgiInstaller.OSGI_TASKS_COUNTER]); + nOps + 3, statistics.getCounters()[OsgiInstallerStatistics.OSGI_TASKS_COUNTER]); // generate a bundle event -> must trigger one retry resetCounters(); generateBundleEvent(); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); - waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.OSGI_TASKS_COUNTER, 1); } } Modified: sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleStatePreservedTest.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleStatePreservedTest.java?rev=983998&r1=983997&r2=983998&view=diff ============================================================================== --- sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleStatePreservedTest.java (original) +++ sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleStatePreservedTest.java Tue Aug 10 13:37:59 2010 @@ -19,7 +19,7 @@ package org.apache.sling.osgi.installer. import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import org.apache.sling.osgi.installer.OsgiInstaller; +import org.apache.sling.osgi.installer.OsgiInstallerStatistics; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -53,13 +53,13 @@ public class BundleStatePreservedTest ex resetCounters(); installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-testA-1.0.jar"))); - waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 2); + waitForInstallerAction(OsgiInstallerStatistics.OSGI_TASKS_COUNTER, 2); } { resetCounters(); installer.addResource(getInstallableResource( getTestBundle(BUNDLE_BASE_NAME + "-testB-1.0.jar"))); - waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 2); + waitForInstallerAction(OsgiInstallerStatistics.OSGI_TASKS_COUNTER, 2); final Bundle b = findBundle("osgi-installer-testB"); assertNotNull("Test bundle B must be found", b); b.stop(); @@ -73,24 +73,24 @@ public class BundleStatePreservedTest ex installer.addResource(getInstallableResource(getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.2.jar"))); resetCounters(); installer.addResource(getInstallableResource(getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); assertBundle("After installing testbundle", "osgi-installer-testbundle", "1.2", Bundle.ACTIVE); // Verify number of registered resources and groups - assertCounter(OsgiInstaller.REGISTERED_RESOURCES_COUNTER, 5); - assertCounter(OsgiInstaller.REGISTERED_GROUPS_COUNTER, 3); + assertCounter(OsgiInstallerStatistics.REGISTERED_RESOURCES_COUNTER, 5); + assertCounter(OsgiInstallerStatistics.REGISTERED_GROUPS_COUNTER, 3); resetCounters(); installer.removeResource(getNonInstallableResourceUrl(getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.0.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); resetCounters(); installer.removeResource(getNonInstallableResourceUrl(getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); resetCounters(); installer.removeResource(getNonInstallableResourceUrl(getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.2.jar"))); - waitForInstallerAction(OsgiInstaller.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); + waitForInstallerAction(OsgiInstallerStatistics.WORKER_THREAD_BECOMES_IDLE_COUNTER, 1); assertNull("testbundle must be gone at end of test", findBundle("osgi-installer-testbundle"));