You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2014/11/12 02:36:52 UTC
svn commit: r1638684 - in
/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata:
ComponentMetadata.java XmlHandler.java
Author: cziegeler
Date: Wed Nov 12 01:36:51 2014
New Revision: 1638684
URL: http://svn.apache.org/r1638684
Log:
FELIX-4686 : If component is declared with 1.3 NS and ds.factory.enabled = true, validation error occors
Modified:
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata/XmlHandler.java
Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java?rev=1638684&r1=1638683&r2=1638684&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java Wed Nov 12 01:36:51 2014
@@ -117,7 +117,7 @@ public class ComponentMetadata
private boolean m_configurableServiceProperties;
private boolean m_persistentFactoryComponent;
private boolean m_deleteCallsModify;
- private boolean m_obsoleteFactoryComponentFactory;
+ private Boolean m_obsoleteFactoryComponentFactory;
private boolean m_configureWithInterfaces;
private boolean m_delayedKeepInstances;
@@ -726,7 +726,7 @@ public class ComponentMetadata
}
public boolean isObsoleteFactoryComponentFactory() {
- return m_obsoleteFactoryComponentFactory;
+ return m_obsoleteFactoryComponentFactory == null ? false : m_obsoleteFactoryComponentFactory;
}
public boolean isConfigureWithInterfaces() {
@@ -928,7 +928,7 @@ public class ComponentMetadata
{
throw validationFailure("Configuration with interfaces or annotations only possible with version 1.3 or later");
}
- if (m_dsVersion.isDS13() && m_obsoleteFactoryComponentFactory)
+ if (m_dsVersion.isDS13() && m_obsoleteFactoryComponentFactory != null)
{
throw validationFailure("Configuration of component factory instances through config admin factory pids supported only through the 1.2 namespace");
}
Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata/XmlHandler.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata/XmlHandler.java?rev=1638684&r1=1638683&r2=1638684&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata/XmlHandler.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/metadata/XmlHandler.java Wed Nov 12 01:36:51 2014
@@ -280,7 +280,14 @@ public class XmlHandler implements KXml2
m_currentComponent.setConfigurableServiceProperties("true".equals(attributes.getAttribute(NAMESPACE_URI_1_0_FELIX_EXTENSIONS, CONFIGURABLE_SERVICE_PROPERTIES)));
m_currentComponent.setPersistentFactoryComponent("true".equals(attributes.getAttribute(NAMESPACE_URI_1_0_FELIX_EXTENSIONS, PERSISTENT_FACTORY_COMPONENT)));
m_currentComponent.setDeleteCallsModify("true".equals(attributes.getAttribute(NAMESPACE_URI_1_0_FELIX_EXTENSIONS, DELETE_CALLS_MODIFY)));
- m_currentComponent.setObsoleteFactoryComponentFactory(m_globalObsoleteFactoryComponentFactory || "true".equals(attributes.getAttribute(NAMESPACE_URI_1_0_FELIX_EXTENSIONS, OBSOLETE_FACTORY_COMPONENT_FACTORY)));
+ if ( attributes.getAttribute(NAMESPACE_URI_1_0_FELIX_EXTENSIONS) != null)
+ {
+ m_currentComponent.setObsoleteFactoryComponentFactory("true".equals(attributes.getAttribute(NAMESPACE_URI_1_0_FELIX_EXTENSIONS, OBSOLETE_FACTORY_COMPONENT_FACTORY)));
+ }
+ else if ( !namespaceCode.isDS13() )
+ {
+ m_currentComponent.setObsoleteFactoryComponentFactory(m_globalObsoleteFactoryComponentFactory);
+ }
m_currentComponent.setConfigureWithInterfaces("true".equals(attributes.getAttribute(NAMESPACE_URI_1_0_FELIX_EXTENSIONS, CONFIGURE_WITH_INTERFACES)));
m_currentComponent.setDelayedKeepInstances(m_globalDelayedKeepInstances || "true".equals(attributes.getAttribute(NAMESPACE_URI_1_0_FELIX_EXTENSIONS, DELAYED_KEEP_INSTANCES)));