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();
         }
     }