Author: cziegeler
Date: Wed Aug 18 12:29:58 2010
New Revision: 986645
URL: http://svn.apache.org/viewvc?rev=986645&view=rev
Log:
SLING-1560 : Simplify installer task handling.
Removed:
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockOsgiInstallerContext.java
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerTask.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerThread.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigInstallTask.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigRemoveTask.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigTaskCreator.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleInstallTask.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleRemoveTask.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleStartTask.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleTaskCreator.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleUpdateTask.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/SynchronousRefreshPackagesTask.java
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/tasks/BundleTaskCreatorTest.java
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/tasks/MockBundleTaskCreator.java
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerTask.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerTask.java?rev=986645&r1=986644&r2=986645&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerTask.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerTask.java
Wed Aug 18 12:29:58 2010
@@ -22,12 +22,7 @@ package org.apache.sling.osgi.installer.
/** Base class for tasks that can be executed by the {...@link
OsgiInstallerThread} */
public abstract class OsgiInstallerTask implements
Comparable<OsgiInstallerTask> {
- public enum Result {
- SUCCESS,
- NOTHING
- };
-
- public abstract Result execute(OsgiInstallerContext ctx);
+ public abstract void execute(OsgiInstallerContext ctx);
protected void logExecution() {
Logger.logInfo("OsgiInstallerTask: executing " + this);
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerThread.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerThread.java?rev=986645&r1=986644&r2=986645&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerThread.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerThread.java
Wed Aug 18 12:29:58 2010
@@ -40,7 +40,8 @@ import org.osgi.framework.BundleListener
import org.osgi.framework.FrameworkEvent;
import org.osgi.framework.FrameworkListener;
-/** Worker thread where all OSGi tasks are executed.
+/**
+ * Worker thread where all OSGi tasks are executed.
* Runs cycles where the list of RegisteredResources is examined,
* OsgiTasks are created accordingly and executed.
*
@@ -51,17 +52,16 @@ import org.osgi.framework.FrameworkListe
public class OsgiInstallerThread
extends Thread
implements BundleListener, FrameworkListener,
- OsgiInstaller, OsgiInstallerContext {
+ OsgiInstaller {
private final BundleContext ctx;
private final List<RegisteredResource> newResources = new
LinkedList<RegisteredResource>();
- private final SortedSet<OsgiInstallerTask> tasks = new
TreeSet<OsgiInstallerTask>();
private final SortedSet<OsgiInstallerTask> tasksForNextCycle = new
TreeSet<OsgiInstallerTask>();
private final List<SortedSet<RegisteredResource>> newResourcesSets = new
ArrayList<SortedSet<RegisteredResource>>();
private final Set<String> newResourcesSchemes = new HashSet<String>();
private final Set<String> urlsToRemove = new HashSet<String>();
- private boolean active = true;
- private boolean retriesScheduled;
+ private volatile boolean active = true;
+ private volatile boolean retriesScheduled;
/** Group our RegisteredResource by OSGi entity */
private final HashMap<String, SortedSet<RegisteredResource>>
registeredResources;
@@ -99,9 +99,9 @@ public class OsgiInstallerThread
while (active) {
try {
mergeNewResources();
- computeTasks();
+ final SortedSet<OsgiInstallerTask> tasks = computeTasks();
- if(tasks.isEmpty() && !retriesScheduled) {
+ if (tasks.isEmpty() && !retriesScheduled) {
// No tasks to execute - wait until new resources are
// registered
cleanupInstallableResources();
@@ -117,7 +117,7 @@ public class OsgiInstallerThread
}
retriesScheduled = false;
- if(executeTasks() > 0) {
+ if(executeTasks(tasks) > 0) {
Logger.logDebug("Tasks have been executed, saving
persistentList");
persistentList.save();
}
@@ -137,16 +137,6 @@ public class OsgiInstallerThread
Logger.logInfo("Deactivated, exiting");
}
- /**
- * @see
org.apache.sling.osgi.installer.impl.OsgiInstallerContext#addTaskToCurrentCycle(org.apache.sling.osgi.installer.impl.OsgiInstallerTask)
- */
- public void addTaskToCurrentCycle(OsgiInstallerTask t) {
- Logger.logDebug("adding task to current cycle:" + t);
- synchronized (tasks) {
- tasks.add(t);
- }
- }
-
private void checkScheme(final String scheme) {
if ( scheme == null || scheme.length() == 0 ) {
throw new IllegalArgumentException("Scheme required");
@@ -290,18 +280,10 @@ public class OsgiInstallerThread
}
}
- /**
- * @see
org.apache.sling.osgi.installer.impl.OsgiInstallerContext#addTaskToNextCycle(org.apache.sling.osgi.installer.impl.OsgiInstallerTask)
- */
- public void addTaskToNextCycle(OsgiInstallerTask t) {
- Logger.logDebug("adding task to next cycle:" + t);
- synchronized (tasksForNextCycle) {
- tasksForNextCycle.add(t);
- }
- }
/** Compute OSGi tasks based on our resources, and add to supplied list of
tasks */
- void computeTasks() throws Exception {
+ SortedSet<OsgiInstallerTask> computeTasks() throws Exception {
+ final SortedSet<OsgiInstallerTask> tasks = new
TreeSet<OsgiInstallerTask>();
// Add tasks that were scheduled for next cycle
synchronized (tasksForNextCycle) {
for(OsgiInstallerTask t : tasksForNextCycle) {
@@ -319,14 +301,31 @@ public class OsgiInstallerThread
}
final String rt = group.first().getType();
if ( InstallableResource.TYPE_BUNDLE.equals(rt) ) {
- bundleTaskCreator.createTasks(this, group, tasks);
+ bundleTaskCreator.createTasks(group, tasks);
} else if ( InstallableResource.TYPE_CONFIG.equals(rt) ) {
- configTaskCreator.createTasks(this, group, tasks);
+ configTaskCreator.createTasks(group, tasks);
}
}
+ return tasks;
}
- private int executeTasks() {
+ private int executeTasks(final SortedSet<OsgiInstallerTask> tasks) {
+ final OsgiInstallerContext ctx = new OsgiInstallerContext() {
+
+ public void addTaskToNextCycle(final OsgiInstallerTask t) {
+ Logger.logDebug("adding task to next cycle:" + t);
+ synchronized (tasksForNextCycle) {
+ tasksForNextCycle.add(t);
+ }
+ }
+
+ public void addTaskToCurrentCycle(final OsgiInstallerTask t) {
+ Logger.logDebug("adding task to current cycle:" + t);
+ synchronized ( tasks ) {
+ tasks.add(t);
+ }
+ }
+ };
int counter = 0;
while(!tasks.isEmpty()) {
OsgiInstallerTask t = null;
@@ -334,7 +333,7 @@ public class OsgiInstallerThread
t = tasks.first();
tasks.remove(t);
}
- t.execute(this);
+ t.execute(ctx);
counter++;
}
return counter;
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigInstallTask.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigInstallTask.java?rev=986645&r1=986644&r2=986645&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigInstallTask.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigInstallTask.java
Wed Aug 18 12:29:58 2010
@@ -57,12 +57,12 @@ public class ConfigInstallTask extends A
@SuppressWarnings("unchecked")
@Override
- public Result execute(final OsgiInstallerContext ctx) {
+ public void execute(final OsgiInstallerContext ctx) {
final ConfigurationAdmin ca = this.getConfigurationAdmin();
if (ca == null) {
ctx.addTaskToNextCycle(this);
Logger.logDebug("ConfigurationAdmin not available, task will be
retried later: " + this);
- return Result.NOTHING;
+ return;
}
// Convert data to a configuration Dictionary
@@ -76,7 +76,7 @@ public class ConfigInstallTask extends A
dict.put(CONFIG_PATH_KEY, resource.getURL());
// Factory?
- if(pid.getFactoryPid() != null) {
+ if (pid.getFactoryPid() != null) {
dict.put(ALIAS_KEY, pid.getFactoryPid());
}
@@ -85,11 +85,11 @@ public class ConfigInstallTask extends A
boolean created = false;
try {
Configuration config = getConfiguration(ca, pid, false);
- if(config == null) {
+ if (config == null) {
created = true;
config = getConfiguration(ca, pid, true);
} else {
- if(isSameData(config.getProperties(),
resource.getDictionary())) {
+ if (isSameData(config.getProperties(),
resource.getDictionary())) {
Logger.logDebug("Configuration " + config.getPid()
+ " already installed with same data, update
request ignored: "
+ resource);
@@ -97,7 +97,7 @@ public class ConfigInstallTask extends A
}
}
- if(config != null) {
+ if (config != null) {
logExecution();
if (config.getBundleLocation() != null) {
config.setBundleLocation(null);
@@ -106,12 +106,12 @@ public class ConfigInstallTask extends A
Logger.logInfo("Configuration " + config.getPid()
+ " " + (created ? "created" : "updated")
+ " from " + resource);
- return Result.SUCCESS;
+ return;
}
} catch (Exception e) {
ctx.addTaskToNextCycle(this);
}
- return Result.NOTHING;
+ return;
}
private Set<String> collectKeys(final Dictionary<String, Object>a) {
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigRemoveTask.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigRemoveTask.java?rev=986645&r1=986644&r2=986645&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigRemoveTask.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigRemoveTask.java
Wed Aug 18 12:29:58 2010
@@ -47,27 +47,27 @@ public class ConfigRemoveTask extends Ab
/**
* @see
org.apache.sling.osgi.installer.impl.OsgiInstallerTask#execute(org.apache.sling.osgi.installer.impl.OsgiInstallerContext)
*/
- public Result execute(final OsgiInstallerContext ctx) {
+ public void execute(final OsgiInstallerContext ctx) {
final ConfigurationAdmin ca = this.getConfigurationAdmin();
if (ca == null) {
ctx.addTaskToNextCycle(this);
Logger.logDebug("ConfigurationAdmin not available, task will be
retried later: " + this);
- return Result.NOTHING;
+ return;
}
logExecution();
try {
final Configuration cfg = getConfiguration(ca, pid, false);
- if(cfg == null) {
+ if (cfg == null) {
Logger.logDebug("Cannot delete config , pid=" + pid + " not
found, ignored (" + resource + ")");
} else {
Logger.logInfo("Deleting config " + pid + " (" + resource +
")");
cfg.delete();
- return Result.SUCCESS;
+ return;
}
} catch (Exception e) {
ctx.addTaskToNextCycle(this);
}
- return Result.NOTHING;
+ return;
}
}
\ No newline at end of file
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigTaskCreator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigTaskCreator.java?rev=986645&r1=986644&r2=986645&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigTaskCreator.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/config/ConfigTaskCreator.java
Wed Aug 18 12:29:58 2010
@@ -23,7 +23,6 @@ import java.util.Map;
import java.util.SortedSet;
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;
import org.osgi.framework.BundleContext;
@@ -52,7 +51,7 @@ public class ConfigTaskCreator {
/** Create tasks for a set of RegisteredResource that all represent the
same config PID.
*/
- public void createTasks(OsgiInstallerContext ctx,
SortedSet<RegisteredResource> resources, SortedSet<OsgiInstallerTask> tasks) {
+ public void createTasks(SortedSet<RegisteredResource> resources,
SortedSet<OsgiInstallerTask> tasks) {
// Find the config that must be active: the resources
collection is ordered according
// to priorities, so we just need to find the first one that is
installable
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=986645&r1=986644&r2=986645&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
Wed Aug 18 12:29:58 2010
@@ -52,7 +52,7 @@ public class BundleInstallTask extends O
/**
* @see
org.apache.sling.osgi.installer.impl.OsgiInstallerTask#execute(org.apache.sling.osgi.installer.impl.OsgiInstallerContext)
*/
- public Result execute(final OsgiInstallerContext ctx) {
+ public void execute(final OsgiInstallerContext ctx) {
int startLevel = 0;
final Object providedLevel = (this.resource.getDictionary() != null
?
this.resource.getDictionary().get(InstallableResource.BUNDLE_START_LEVEL) :
null);
@@ -79,11 +79,11 @@ public class BundleInstallTask extends O
this.creator.saveInstalledBundleInfo(b.getSymbolicName(),
resource.getDigest(), newVersion.toString());
logExecution();
ctx.addTaskToCurrentCycle(new BundleStartTask(b.getBundleId(),
this.creator));
- return Result.SUCCESS;
+ return;
} catch (Exception ex) {
// if something goes wrong we simply try it again
ctx.addTaskToCurrentCycle(this);
- return Result.NOTHING;
+ return;
}
}
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=986645&r1=986644&r2=986645&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
Wed Aug 18 12:29:58 2010
@@ -49,7 +49,7 @@ public class BundleRemoveTask extends Os
}
@Override
- public Result execute(OsgiInstallerContext ctx) {
+ public void execute(OsgiInstallerContext ctx) {
logExecution();
final String symbolicName =
(String)resource.getAttributes().get(Constants.BUNDLE_SYMBOLICNAME);
final Bundle b = this.creator.getMatchingBundle(symbolicName);
@@ -64,10 +64,10 @@ public class BundleRemoveTask extends Os
b.uninstall();
} catch (BundleException be) {
ctx.addTaskToNextCycle(this);
- return Result.NOTHING;
+ return;
}
ctx.addTaskToCurrentCycle(new
SynchronousRefreshPackagesTask(this.creator));
- return Result.SUCCESS;
+ return;
}
@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=986645&r1=986644&r2=986645&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
Wed Aug 18 12:29:58 2010
@@ -62,11 +62,11 @@ public class BundleStartTask extends Osg
/**
* @see
org.apache.sling.osgi.installer.impl.OsgiInstallerTask#execute(org.apache.sling.osgi.installer.impl.OsgiInstallerContext)
*/
- public Result execute(final OsgiInstallerContext ctx) {
+ public void execute(final OsgiInstallerContext ctx) {
// this is just a sanity check which should never be reached
if (bundleId == 0) {
Logger.logDebug("Bundle 0 is the framework bundle, ignoring
request to start it");
- return Result.NOTHING;
+ return;
}
// Do not execute this task if waiting for events
@@ -74,18 +74,18 @@ public class BundleStartTask extends Osg
if (eventsCount < eventsCountForRetrying) {
Logger.logDebug(this + " is not executable at this time,
counters=" + eventsCountForRetrying + "/" + eventsCount);
ctx.addTaskToNextCycle(this);
- return Result.NOTHING;
+ return;
}
final Bundle b = this.creator.getBundleContext().getBundle(bundleId);
if (b == null) {
Logger.logInfo("Cannot start bundle, id not found: " +
bundleId);
- return Result.NOTHING;
+ return;
}
if (b.getState() == Bundle.ACTIVE) {
Logger.logDebug("Bundle already started, no action taken:" +
bundleId + "/" + b.getSymbolicName());
- return Result.SUCCESS;
+ return;
}
// Try to start bundle, and if that doesn't work we'll need to retry
logExecution();
@@ -108,6 +108,6 @@ public class BundleStartTask extends Osg
ctx.addTaskToNextCycle(this);
}
- return Result.SUCCESS;
+ return;
}
}
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleTaskCreator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleTaskCreator.java?rev=986645&r1=986644&r2=986645&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleTaskCreator.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/BundleTaskCreator.java
Wed Aug 18 12:29:58 2010
@@ -26,7 +26,6 @@ import java.util.TreeSet;
import org.apache.sling.osgi.installer.OsgiInstaller;
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;
import org.osgi.framework.Bundle;
@@ -134,7 +133,7 @@ public class BundleTaskCreator {
* has desired state == active, and generates the appropriate OSGi
tasks to
* reach this state.
*/
- public void createTasks(OsgiInstallerContext ctx,
SortedSet<RegisteredResource> resources, SortedSet<OsgiInstallerTask> tasks)
throws IOException {
+ public void createTasks(SortedSet<RegisteredResource> resources,
SortedSet<OsgiInstallerTask> tasks) throws IOException {
// Find the bundle that must be active: the resources
collection is ordered according
// to priorities, so we just need to find the first one that is
installable
@@ -154,7 +153,7 @@ public class BundleTaskCreator {
if (toActivate == null) {
// None of our resources are installable, remove
corresponding bundle if present
// and if we installed it
- if (getBundleInfo(ctx, resources.first()) != null) {
+ if (getBundleInfo(resources.first()) != null) {
if (this.getInstalledBundleVersion(symbolicName) ==
null) {
Logger.logInfo("Bundle " + symbolicName
+ " was not installed by this module, not
removed");
@@ -165,7 +164,7 @@ public class BundleTaskCreator {
}
} else {
- final BundleInfo info = getBundleInfo(ctx, toActivate);
+ final BundleInfo info = getBundleInfo(toActivate);
final Version newVersion = new
Version((String)toActivate.getAttributes().get(Constants.BUNDLE_VERSION));
RegisteredResource toUpdate = null;
if (info == null) {
@@ -222,7 +221,7 @@ public class BundleTaskCreator {
}
}
- protected BundleInfo getBundleInfo(OsgiInstallerContext ctx,
RegisteredResource bundle) {
+ protected BundleInfo getBundleInfo(final RegisteredResource bundle) {
final String symbolicName =
(String)bundle.getAttributes().get(Constants.BUNDLE_SYMBOLICNAME);
final Bundle b = this.getMatchingBundle(symbolicName);
if (b == null) {
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=986645&r1=986644&r2=986645&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
Wed Aug 18 12:29:58 2010
@@ -57,7 +57,7 @@ public class BundleUpdateTask extends Os
}
@Override
- public Result execute(OsgiInstallerContext ctx) {
+ public void execute(OsgiInstallerContext ctx) {
final String symbolicName =
(String)resource.getAttributes().get(Constants.BUNDLE_SYMBOLICNAME);
final Bundle b = this.creator.getMatchingBundle(symbolicName);
if(b == null) {
@@ -71,7 +71,7 @@ public class BundleUpdateTask extends Os
snapshot = this.creator.isSnapshot(newVersion);
if(currentVersion.equals(newVersion) && !snapshot) {
Logger.logDebug("Same version is already installed, and not a
snapshot, ignoring update:" + resource);
- return Result.NOTHING;
+ return;
}
try {
@@ -82,7 +82,7 @@ public class BundleUpdateTask extends Os
final String oldDigest =
this.creator.getInstalledBundleDigest(b);
if(resource.getDigest().equals(oldDigest)) {
Logger.logDebug("Snapshot digest did not change, ignoring
update:" + resource);
- return Result.NOTHING;
+ return;
}
}
@@ -105,14 +105,14 @@ public class BundleUpdateTask extends Os
} catch (Exception e) {
if ( canRetry ) {
ctx.addTaskToCurrentCycle(this);
- return Result.NOTHING;
+ return;
}
Logger.logWarn("Removing failing tasks - unable to retry: " +
this, e);
- return Result.NOTHING;
+ return;
}
ctx.addTaskToCurrentCycle(new
SynchronousRefreshPackagesTask(this.creator));
Logger.logDebug("Bundle updated: " + b.getBundleId() + "/" +
b.getSymbolicName());
- return Result.SUCCESS;
+ return;
}
@Override
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=986645&r1=986644&r2=986645&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
Wed Aug 18 12:29:58 2010
@@ -74,7 +74,7 @@ public class SynchronousRefreshPackagesT
/**
* @see
org.apache.sling.osgi.installer.impl.OsgiInstallerTask#execute(org.apache.sling.osgi.installer.impl.OsgiInstallerContext)
*/
- public Result execute(OsgiInstallerContext ctx) {
+ public void execute(OsgiInstallerContext ctx) {
logExecution();
final int targetEventCount = packageRefreshEventsCount + 1;
final long start = System.currentTimeMillis();
@@ -118,6 +118,6 @@ public class SynchronousRefreshPackagesT
} finally {
this.bundleTaskCreator.getBundleContext().removeFrameworkListener(this);
}
- return Result.SUCCESS;
+ return;
}
}
Modified:
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/tasks/BundleTaskCreatorTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/tasks/BundleTaskCreatorTest.java?rev=986645&r1=986644&r2=986645&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/tasks/BundleTaskCreatorTest.java
(original)
+++
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/tasks/BundleTaskCreatorTest.java
Wed Aug 18 12:29:58 2010
@@ -26,21 +26,13 @@ import java.util.SortedSet;
import java.util.TreeSet;
import org.apache.sling.osgi.installer.impl.MockBundleResource;
-import org.apache.sling.osgi.installer.impl.MockOsgiInstallerContext;
import org.apache.sling.osgi.installer.impl.OsgiInstallerTask;
import org.apache.sling.osgi.installer.impl.RegisteredResource;
-import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.Bundle;
public class BundleTaskCreatorTest {
public static final String SN = "TestSymbolicName";
- private MockOsgiInstallerContext ctx;
-
- @Before
- public void setUp() throws IOException {
- ctx = new MockOsgiInstallerContext();
- }
private SortedSet<OsgiInstallerTask> getTasks(RegisteredResource []
resources, BundleTaskCreator btc) throws IOException {
final SortedSet<RegisteredResource> s = new
TreeSet<RegisteredResource>();
@@ -49,7 +41,7 @@ public class BundleTaskCreatorTest {
}
final SortedSet<OsgiInstallerTask> tasks = new
TreeSet<OsgiInstallerTask>();
- btc.createTasks(ctx, s, tasks);
+ btc.createTasks(s, tasks);
return tasks;
}
Modified:
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/tasks/MockBundleTaskCreator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/tasks/MockBundleTaskCreator.java?rev=986645&r1=986644&r2=986645&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/tasks/MockBundleTaskCreator.java
(original)
+++
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/tasks/MockBundleTaskCreator.java
Wed Aug 18 12:29:58 2010
@@ -25,10 +25,7 @@ import java.util.Dictionary;
import java.util.HashMap;
import java.util.Map;
-import org.apache.sling.osgi.installer.impl.MockOsgiInstallerContext;
-import org.apache.sling.osgi.installer.impl.OsgiInstallerContext;
import org.apache.sling.osgi.installer.impl.RegisteredResource;
-import org.apache.sling.osgi.installer.impl.tasks.BundleTaskCreator;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
@@ -118,7 +115,7 @@ class MockBundleTaskCreator extends Bund
public File getDataFile(String filename) {
try {
- final File f =
File.createTempFile(MockOsgiInstallerContext.class.getSimpleName(), ".data");
+ final File f =
File.createTempFile(MockBundleTaskCreator.class.getSimpleName(), ".data");
f.deleteOnExit();
return f;
} catch (final IOException ioe) {
@@ -180,7 +177,7 @@ class MockBundleTaskCreator extends Bund
}
@Override
- protected BundleInfo getBundleInfo(OsgiInstallerContext ctx,
RegisteredResource bundle) {
+ protected BundleInfo getBundleInfo(RegisteredResource bundle) {
return
fakeBundleInfo.get(bundle.getAttributes().get(Constants.BUNDLE_SYMBOLICNAME));
}
}