405005 - Remove workaround for Equinox (bug) 290389
There is no need to migrate
`BundleFileClosingBundleFileWrapperFactoryHook`.
The Equinox bug mentioned has been solved in Equinox with Helios M3
Change-Id: I9356c992725ab53650e0bae9925fcffcf5110ae7
diff --git a/kernel/org.eclipse.virgo.kernel.equinox.extensions/src/main/java/org/eclipse/virgo/kernel/equinox/extensions/hooks/BundleFileClosingBundleFileWrapperFactoryHook.java b/kernel/org.eclipse.virgo.kernel.equinox.extensions/src/main/java/org/eclipse/virgo/kernel/equinox/extensions/hooks/BundleFileClosingBundleFileWrapperFactoryHook.java
deleted file mode 100644
index 0b0626d..0000000
--- a/kernel/org.eclipse.virgo.kernel.equinox.extensions/src/main/java/org/eclipse/virgo/kernel/equinox/extensions/hooks/BundleFileClosingBundleFileWrapperFactoryHook.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2010 VMware Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * VMware Inc. - initial contribution
- *******************************************************************************/
-
-package org.eclipse.virgo.kernel.equinox.extensions.hooks;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.osgi.baseadaptor.BaseData;
-import org.eclipse.osgi.baseadaptor.bundlefile.BundleFile;
-import org.eclipse.osgi.baseadaptor.hooks.BundleFileWrapperFactoryHook;
-
-
-/**
- * A {@link BundleFileWrapperFactoryHook} that keeps track of {@link BundleFile BundleFiles} and,
- * when instructed to clean up, ensures that they are closed.
- *
- * <p />
- *
- * This is a workaround for Equinox bug 290389. Unfortunately when working with nested frameworks
- * the suggested workaround of calling PackageAdmin.refreshPackages does not work for the
- * child framework's composite bundle.
- *
- * <strong>Concurrent Semantics</strong><br />
- *
- * Thread-safe.
- *
- */
-public final class BundleFileClosingBundleFileWrapperFactoryHook implements BundleFileWrapperFactoryHook {
-
- private final Object monitor = new Object();
-
- private final List<BundleFile> bundleFiles = new ArrayList<BundleFile>();
-
- private static final BundleFileClosingBundleFileWrapperFactoryHook INSTANCE = new BundleFileClosingBundleFileWrapperFactoryHook();
-
- private BundleFileClosingBundleFileWrapperFactoryHook() {
- }
-
- /**
- * {@inheritDoc}
- */
- public BundleFile wrapBundleFile(BundleFile bundleFile, Object content, BaseData data, boolean base) throws IOException {
- synchronized (this.monitor) {
- this.bundleFiles.add(bundleFile);
- }
- return null;
- }
-
- public void cleanup() {
- List<BundleFile> localBundleFiles;
- synchronized (this.monitor) {
- localBundleFiles = new ArrayList<BundleFile>(this.bundleFiles);
- this.bundleFiles.clear();
- }
- for (BundleFile bundleFile : localBundleFiles) {
- try {
- bundleFile.close();
- } catch (IOException ignored) {
- }
- }
- }
-
- public static BundleFileClosingBundleFileWrapperFactoryHook getInstance() {
- return INSTANCE;
- }
-}
diff --git a/kernel/org.eclipse.virgo.kernel.equinox.extensions/src/main/java/org/eclipse/virgo/kernel/equinox/extensions/hooks/ExtensionsHookConfigurator.java b/kernel/org.eclipse.virgo.kernel.equinox.extensions/src/main/java/org/eclipse/virgo/kernel/equinox/extensions/hooks/ExtensionsHookConfigurator.java
index 0281320..9ce5c8d 100644
--- a/kernel/org.eclipse.virgo.kernel.equinox.extensions/src/main/java/org/eclipse/virgo/kernel/equinox/extensions/hooks/ExtensionsHookConfigurator.java
+++ b/kernel/org.eclipse.virgo.kernel.equinox.extensions/src/main/java/org/eclipse/virgo/kernel/equinox/extensions/hooks/ExtensionsHookConfigurator.java
@@ -31,7 +31,6 @@
public void addHooks(HookRegistry hookRegistry) {
hookRegistry.addClassLoadingHook(PluggableClassLoadingHook.getInstance());
hookRegistry.addBundleFileWrapperFactoryHook(new ExtendedBundleFileWrapperFactoryHook());
- hookRegistry.addBundleFileWrapperFactoryHook(BundleFileClosingBundleFileWrapperFactoryHook.getInstance());
hookRegistry.addBundleFileWrapperFactoryHook(PluggableBundleFileWrapperFactoryHook.getInstance());
hookRegistry.addClassLoaderDelegateHook(PluggableDelegatingClassLoaderDelegateHook.getInstance());
}
diff --git a/kernel/org.eclipse.virgo.kernel.userregion/src/main/java/org/eclipse/virgo/kernel/userregion/internal/equinox/EquinoxHookRegistrar.java b/kernel/org.eclipse.virgo.kernel.userregion/src/main/java/org/eclipse/virgo/kernel/userregion/internal/equinox/EquinoxHookRegistrar.java
index 0ce73b8..4676178 100644
--- a/kernel/org.eclipse.virgo.kernel.userregion/src/main/java/org/eclipse/virgo/kernel/userregion/internal/equinox/EquinoxHookRegistrar.java
+++ b/kernel/org.eclipse.virgo.kernel.userregion/src/main/java/org/eclipse/virgo/kernel/userregion/internal/equinox/EquinoxHookRegistrar.java
@@ -13,7 +13,6 @@
import org.eclipse.osgi.framework.adaptor.ClassLoaderDelegateHook;
-import org.eclipse.virgo.kernel.equinox.extensions.hooks.BundleFileClosingBundleFileWrapperFactoryHook;
import org.eclipse.virgo.kernel.equinox.extensions.hooks.PluggableBundleFileWrapperFactoryHook;
import org.eclipse.virgo.kernel.equinox.extensions.hooks.PluggableClassLoadingHook;
import org.eclipse.virgo.kernel.equinox.extensions.hooks.PluggableDelegatingClassLoaderDelegateHook;
@@ -48,6 +47,5 @@
PluggableClassLoadingHook.getInstance().setClassLoaderCreator(null);
PluggableBundleFileWrapperFactoryHook.getInstance().setBundleFileWrapper(null);
PluggableDelegatingClassLoaderDelegateHook.getInstance().removeDelegate(this.metaInfResourceClassLoaderDelegateHook);
- BundleFileClosingBundleFileWrapperFactoryHook.getInstance().cleanup();
}
}
diff --git a/test/org.eclipse.virgo.test.framework/src/main/java/org/eclipse/virgo/test/framework/OsgiTestRunner.java b/test/org.eclipse.virgo.test.framework/src/main/java/org/eclipse/virgo/test/framework/OsgiTestRunner.java
index 71093f1..ef59ce6 100644
--- a/test/org.eclipse.virgo.test.framework/src/main/java/org/eclipse/virgo/test/framework/OsgiTestRunner.java
+++ b/test/org.eclipse.virgo.test.framework/src/main/java/org/eclipse/virgo/test/framework/OsgiTestRunner.java
@@ -95,8 +95,6 @@
}
}
unregisterVirgoMBeans(notifier);
- // TODO confirm that this can be removed as nested frameworks are no longer used
- //BundleFileClosingBundleFileWrapperFactoryHook.getInstance().cleanup();
}
}