Author: cziegeler
Date: Tue Aug 24 15:26:50 2010
New Revision: 988593
URL: http://svn.apache.org/viewvc?rev=988593&view=rev
Log:
SLING-1560 : Improve and clean up code
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerImpl.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/PersistentResourceList.java
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerImpl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerImpl.java?rev=988593&r1=988592&r2=988593&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerImpl.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerImpl.java
Tue Aug 24 15:26:50 2010
@@ -22,7 +22,6 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
@@ -63,24 +62,13 @@ public class OsgiInstallerImpl
private volatile boolean active = true;
private volatile boolean retriesScheduled;
- /** Group our RegisteredResource by OSGi entity */
- private final HashMap<String, SortedSet<RegisteredResource>>
registeredResources;
- private final PersistentResourceList persistentList;
+ private PersistentResourceList persistentList;
- private final BundleTaskCreator bundleTaskCreator;
- private final ConfigTaskCreator configTaskCreator;
+ private BundleTaskCreator bundleTaskCreator;
+ private ConfigTaskCreator configTaskCreator;
OsgiInstallerImpl(final BundleContext ctx) {
this.ctx = ctx;
- // listen to framework and bundle events
- this.ctx.addFrameworkListener(this);
- this.ctx.addBundleListener(this);
- this.configTaskCreator = new ConfigTaskCreator(ctx);
- this.bundleTaskCreator = new BundleTaskCreator(ctx);
- setName(getClass().getSimpleName());
- final File f = ctx.getDataFile("RegisteredResourceList.ser");
- persistentList = new PersistentResourceList(f);
- registeredResources = persistentList.getData();
}
void deactivate() {
@@ -96,6 +84,14 @@ public class OsgiInstallerImpl
@Override
public void run() {
+ // listen to framework and bundle events
+ this.ctx.addFrameworkListener(this);
+ this.ctx.addBundleListener(this);
+ this.configTaskCreator = new ConfigTaskCreator(ctx);
+ this.bundleTaskCreator = new BundleTaskCreator(ctx);
+ setName(getClass().getSimpleName());
+ final File f = ctx.getDataFile("RegisteredResourceList.ser");
+ persistentList = new PersistentResourceList(f);
while (active) {
try {
mergeNewResources();
@@ -237,7 +233,7 @@ public class OsgiInstallerImpl
Logger.logDebug("New resource set to non-installable:
" + r);
}
}
- for(SortedSet<RegisteredResource> ss :
registeredResources.values()) {
+ for(SortedSet<RegisteredResource> ss :
this.persistentList.getData().values()) {
for(RegisteredResource r : ss) {
if(r.getScheme().equals(scheme)) {
r.setInstallable(false);
@@ -255,10 +251,10 @@ public class OsgiInstallerImpl
newResourcesSchemes.clear();
for(RegisteredResource r : newResources) {
- SortedSet<RegisteredResource> t =
registeredResources.get(r.getEntityId());
+ SortedSet<RegisteredResource> t =
this.persistentList.getData().get(r.getEntityId());
if(t == null) {
t = new TreeSet<RegisteredResource>();
- registeredResources.put(r.getEntityId(), t);
+ this.persistentList.getData().put(r.getEntityId(), t);
}
// If an object with same sort key is already present, replace
with the
@@ -278,7 +274,7 @@ public class OsgiInstallerImpl
// Mark resources for removal according to urlsToRemove
if(!urlsToRemove.isEmpty()) {
- for(SortedSet<RegisteredResource> group :
registeredResources.values()) {
+ for(SortedSet<RegisteredResource> group :
this.persistentList.getData().values()) {
for(RegisteredResource r : group) {
if(urlsToRemove.contains(r.getURL())) {
Logger.logDebug("Marking " + r + "
uninistallable, URL is included in urlsToRemove");
@@ -306,7 +302,7 @@ public class OsgiInstallerImpl
// Walk the list of entities, and create appropriate OSGi tasks for
each group
// TODO do nothing for a group that's "stable" - i.e. one where no
tasks were
// created in the last cycle??
- for(SortedSet<RegisteredResource> group :
registeredResources.values()) {
+ for(SortedSet<RegisteredResource> group :
this.persistentList.getData().values()) {
if (group.isEmpty()) {
continue;
}
@@ -356,7 +352,7 @@ public class OsgiInstallerImpl
int resourceCount = 0;
final List<RegisteredResource> toDelete = new
ArrayList<RegisteredResource>();
final List<String> groupKeysToRemove = new ArrayList<String>();
- for(SortedSet<RegisteredResource> group :
registeredResources.values()) {
+ for(SortedSet<RegisteredResource> group :
this.persistentList.getData().values()) {
toDelete.clear();
String key = null;
for(RegisteredResource r : group) {
@@ -377,7 +373,7 @@ public class OsgiInstallerImpl
}
for(String key : groupKeysToRemove) {
- registeredResources.remove(key);
+ this.persistentList.getData().remove(key);
}
// List of resources might have changed
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/PersistentResourceList.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/PersistentResourceList.java?rev=988593&r1=988592&r2=988593&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/PersistentResourceList.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/PersistentResourceList.java
Tue Aug 24 15:26:50 2010
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
+import java.util.Map;
import java.util.SortedSet;
/** Persistent list of RegisteredResource, used by installer to
@@ -57,7 +58,7 @@ class PersistentResourceList {
data = restoredData != null ? restoredData : new HashMap<String,
SortedSet<RegisteredResource>>();
}
- HashMap<String, SortedSet<RegisteredResource>> getData() {
+ Map<String, SortedSet<RegisteredResource>> getData() {
return data;
}