From 88580f7595f0f7b09de84ddc0eb281b81da6857d Mon Sep 17 00:00:00 2001
From: John Ross
Date: Tue, 25 Jun 2013 15:30:16 -0500
Subject: [Bug 407416] Test framework discards bundles at load time when
storage hooks invalidate.
A new package and initial infrastructure for framework hook tests was created.
Two storage hook tests have been added. One tests that bundles are discarded if a storage hook throws
IllegalStateException from the validate() method. The other ensure that bundles are not discarded
when storage hook validation succeeds.
---
bundles/org.eclipse.osgi.tests/.classpath | 1 +
bundles/org.eclipse.osgi.tests/build.properties | 5 +-
.../storage.hooks.a/META-INF/MANIFEST.MF | 3 +
.../framework/storage/a/TestHookConfigurator.java | 59 +++++++++
.../framework/AbstractFrameworkHookTests.java | 135 +++++++++++++++++++++
.../tests/hooks/framework/StorageHookTests.java | 104 ++++++++++++++++
bundles/org.eclipse.osgi/META-INF/MANIFEST.MF | 2 +
7 files changed, 308 insertions(+), 1 deletion(-)
create mode 100644 bundles/org.eclipse.osgi.tests/bundles_src/storage.hooks.a/META-INF/MANIFEST.MF
create mode 100644 bundles/org.eclipse.osgi.tests/bundles_src/storage.hooks.a/org/eclipse/osgi/tests/hooks/framework/storage/a/TestHookConfigurator.java
create mode 100644 bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/AbstractFrameworkHookTests.java
create mode 100644 bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/StorageHookTests.java
diff --git a/bundles/org.eclipse.osgi.tests/.classpath b/bundles/org.eclipse.osgi.tests/.classpath
index 1035af696..af3abe16d 100644
--- a/bundles/org.eclipse.osgi.tests/.classpath
+++ b/bundles/org.eclipse.osgi.tests/.classpath
@@ -109,5 +109,6 @@
+
diff --git a/bundles/org.eclipse.osgi.tests/build.properties b/bundles/org.eclipse.osgi.tests/build.properties
index 538bdd014..1a0453f5a 100644
--- a/bundles/org.eclipse.osgi.tests/build.properties
+++ b/bundles/org.eclipse.osgi.tests/build.properties
@@ -229,6 +229,8 @@ source.bundle_tests/geturl.jar = bundles_src/geturl/
manifest.bundle_tests/geturl.jar = META-INF/MANIFEST.MF
source.bundle_tests/test.bug375784.jar = bundles_src/test.bug306181b/
manifest.bundle_tests/test.bug375784.jar = META-INF/MANIFEST.MF
+source.bundle_tests/storage.hooks.a.jar = bundles_src/storage.hooks.a/
+manifest.bundle_tests/storage.hooks.a.jar = META-INF/MANIFEST.MF
jars.compile.order = bundle_tests/ext.framework.b.jar,\
osgitests.jar,\
@@ -336,4 +338,5 @@ jars.compile.order = bundle_tests/ext.framework.b.jar,\
bundle_tests/test.bug306181b.jar,\
bundle_tests/test.logging.a.jar,\
bundle_tests/geturl.jar,\
- bundle_tests/test.bug375784.jar
+ bundle_tests/test.bug375784.jar,\
+ bundle_tests/storage.hooks.a.jar
diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/storage.hooks.a/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi.tests/bundles_src/storage.hooks.a/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..adedac0c8
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/bundles_src/storage.hooks.a/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: storage.hooks.a
diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/storage.hooks.a/org/eclipse/osgi/tests/hooks/framework/storage/a/TestHookConfigurator.java b/bundles/org.eclipse.osgi.tests/bundles_src/storage.hooks.a/org/eclipse/osgi/tests/hooks/framework/storage/a/TestHookConfigurator.java
new file mode 100644
index 000000000..d2423eef5
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/bundles_src/storage.hooks.a/org/eclipse/osgi/tests/hooks/framework/storage/a/TestHookConfigurator.java
@@ -0,0 +1,59 @@
+package org.eclipse.osgi.tests.hooks.framework.storage.a;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.util.Dictionary;
+import org.eclipse.osgi.internal.hookregistry.*;
+import org.eclipse.osgi.storage.BundleInfo.Generation;
+
+public class TestHookConfigurator implements HookConfigurator {
+ private static class TestStorageHookFactory extends StorageHookFactory