Author: cziegeler
Date: Wed Aug 11 06:03:07 2010
New Revision: 984304
URL: http://svn.apache.org/viewvc?rev=984304&view=rev
Log:
SLING-1560 : Move all config admin related stuff into config admin package,
reduce usage of installer context
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/InstallableResource.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/BundleTaskCreator.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerContext.java
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/OsgiInstallerThread.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/PersistentResourceList.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResource.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResourceComparator.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResourceImpl.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/BundleUpdateTask.java
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/tasks/ConfigInstallTask.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/LocalFileRegisteredResource.java
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockBundleResource.java
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockBundleTaskCreator.java
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockOsgiInstallerContext.java
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/PersistentResourceListTest.java
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/RegisteredResourceTest.java
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/TaskOrderingTest.java
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/InstallableResource.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/InstallableResource.java?rev=984304&r1=984303&r2=984304&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/InstallableResource.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/InstallableResource.java
Wed Aug 11 06:03:07 2010
@@ -18,6 +18,7 @@
*/
package org.apache.sling.osgi.installer;
+import java.io.IOException;
import java.io.InputStream;
import java.util.Dictionary;
@@ -64,7 +65,7 @@ public interface InstallableResource {
* if this resource is of type BUNDLE it must return an input stream!
* @return The input stream or null.
*/
- InputStream getInputStream();
+ InputStream getInputStream() throws IOException;
/**
* Return this resource's dictionary.
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/BundleTaskCreator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/BundleTaskCreator.java?rev=984304&r1=984303&r2=984304&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/BundleTaskCreator.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/BundleTaskCreator.java
Wed Aug 11 06:03:07 2010
@@ -27,18 +27,37 @@ import org.apache.sling.osgi.installer.i
import org.apache.sling.osgi.installer.impl.tasks.BundleRemoveTask;
import org.apache.sling.osgi.installer.impl.tasks.BundleUpdateTask;
import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.Version;
+import org.osgi.service.packageadmin.PackageAdmin;
+import org.osgi.util.tracker.ServiceTracker;
/** TaskCreator that processes a list of bundle RegisteredResources */
class BundleTaskCreator {
+ /** Interface of the package admin */
+ private static String PACKAGE_ADMIN_NAME = PackageAdmin.class.getName();
+
+ /** Tracker for the package admin. */
+ private final ServiceTracker packageAdminTracker;
+
/** Store the digests of the bundles for which we create update tasks,
* keyed by symbolic name, to avoid generating repated updates
* for snapshot bundles
*/
private final Map<String, String> digests = new HashMap<String, String>();
+ public BundleTaskCreator(final BundleContext bc) {
+ // create and start tracker
+ this.packageAdminTracker = new ServiceTracker(bc, PACKAGE_ADMIN_NAME,
null);
+ this.packageAdminTracker.open();
+ }
+
+ public void deactivate() {
+ this.packageAdminTracker.close();
+ }
+
/** Holds the bundle info that we need, makes it easier to test
* without an OSGi framework */
static class BundleInfo {
@@ -89,7 +108,7 @@ class BundleTaskCreator {
Logger.logInfo("Bundle " + symbolicName
+ " was not installed by this module, not
removed");
} else {
- tasks.add(new BundleRemoveTask(resources.first()));
+ tasks.add(new BundleRemoveTask(resources.first(),
this.packageAdminTracker));
}
}
@@ -134,7 +153,7 @@ class BundleTaskCreator {
digestToSave = previousDigest;
} else {
Logger.logDebug("Scheduling update of " +
toUpdate + ", digest has changed");
- tasks.add(new BundleUpdateTask(toUpdate));
+ tasks.add(new BundleUpdateTask(toUpdate,
this.packageAdminTracker));
digestToSave = toUpdate.getDigest();
}
}
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerContext.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerContext.java?rev=984304&r1=984303&r2=984304&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerContext.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/OsgiInstallerContext.java
Wed Aug 11 06:03:07 2010
@@ -23,7 +23,6 @@ import java.io.IOException;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Version;
-import org.osgi.service.packageadmin.PackageAdmin;
/**
* Installer context, gives access to selected methods of the {...@link
OsgiInstallerImpl}
@@ -35,11 +34,6 @@ public interface OsgiInstallerContext {
*/
BundleContext getBundleContext();
- /**
- * Return the package admin.
- */
- PackageAdmin getPackageAdmin();
-
void incrementCounter(int index);
void setCounter(int index, long value);
/**
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=984304&r1=984303&r2=984304&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
Wed Aug 11 06:03:07 2010
@@ -28,15 +28,10 @@ import org.apache.sling.osgi.installer.O
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Version;
-import org.osgi.service.packageadmin.PackageAdmin;
-import org.osgi.util.tracker.ServiceTracker;
/** OsgiInstaller service implementation */
public class OsgiInstallerImpl implements OsgiInstaller,
OsgiInstallerStatistics, OsgiInstallerContext {
- /** Interface of the package admin */
- private static String PACKAGE_ADMIN_NAME = PackageAdmin.class.getName();
-
public static final String MAVEN_SNAPSHOT_MARKER = "SNAPSHOT";
/** The bundle context. */
@@ -48,19 +43,12 @@ public class OsgiInstallerImpl implement
private long [] counters = new long[COUNTERS_SIZE];
private PersistentBundleInfo bundleDigestsStorage;
- /** Tracker for the package admin. */
- private final ServiceTracker packageAdminTracker;
-
/**
* Construct a new service
*/
public OsgiInstallerImpl(final BundleContext bc)
throws IOException {
this.bundleContext = bc;
- // create and start tracker
- this.packageAdminTracker = new ServiceTracker(bc, PACKAGE_ADMIN_NAME,
null);
- this.packageAdminTracker.open();
-
bundleDigestsStorage = new
PersistentBundleInfo(bc.getDataFile("bundle-digests.properties"));
installerThread = new OsgiInstallerThread(this);
@@ -95,8 +83,6 @@ public class OsgiInstallerImpl implement
// we simply ignore this
}
- this.packageAdminTracker.close();
-
Logger.logWarn(OsgiInstaller.class.getName()
+ " service deactivated - this warning can be ignored if
system is shutting down");
}
@@ -124,13 +110,6 @@ public class OsgiInstallerImpl implement
}
/**
- * @see
org.apache.sling.osgi.installer.impl.OsgiInstallerContext#getPackageAdmin()
- */
- public PackageAdmin getPackageAdmin() {
- return (PackageAdmin)this.packageAdminTracker.getService();
- }
-
- /**
* @see
org.apache.sling.osgi.installer.OsgiInstallerStatistics#getCounters()
*/
public long [] getCounters() {
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=984304&r1=984303&r2=984304&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 11 06:03:07 2010
@@ -62,20 +62,22 @@ class OsgiInstallerThread extends Thread
private final HashMap<String, SortedSet<RegisteredResource>>
registeredResources;
private final PersistentResourceList persistentList;
- private final BundleTaskCreator bundleTaskCreator = new
BundleTaskCreator();
+ private final BundleTaskCreator bundleTaskCreator;
private final ConfigTaskCreator configTaskCreator;
OsgiInstallerThread(final OsgiInstallerContext ctx) {
this.configTaskCreator = new ConfigTaskCreator(ctx.getBundleContext());
+ this.bundleTaskCreator = new BundleTaskCreator(ctx.getBundleContext());
setName(getClass().getSimpleName());
this.ctx = ctx;
final File f =
ctx.getBundleContext().getDataFile("RegisteredResourceList.ser");
- persistentList = new PersistentResourceList(f);
+ persistentList = new PersistentResourceList(ctx.getBundleContext(), f);
registeredResources = persistentList.getData();
}
void deactivate() {
this.configTaskCreator.deactivate();
+ this.bundleTaskCreator.deactivate();
ctx.getBundleContext().removeBundleListener(this);
active = false;
synchronized (newResources) {
@@ -239,7 +241,7 @@ class OsgiInstallerThread extends Thread
for(RegisteredResource rr : t) {
if(t.comparator().compare(rr, r) == 0) {
Logger.logDebug("Cleanup obsolete " + rr);
- rr.cleanup(ctx);
+ rr.cleanup();
}
}
t.remove(r);
@@ -252,7 +254,7 @@ class OsgiInstallerThread extends Thread
if(!urlsToRemove.isEmpty()) {
for(SortedSet<RegisteredResource> group :
registeredResources.values()) {
for(RegisteredResource r : group) {
- if(urlsToRemove.contains(r.getUrl())) {
+ if(urlsToRemove.contains(r.getURL())) {
Logger.logDebug("Marking " + r + "
uninistallable, URL is included in urlsToRemove");
r.setInstallable(false);
}
@@ -298,7 +300,7 @@ class OsgiInstallerThread extends Thread
if (group.isEmpty()) {
continue;
}
- final String rt = group.first().getResourceType();
+ final String rt = group.first().getType();
if ( InstallableResource.TYPE_BUNDLE.equals(rt) ) {
bundleTaskCreator.createTasks(ctx, group, tasks);
} else if ( InstallableResource.TYPE_CONFIG.equals(rt) ) {
@@ -353,7 +355,7 @@ class OsgiInstallerThread extends Thread
}
for(RegisteredResource r : toDelete) {
group.remove(r);
- r.cleanup(ctx);
+ r.cleanup();
Logger.logDebug("Removing RegisteredResource from list, not
installable and has been processed: " + r);
}
if(group.isEmpty() && key != null) {
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=984304&r1=984303&r2=984304&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
Wed Aug 11 06:03:07 2010
@@ -27,6 +27,8 @@ import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.SortedSet;
+import org.osgi.framework.BundleContext;
+
/** Persistent list of RegisteredResource, used by installer to
* keep track of all registered resources
*/
@@ -35,7 +37,7 @@ class PersistentResourceList {
private final File dataFile;
@SuppressWarnings("unchecked")
- PersistentResourceList(final File dataFile) {
+ PersistentResourceList(final BundleContext bc, final File dataFile) {
this.dataFile = dataFile;
ObjectInputStream ois = null;
@@ -54,7 +56,15 @@ class PersistentResourceList {
}
}
}
-
+ if ( restoredData != null ) {
+ for(final SortedSet<RegisteredResource> set :
restoredData.values() ) {
+ for(final RegisteredResource rr : set) {
+ if ( rr instanceof RegisteredResourceImpl ) {
+ ((RegisteredResourceImpl)rr).init(bc);
+ }
+ }
+ }
+ }
data = restoredData != null ? restoredData : new HashMap<String,
SortedSet<RegisteredResource>>();
}
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResource.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResource.java?rev=984304&r1=984303&r2=984304&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResource.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResource.java
Wed Aug 11 06:03:07 2010
@@ -18,36 +18,32 @@
*/
package org.apache.sling.osgi.installer.impl;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Dictionary;
import java.util.Map;
-import org.osgi.framework.BundleContext;
+import org.apache.sling.osgi.installer.InstallableResource;
/** 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.
*/
-public interface RegisteredResource {
+public interface RegisteredResource extends InstallableResource {
- public static final String DIGEST_TYPE = "MD5";
- public static final String ENTITY_JAR_PREFIX = "jar:";
- public static final String ENTITY_BUNDLE_PREFIX = "bundle:";
- public static final String ENTITY_CONFIG_PREFIX = "config:";
+ String DIGEST_TYPE = "MD5";
+ String ENTITY_JAR_PREFIX = "jar:";
+ String ENTITY_BUNDLE_PREFIX = "bundle:";
+ String ENTITY_CONFIG_PREFIX = "config:";
- void cleanup(OsgiInstallerContext ctx);
+ /** Attribute key: configuration pid */
+ String CONFIG_PID_ATTRIBUTE = "config.pid";
+
+
+ void cleanup();
String getURL();
- InputStream getInputStream(BundleContext bc) throws IOException;
- Dictionary<String, Object> getDictionary();
- String getDigest();
- String getUrl();
+
boolean isInstallable();
void setInstallable(boolean installable);
- String getResourceType();
String getUrlScheme();
- int getPriority();
long getSerialNumber();
/** Attributes include the bundle symbolic name, bundle version, etc. */
@@ -59,7 +55,4 @@ public interface RegisteredResource {
*/
String getEntityId();
- /** Attribute key: configuration pid */
- String CONFIG_PID_ATTRIBUTE = "config.pid";
-
}
Modified:
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResourceComparator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResourceComparator.java?rev=984304&r1=984303&r2=984304&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResourceComparator.java
(original)
+++
sling/trunk/installer/osgi/installer/src/main/java/org/apache/sling/osgi/installer/impl/RegisteredResourceComparator.java
Wed Aug 11 06:03:07 2010
@@ -36,8 +36,8 @@ class RegisteredResourceComparator imple
private static final long serialVersionUID = 1L;
public int compare(RegisteredResource a, RegisteredResource b) {
- final boolean aBundle =
a.getResourceType().equals(InstallableResource.TYPE_BUNDLE);
- final boolean bBundle =
b.getResourceType().equals(InstallableResource.TYPE_BUNDLE);
+ final boolean aBundle =
a.getType().equals(InstallableResource.TYPE_BUNDLE);
+ final boolean bBundle =
b.getType().equals(InstallableResource.TYPE_BUNDLE);
if(aBundle && bBundle) {
return compareBundles(a, b);
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=984304&r1=984303&r2=984304&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
Wed Aug 11 06:03:07 2010
@@ -48,6 +48,7 @@ import org.osgi.framework.Constants;
*/
public class RegisteredResourceImpl implements RegisteredResource,
Serializable {
private static final long serialVersionUID = 2L;
+ private final String id;
private final String url;
private final String urlScheme;
private final String digest;
@@ -62,6 +63,8 @@ public class RegisteredResourceImpl impl
private final String resourceType;
+ private transient BundleContext bundleContext;
+
/** Create a RegisteredResource from given data. If the data's extension
* maps to a configuration and the data provides an input stream, it is
* converted to a Dictionary
@@ -69,12 +72,14 @@ public class RegisteredResourceImpl impl
public RegisteredResourceImpl(final BundleContext ctx,
final InstallableResource input,
final String scheme) throws IOException {
+ this.bundleContext = ctx;
if ( scheme == null || scheme.length() == 0 ) {
throw new IllegalArgumentException("Scheme required");
}
if ( scheme.indexOf(':') != -1 ) {
throw new IllegalArgumentException("Scheme must not contain a
colon");
}
+ this.id = input.getId();
url = scheme + ':' + input.getId();
urlScheme = scheme;
resourceType = input.getType();
@@ -92,12 +97,12 @@ public class RegisteredResourceImpl impl
}
try {
dictionary = null;
- final File f = getDataFile(ctx);
+ final File f = getDataFile();
Logger.logDebug("Copying data to local storage " +
f.getAbsolutePath());
copyToLocalStorage(input.getInputStream(), f);
hasDataFile = true;
digest = input.getDigest();
- setAttributesFromManifest(ctx);
+ setAttributesFromManifest();
final String name =
(String)attributes.get(Constants.BUNDLE_SYMBOLICNAME);
if(name == null) {
// not a bundle - use "jar" entity to make it easier to
find out
@@ -121,6 +126,10 @@ public class RegisteredResourceImpl impl
}
}
+ public void init(final BundleContext bc) {
+ this.bundleContext = bc;
+ }
+
private static long getNextSerialNumber() {
synchronized (RegisteredResourceImpl.class) {
return serialNumberCounter++;
@@ -132,13 +141,13 @@ public class RegisteredResourceImpl impl
return getClass().getSimpleName() + " " + url + ", digest=" +
digest + ", serialNumber=" + serialNumber;
}
- protected File getDataFile(BundleContext ctx) {
+ protected File getDataFile() {
final String filename = getClass().getSimpleName() + "." +
serialNumber;
- return ctx.getDataFile(filename);
+ return this.bundleContext.getDataFile(filename);
}
- public void cleanup(OsgiInstallerContext ctx) {
- final File dataFile = getDataFile(ctx.getBundleContext());
+ public void cleanup() {
+ final File dataFile = getDataFile();
if(dataFile.exists()) {
Logger.logDebug("Deleting local storage file "
+ dataFile.getAbsolutePath());
@@ -150,9 +159,9 @@ public class RegisteredResourceImpl impl
return url;
}
- public InputStream getInputStream(BundleContext bc) throws IOException {
+ public InputStream getInputStream() throws IOException {
if(hasDataFile) {
- final File dataFile = getDataFile(bc);
+ final File dataFile = getDataFile();
if(dataFile.exists()) {
return new BufferedInputStream(new
FileInputStream(dataFile));
}
@@ -198,11 +207,11 @@ public class RegisteredResourceImpl impl
return result;
}
- public String getUrl() {
- return url;
+ public String getId() {
+ return id;
}
- public String getResourceType() {
+ public String getType() {
return resourceType;
}
@@ -256,8 +265,8 @@ public class RegisteredResourceImpl impl
return result;
}
- private void setAttributesFromManifest(BundleContext bc) throws
IOException {
- final Manifest m = getManifest(getInputStream(bc));
+ private void setAttributesFromManifest() throws IOException {
+ final Manifest m = getManifest(getInputStream());
if(m == null) {
throw new IOException("Cannot get manifest of bundle resource");
}
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=984304&r1=984303&r2=984304&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 11 06:03:07 2010
@@ -44,7 +44,7 @@ public class BundleInstallTask extends O
}
public void execute(OsgiInstallerContext ctx) throws Exception {
- final Bundle b =
ctx.getBundleContext().installBundle(resource.getUrl(),
resource.getInputStream(ctx.getBundleContext()));
+ final Bundle b =
ctx.getBundleContext().installBundle(resource.getURL(),
resource.getInputStream());
final Version newVersion = new
Version((String)resource.getAttributes().get(Constants.BUNDLE_VERSION));
ctx.saveInstalledBundleInfo(b, resource.getDigest(),
newVersion.toString());
logExecution();
@@ -54,7 +54,7 @@ public class BundleInstallTask extends O
@Override
public String getSortKey() {
- return BUNDLE_INSTALL_ORDER + resource.getUrl();
+ return BUNDLE_INSTALL_ORDER + resource.getURL();
}
}
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=984304&r1=984303&r2=984304&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 11 06:03:07 2010
@@ -24,6 +24,7 @@ import org.apache.sling.osgi.installer.i
import org.apache.sling.osgi.installer.impl.RegisteredResource;
import org.osgi.framework.Bundle;
import org.osgi.framework.Constants;
+import org.osgi.util.tracker.ServiceTracker;
/** Remove a bundle from a RegisteredResource.
* Creates a SynchronousRefreshPackagesTask when
@@ -35,8 +36,12 @@ public class BundleRemoveTask extends Os
private final RegisteredResource resource;
- public BundleRemoveTask(RegisteredResource r) {
+ /** Tracker for the package admin. */
+ private final ServiceTracker packageAdminTracker;
+
+ public BundleRemoveTask(final RegisteredResource r, final ServiceTracker
packageAdminTracker) {
this.resource = r;
+ this.packageAdminTracker = packageAdminTracker;
}
@Override
@@ -57,13 +62,13 @@ public class BundleRemoveTask extends Os
b.stop();
}
b.uninstall();
- ctx.addTaskToCurrentCycle(new SynchronousRefreshPackagesTask());
+ ctx.addTaskToCurrentCycle(new
SynchronousRefreshPackagesTask(this.packageAdminTracker));
ctx.incrementCounter(OsgiInstallerStatistics.OSGI_TASKS_COUNTER);
}
@Override
public String getSortKey() {
- return BUNDLE_REMOVE_ORDER + resource.getUrl();
+ return BUNDLE_REMOVE_ORDER + resource.getURL();
}
}
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=984304&r1=984303&r2=984304&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 11 06:03:07 2010
@@ -28,6 +28,7 @@ import org.apache.sling.osgi.installer.i
import org.osgi.framework.Bundle;
import org.osgi.framework.Constants;
import org.osgi.framework.Version;
+import org.osgi.util.tracker.ServiceTracker;
/** Update a bundle from a RegisteredResource. Creates
* a bundleStartTask to restart the bundle if it was
@@ -37,11 +38,15 @@ public class BundleUpdateTask extends Os
private static final String BUNDLE_UPDATE_ORDER = "40-";
+ /** Tracker for the package admin. */
+ private final ServiceTracker packageAdminTracker;
+
private final RegisteredResource resource;
private boolean canRetry = true;
- public BundleUpdateTask(RegisteredResource r) {
+ public BundleUpdateTask(final RegisteredResource r, final ServiceTracker
packageAdminTracker) {
this.resource = r;
+ this.packageAdminTracker = packageAdminTracker;
}
public RegisteredResource getResource() {
@@ -89,7 +94,7 @@ public class BundleUpdateTask extends Os
ctx.addTaskToCurrentCycle(new BundleStartTask(b.getBundleId()));
}
b.stop();
- final InputStream is = resource.getInputStream(ctx.getBundleContext());
+ final InputStream is = resource.getInputStream();
if(is == null) {
canRetry = false;
throw new IllegalStateException(
@@ -98,7 +103,7 @@ public class BundleUpdateTask extends Os
}
b.update(is);
ctx.saveInstalledBundleInfo(b, resource.getDigest(),
newVersion.toString());
- ctx.addTaskToCurrentCycle(new SynchronousRefreshPackagesTask());
+ ctx.addTaskToCurrentCycle(new
SynchronousRefreshPackagesTask(this.packageAdminTracker));
Logger.logDebug("Bundle updated: " + b.getBundleId() + "/" +
b.getSymbolicName());
ctx.incrementCounter(OsgiInstallerStatistics.OSGI_TASKS_COUNTER);
}
@@ -110,7 +115,7 @@ public class BundleUpdateTask extends Os
@Override
public String getSortKey() {
- return BUNDLE_UPDATE_ORDER + resource.getUrl();
+ return BUNDLE_UPDATE_ORDER + resource.getURL();
}
}
\ No newline at end of file
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=984304&r1=984303&r2=984304&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
Wed Aug 11 06:03:07 2010
@@ -76,7 +76,7 @@ public class ConfigInstallTask extends A
}
// Add pseudo-properties
- dict.put(CONFIG_PATH_KEY, resource.getUrl());
+ dict.put(CONFIG_PATH_KEY, resource.getURL());
// Factory?
if(pid.getFactoryPid() != null) {
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=984304&r1=984303&r2=984304&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 11 06:03:07 2010
@@ -24,10 +24,15 @@ import org.apache.sling.osgi.installer.i
import org.osgi.framework.Bundle;
import org.osgi.framework.FrameworkEvent;
import org.osgi.framework.FrameworkListener;
+import org.osgi.service.packageadmin.PackageAdmin;
+import org.osgi.util.tracker.ServiceTracker;
/** Execute an OSGi "refresh packages" operation, synchronously */
public class SynchronousRefreshPackagesTask extends OsgiInstallerTask
implements FrameworkListener {
+ /** Tracker for the package admin. */
+ private final ServiceTracker packageAdminTracker;
+
private static final String REFRESH_PACKAGES_ORDER = "60-";
/** Max time allowed to refresh packages (TODO configurable??) */
@@ -35,6 +40,10 @@ public class SynchronousRefreshPackagesT
private volatile int packageRefreshEventsCount;
+ public SynchronousRefreshPackagesTask(final ServiceTracker
packageAdminTracker) {
+ this.packageAdminTracker = packageAdminTracker;
+ }
+
/**
* Handles the PACKAGES_REFRESHED framework event which is sent after
* the PackageAdmin.refreshPackages has finished its work of refreshing
@@ -59,7 +68,14 @@ public class SynchronousRefreshPackagesT
return getClass().getSimpleName();
}
- public void execute(OsgiInstallerContext ctx) throws Exception {
+ private PackageAdmin getPackageAdmin() {
+ return (PackageAdmin)this.packageAdminTracker.getService();
+ }
+
+ /**
+ * @see
org.apache.sling.osgi.installer.impl.OsgiInstallerTask#execute(org.apache.sling.osgi.installer.impl.OsgiInstallerContext)
+ */
+ public void execute(OsgiInstallerContext ctx) throws Exception {
logExecution();
final int targetEventCount = packageRefreshEventsCount + 1;
final long start = System.currentTimeMillis();
@@ -80,7 +96,7 @@ public class SynchronousRefreshPackagesT
// if one happened very recently and there's nothing to refresh
ctx.getBundleContext().addFrameworkListener(this);
try {
- ctx.getPackageAdmin().refreshPackages(null);
+ this.getPackageAdmin().refreshPackages(null);
while(true) {
if(System.currentTimeMillis() > timeout) {
Logger.logWarn("No FrameworkEvent.PACKAGES_REFRESHED event
received within "
Modified:
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/LocalFileRegisteredResource.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/LocalFileRegisteredResource.java?rev=984304&r1=984303&r2=984304&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/LocalFileRegisteredResource.java
(original)
+++
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/LocalFileRegisteredResource.java
Wed Aug 11 06:03:07 2010
@@ -22,9 +22,9 @@ import java.io.File;
import java.io.IOException;
import org.apache.sling.osgi.installer.InstallableResource;
-import org.osgi.framework.BundleContext;
/** RegisteredResource that stores data to a local temporary file */
+...@suppresswarnings("serial")
class LocalFileRegisteredResource extends RegisteredResourceImpl {
private File storage;
@@ -33,7 +33,7 @@ class LocalFileRegisteredResource extend
}
@Override
- protected File getDataFile(BundleContext ctx) {
+ protected File getDataFile() {
if(storage == null) {
try {
storage = File.createTempFile(getClass().getName(), "test");
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=984304&r1=984303&r2=984304&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
Wed Aug 11 06:03:07 2010
@@ -27,7 +27,6 @@ import java.util.Map;
import org.apache.sling.osgi.installer.InstallableResource;
import org.apache.sling.osgi.installer.InstallableResourceFactory;
-import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
/** Mock RegisteredResource that simulates a bundle */
@@ -77,7 +76,8 @@ public class MockBundleResource implemen
;
}
- public void cleanup(OsgiInstallerContext ctx) {
+ public void cleanup() {
+ // nothing to do
}
public Map<String, Object> getAttributes() {
@@ -96,15 +96,15 @@ public class MockBundleResource implemen
return null;
}
- public InputStream getInputStream(BundleContext ctx) throws IOException
{
+ public InputStream getInputStream() throws IOException {
return null;
}
- public String getResourceType() {
+ public String getType() {
return InstallableResource.TYPE_BUNDLE;
}
- public String getUrl() {
+ public String getId() {
return null;
}
Modified:
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockBundleTaskCreator.java
URL:
http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockBundleTaskCreator.java?rev=984304&r1=984303&r2=984304&view=diff
==============================================================================
---
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockBundleTaskCreator.java
(original)
+++
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/MockBundleTaskCreator.java
Wed Aug 11 06:03:07 2010
@@ -18,21 +18,155 @@
*/
package org.apache.sling.osgi.installer.impl;
+import java.io.File;
+import java.io.InputStream;
+import java.util.Dictionary;
import java.util.HashMap;
import java.util.Map;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
+import org.osgi.framework.BundleListener;
import org.osgi.framework.Constants;
+import org.osgi.framework.Filter;
+import org.osgi.framework.FrameworkListener;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceListener;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
import org.osgi.framework.Version;
/** BundleTaskCreator that simulates the presence and state of bundles */
class MockBundleTaskCreator extends BundleTaskCreator {
private final Map<String, BundleInfo> fakeBundleInfo = new HashMap<String,
BundleInfo>();
-
+
+ public MockBundleTaskCreator() {
+ super(new BundleContext() {
+
+ public boolean ungetService(ServiceReference reference) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public void removeServiceListener(ServiceListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeFrameworkListener(FrameworkListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeBundleListener(BundleListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public ServiceRegistration registerService(String clazz, Object
service,
+ Dictionary properties) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public ServiceRegistration registerService(String[] clazzes,
+ Object service, Dictionary properties) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Bundle installBundle(String location) throws
BundleException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Bundle installBundle(String location, InputStream input)
+ throws BundleException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public ServiceReference[] getServiceReferences(String clazz,
String filter)
+ throws InvalidSyntaxException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public ServiceReference getServiceReference(String clazz) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Object getService(ServiceReference reference) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getProperty(String key) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public File getDataFile(String filename) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Bundle[] getBundles() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Bundle getBundle(long id) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Bundle getBundle() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public ServiceReference[] getAllServiceReferences(String clazz,
+ String filter) throws InvalidSyntaxException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Filter createFilter(String filter) throws
InvalidSyntaxException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void addServiceListener(ServiceListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void addServiceListener(ServiceListener listener, String
filter)
+ throws InvalidSyntaxException {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void addFrameworkListener(FrameworkListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void addBundleListener(BundleListener listener) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+ }
+
void addBundleInfo(String symbolicName, String version, int state) {
fakeBundleInfo.put(symbolicName, new BundleInfo(symbolicName, new
Version(version), state));
}
-
+
@Override
protected BundleInfo getBundleInfo(OsgiInstallerContext ctx,
RegisteredResource bundle) {
return
fakeBundleInfo.get(bundle.getAttributes().get(Constants.BUNDLE_SYMBOLICNAME));
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=984304&r1=984303&r2=984304&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
Wed Aug 11 06:03:07 2010
@@ -24,8 +24,6 @@ import java.io.IOException;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Version;
-import org.osgi.service.cm.ConfigurationAdmin;
-import org.osgi.service.packageadmin.PackageAdmin;
public class MockOsgiInstallerContext implements OsgiInstallerContext {
@@ -47,14 +45,6 @@ public class MockOsgiInstallerContext im
return null;
}
- public ConfigurationAdmin getConfigurationAdmin() {
- return null;
- }
-
- public PackageAdmin getPackageAdmin() {
- return null;
- }
-
public void incrementCounter(int index) {
}
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=984304&r1=984303&r2=984304&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
Wed Aug 11 06:03:07 2010
@@ -41,7 +41,7 @@ public class PersistentResourceListTest
@Test
public void testFileNotFound() throws IOException {
File f = new File("NONEXISTENT");
- PersistentResourceList p = new PersistentResourceList(f);
+ PersistentResourceList p = new PersistentResourceList(null, f);
assertNotNull(p.getData());
}
@@ -55,7 +55,7 @@ public class PersistentResourceListTest
} finally {
oos.close();
}
- PersistentResourceList p = new PersistentResourceList(f);
+ PersistentResourceList p = new PersistentResourceList(null, f);
assertNotNull(p.getData());
assertEquals("Constructor must fail gracefully with invalid data
file", 0, p.getData().size());
}
@@ -63,7 +63,7 @@ public class PersistentResourceListTest
@Test
public void testTestData() throws IOException {
File f = new File("NONEXISTENT");
- PersistentResourceList p = new PersistentResourceList(f);
+ PersistentResourceList p = new PersistentResourceList(null, f);
assertNotNull(p.getData());
addTestData(p);
assertTestData(p);
@@ -74,12 +74,12 @@ public class PersistentResourceListTest
File f = File.createTempFile(getClass().getSimpleName(), ".ser");
f.deleteOnExit();
{
- PersistentResourceList p = new PersistentResourceList(f);
+ PersistentResourceList p = new PersistentResourceList(null, f);
addTestData(p);
p.save();
}
{
- PersistentResourceList p = new PersistentResourceList(f);
+ PersistentResourceList p = new PersistentResourceList(null, f);
assertTestData(p);
}
}
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=984304&r1=984303&r2=984304&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
Wed Aug 11 06:03:07 2010
@@ -52,8 +52,8 @@ public class RegisteredResourceTest {
final InputStream s = new
FileInputStream(getTestBundle("testbundle-1.0.jar"));
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());
- final InputStream rs = r.getInputStream(null);
+ InstallableResource.TYPE_BUNDLE, r.getType());
+ final InputStream rs = r.getInputStream();
assertNotNull("BUNDLE resource provides an InputStream", rs);
rs.close();
assertNull("BUNDLE resource does not provide a Dictionary",
r.getDictionary());
@@ -66,8 +66,8 @@ public class RegisteredResourceTest {
data.put("other", 2);
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());
- final InputStream rs = r.getInputStream(null);
+ InstallableResource.TYPE_CONFIG, r.getType());
+ final InputStream rs = r.getInputStream();
assertNull("CONFIG resource does not provide an InputStream", rs);
final Dictionary<String, Object> d = r.getDictionary();
assertNotNull("CONFIG resource provides a Dictionary", d);
@@ -80,9 +80,9 @@ public class RegisteredResourceTest {
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, null, "somedigest",
null, null));
- assertTrue("Local file exists", r.getDataFile(null).exists());
+ assertTrue("Local file exists", r.getDataFile().exists());
- assertEquals("Local file length matches our data", f.length(),
r.getDataFile(null).length());
+ assertEquals("Local file length matches our data", f.length(),
r.getDataFile().length());
}
@org.junit.Test public void testMissingDigest() throws Exception {
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=984304&r1=984303&r2=984304&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
Wed Aug 11 06:03:07 2010
@@ -72,10 +72,10 @@ public class TaskOrderingTest {
final OsgiInstallerTask [] tasksInOrder = {
new ConfigRemoveTask(getRegisteredResource("test:a"), null),
new ConfigInstallTask(getRegisteredResource("test:a"), null),
- new BundleRemoveTask(getRegisteredResource("test:url")),
- new BundleUpdateTask(getRegisteredResource("test:url")),
+ new BundleRemoveTask(getRegisteredResource("test:url"),
null),
+ new BundleUpdateTask(getRegisteredResource("test:url"),
null),
new BundleInstallTask(getRegisteredResource("test:url")),
- new SynchronousRefreshPackagesTask(),
+ new SynchronousRefreshPackagesTask(null),
new BundleStartTask(0),
};
@@ -130,7 +130,7 @@ public class TaskOrderingTest {
final OsgiInstallerTask [] tasksInOrder = {
new
BundleInstallTask(getRegisteredResource("test:someURIa.nothing")),
new
BundleInstallTask(getRegisteredResource("test:someURIb.nothing")),
- new SynchronousRefreshPackagesTask(),
+ new SynchronousRefreshPackagesTask(null),
new BundleStartTask(0),
};
@@ -153,8 +153,8 @@ public class TaskOrderingTest {
public void testMultipleRefreshAndStart() throws Exception {
int testIndex = 1;
final OsgiInstallerTask [] tasksInOrder = {
- new BundleRemoveTask(getRegisteredResource("test:url")),
- new SynchronousRefreshPackagesTask(),
+ new BundleRemoveTask(getRegisteredResource("test:url"),
null),
+ new SynchronousRefreshPackagesTask(null),
new BundleStartTask(0),
new BundleStartTask(1),
};
@@ -162,23 +162,23 @@ public class TaskOrderingTest {
taskSet.clear();
taskSet.add(tasksInOrder[3]);
taskSet.add(tasksInOrder[3]);
- taskSet.add(new SynchronousRefreshPackagesTask());
+ taskSet.add(new SynchronousRefreshPackagesTask(null));
taskSet.add(tasksInOrder[2]);
taskSet.add(tasksInOrder[2]);
taskSet.add(tasksInOrder[1]);
- taskSet.add(new SynchronousRefreshPackagesTask());
- taskSet.add(new SynchronousRefreshPackagesTask());
+ taskSet.add(new SynchronousRefreshPackagesTask(null));
+ taskSet.add(new SynchronousRefreshPackagesTask(null));
taskSet.add(tasksInOrder[0]);
taskSet.add(tasksInOrder[3]);
- taskSet.add(new SynchronousRefreshPackagesTask());
+ taskSet.add(new SynchronousRefreshPackagesTask(null));
taskSet.add(tasksInOrder[3]);
taskSet.add(tasksInOrder[2]);
- taskSet.add(new SynchronousRefreshPackagesTask());
+ taskSet.add(new SynchronousRefreshPackagesTask(null));
taskSet.add(tasksInOrder[2]);
taskSet.add(tasksInOrder[1]);
- taskSet.add(new SynchronousRefreshPackagesTask());
+ taskSet.add(new SynchronousRefreshPackagesTask(null));
taskSet.add(tasksInOrder[1]);
- taskSet.add(new SynchronousRefreshPackagesTask());
+ taskSet.add(new SynchronousRefreshPackagesTask(null));
assertOrder(testIndex++, taskSet, tasksInOrder);
}