357903: Add support for BeanDefinitionRegistryPostProcessor
 - Corrected exclusion filter
 - Enabled fragment tests for Apache Felix

Signed-off-by: Olaf Otto <olaf@x100.de>
diff --git a/core/src/main/java/org/eclipse/gemini/blueprint/context/support/AbstractDelegatedExecutionApplicationContext.java b/core/src/main/java/org/eclipse/gemini/blueprint/context/support/AbstractDelegatedExecutionApplicationContext.java
index 915ca2e..7a9e917 100644
--- a/core/src/main/java/org/eclipse/gemini/blueprint/context/support/AbstractDelegatedExecutionApplicationContext.java
+++ b/core/src/main/java/org/eclipse/gemini/blueprint/context/support/AbstractDelegatedExecutionApplicationContext.java
@@ -470,16 +470,15 @@
 		List<String> orderedPostProcessorNames = new ArrayList<String>();

 		List<String> nonOrderedPostProcessorNames = new ArrayList<String>();

 		for (String ppName : postProcessorNames) {

-			if (processedBeans.contains(ppName)) {

-				// skip - already processed in first phase above

+			if (processedBeans.contains(ppName) || exclude != null && isTypeMatch(ppName, exclude)) {

+				continue;

 			}

-			else if (beanFactory.isTypeMatch(ppName, PriorityOrdered.class)) {

+

+			if (beanFactory.isTypeMatch(ppName, PriorityOrdered.class)) {

 				priorityOrderedPostProcessors.add(beanFactory.getBean(ppName, include));

-			}

-			else if (beanFactory.isTypeMatch(ppName, Ordered.class)) {

+			} else if (beanFactory.isTypeMatch(ppName, Ordered.class)) {

 				orderedPostProcessorNames.add(ppName);

-			}

-			else {

+			} else {

 				nonOrderedPostProcessorNames.add(ppName);

 			}

 		}

@@ -509,7 +508,7 @@
 	}

 

 	private boolean isExcluded(Class<? extends BeanFactoryPostProcessor> include, Class<? extends BeanFactoryPostProcessor> exclude, BeanFactoryPostProcessor postProcessor) {

-		return !include.isInstance(postProcessor) || exclude != null && !exclude.isInstance(postProcessor);

+		return !include.isInstance(postProcessor) || exclude != null && exclude.isInstance(postProcessor);

 	}

 

 	/**

diff --git a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/compliance/io/FragmentTest.java b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/compliance/io/FragmentTest.java
index a553381..a6a61c2 100644
--- a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/compliance/io/FragmentTest.java
+++ b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/compliance/io/FragmentTest.java
@@ -34,10 +34,6 @@
 	// Folder tests

 	//

 

-	protected boolean isDisabledInThisEnvironment(String testMethodName) {

-		return isFelix();

-	}

-

 	protected String[] getBundleContentPattern() {

 		return new String[] { "**/*" };

 	}

diff --git a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/extender/configuration/ExtenderConfigurationTest.java b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/extender/configuration/ExtenderConfigurationTest.java
index 221d9b1..2be4a93 100644
--- a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/extender/configuration/ExtenderConfigurationTest.java
+++ b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/extender/configuration/ExtenderConfigurationTest.java
@@ -82,11 +82,6 @@
 		assertTrue("unexpected type", bean instanceof Properties);

 	}

 

-	// felix doesn't support fragments, so disable this test

-	protected boolean isDisabledInThisEnvironment(String testMethodName) {

-		return getPlatformName().indexOf("elix") > -1;

-	}

-

 	protected List getTestPermissions() {

 		List list = super.getTestPermissions();

 		list.add(new AdminPermission("*", AdminPermission.METADATA));

diff --git a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/io/FragmentIoTests.java b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/io/FragmentIoTests.java
index f84cb71..d70c63a 100644
--- a/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/io/FragmentIoTests.java
+++ b/integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/io/FragmentIoTests.java
@@ -29,10 +29,6 @@
  */

 public class FragmentIoTests extends BaseIoTest {

 

-	protected boolean isDisabledInThisEnvironment(String testMethodName) {

-		return isFelix();

-	}

-

 	public void testFileWithTheSameNameInOwningBundleAndAttachedFragment() throws Exception {

 		Resource[] fragmentResource = patternLoader.getResources("osgibundle:/" + PACKAGE + "duplicate.file");

 		assertTrue("file with the same name available in bundles are ignored", fragmentResource.length > 1);