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