Author: dkulp
Date: Tue Jun 30 01:25:03 2009
New Revision: 789530
URL: http://svn.apache.org/viewvc?rev=789530&view=rev
Log:
Update policy spring config to configure existing engine instead of
creating new one.
Have PolicyProviders register themselves instead of scanning application
context.
Modified:
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/attachment/AbstractPolicyProvider.java
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/spring/InitializingPolicyEngine.java
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/spring/PolicyEngineBeanDefinitionParser.java
cxf/trunk/rt/ws/policy/src/main/resources/META-INF/cxf/cxf-extension-policy.xml
Modified:
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/attachment/AbstractPolicyProvider.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/attachment/AbstractPolicyProvider.java?rev=789530&r1=789529&r2=789530&view=diff
==============================================================================
---
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/attachment/AbstractPolicyProvider.java
(original)
+++
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/attachment/AbstractPolicyProvider.java
Tue Jun 30 01:25:03 2009
@@ -28,6 +28,7 @@
import org.apache.cxf.common.i18n.Message;
import org.apache.cxf.ws.policy.PolicyBuilder;
import org.apache.cxf.ws.policy.PolicyEngine;
+import org.apache.cxf.ws.policy.PolicyEngineImpl;
import org.apache.cxf.ws.policy.PolicyException;
import org.apache.cxf.ws.policy.PolicyProvider;
import org.apache.cxf.ws.policy.attachment.reference.ReferenceResolver;
@@ -73,6 +74,8 @@
setBuilder(bus.getExtension(PolicyBuilder.class));
PolicyEngine pe =
(PolicyEngine)bus.getExtension(PolicyEngine.class);
setRegistry(pe.getRegistry());
+
+ ((PolicyEngineImpl)pe).getPolicyProviders().add(this);
}
}
Modified:
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/spring/InitializingPolicyEngine.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/spring/InitializingPolicyEngine.java?rev=789530&r1=789529&r2=789530&view=diff
==============================================================================
---
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/spring/InitializingPolicyEngine.java
(original)
+++
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/spring/InitializingPolicyEngine.java
Tue Jun 30 01:25:03 2009
@@ -19,32 +19,9 @@
package org.apache.cxf.ws.policy.spring;
-import java.util.ArrayList;
-import java.util.List;
-
import org.apache.cxf.ws.policy.PolicyEngineImpl;
-import org.apache.cxf.ws.policy.PolicyProvider;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-
-public class InitializingPolicyEngine extends PolicyEngineImpl implements
InitializingBean,
- ApplicationContextAware {
-
- private ApplicationContext context;
-
- public void setApplicationContext(ApplicationContext c) throws
BeansException {
- context = c;
- }
- public void afterPropertiesSet() throws Exception {
- String[] beanNames = context.getBeanNamesForType(PolicyProvider.class);
- List<PolicyProvider> providers = new ArrayList<PolicyProvider>();
- for (String bn : beanNames) {
- providers.add((PolicyProvider)context.getBean(bn));
- }
- super.setPolicyProviders(providers);
- }
+...@deprecated
+public class InitializingPolicyEngine extends PolicyEngineImpl {
}
Modified:
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/spring/PolicyEngineBeanDefinitionParser.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/spring/PolicyEngineBeanDefinitionParser.java?rev=789530&r1=789529&r2=789530&view=diff
==============================================================================
---
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/spring/PolicyEngineBeanDefinitionParser.java
(original)
+++
cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/spring/PolicyEngineBeanDefinitionParser.java
Tue Jun 30 01:25:03 2009
@@ -22,7 +22,9 @@
import org.w3c.dom.Element;
import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
+import org.apache.cxf.ws.policy.AlternativeSelector;
import org.apache.cxf.ws.policy.PolicyEngine;
+import org.apache.cxf.ws.policy.PolicyEngineImpl;
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
@@ -30,6 +32,11 @@
public class PolicyEngineBeanDefinitionParser extends
AbstractBeanDefinitionParser {
+ protected void doParse(Element element, ParserContext ctx,
BeanDefinitionBuilder bean) {
+ bean.addConstructorArgReference(PolicyEngine.class.getName());
+ super.doParse(element, ctx, bean);
+ }
+
@Override
protected void mapElement(ParserContext ctx, BeanDefinitionBuilder bean,
Element e, String name) {
@@ -40,16 +47,42 @@
@Override
protected Class getBeanClass(Element el) {
- return InitializingPolicyEngine.class;
+ return PolicyEngineConfig.class;
}
@Override
protected String resolveId(Element e, AbstractBeanDefinition abd,
ParserContext ctx)
throws BeanDefinitionStoreException {
- return PolicyEngine.class.getName();
+ return PolicyEngineConfig.class.getName();
}
-
-
+
+ public static class PolicyEngineConfig {
+
+ private PolicyEngineImpl engine;
+
+ public PolicyEngineConfig(PolicyEngine e) {
+ engine = (PolicyEngineImpl)e;
+ }
+
+ public boolean getEnabled() {
+ return engine.isEnabled();
+ }
+ public void setEnabled(boolean enabled) {
+ engine.setEnabled(enabled);
+ }
+ public boolean getIgnoreUnknownAssertions() {
+ return engine.isIgnoreUnknownAssertions();
+ }
+ public void setIgnoreUnknownAssertions(boolean
ignoreUnknownAssertions) {
+ engine.setIgnoreUnknownAssertions(ignoreUnknownAssertions);
+ }
+ public AlternativeSelector getAlternativeSelector() {
+ return engine.getAlternativeSelector();
+ }
+ public void setAlternativeSelector(AlternativeSelector
alternativeSelector) {
+ engine.setAlternativeSelector(alternativeSelector);
+ }
+ }
}
\ No newline at end of file
Modified:
cxf/trunk/rt/ws/policy/src/main/resources/META-INF/cxf/cxf-extension-policy.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/policy/src/main/resources/META-INF/cxf/cxf-extension-policy.xml?rev=789530&r1=789529&r2=789530&view=diff
==============================================================================
---
cxf/trunk/rt/ws/policy/src/main/resources/META-INF/cxf/cxf-extension-policy.xml
(original)
+++
cxf/trunk/rt/ws/policy/src/main/resources/META-INF/cxf/cxf-extension-policy.xml
Tue Jun 30 01:25:03 2009
@@ -58,7 +58,7 @@
<property name="assertionBuilderRegistry"
ref="org.apache.cxf.ws.policy.AssertionBuilderRegistry"/>
</bean>
- <bean id="org.apache.cxf.ws.policy.PolicyEngine"
class="org.apache.cxf.ws.policy.spring.InitializingPolicyEngine">
+ <bean id="org.apache.cxf.ws.policy.PolicyEngine"
class="org.apache.cxf.ws.policy.PolicyEngineImpl">
<property name="bus" ref="cxf"/>
</bean>