crafter.core.merger-context.xml Maven / Gradle / Ivy
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License version 3 as published by
~ the Free Software Foundation.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Content Bundle Url Parser -->
<bean id="crafter.contentBundleUrlParser" class="org.craftercms.core.util.url.impl.RegexBasedContentBundleUrlParser">
<property name="pattern" value="${crafter.core.merger.strategy.contentBundle.urlParser.urlPattern}"/>
<property name="prefixGroup" value="${crafter.core.merger.strategy.contentBundle.urlParser.prefixGroup}"/>
<property name="baseNameAndExtensionTokenGroup" value="${crafter.core.merger.strategy.contentBundle.urlParser.baseNameAndExtensionGroup}"/>
<property name="suffixGroup" value="${crafter.core.merger.strategy.contentBundle.urlParser.suffixGroup}"/>
</bean>
<!-- Merge Strategies -->
<bean id="crafter.singleFileMergeStrategy" class="org.craftercms.core.xml.mergers.impl.strategies.SingleFileMergeStrategy"/>
<bean id="crafter.inheritLevelsMergeStrategy"
class="org.craftercms.core.xml.mergers.impl.strategies.InheritLevelsMergeStrategy">
<property name="levelDescriptorFileName" value="${crafter.core.merger.strategy.inheritLevels.levelDescriptor.name}"/>
<property name="baseFolders" value="${crafter.core.merger.strategy.inheritLevels.baseFolders}"/>
</bean>
<bean id="crafter.contentBundleMergeStrategy"
class="org.craftercms.core.xml.mergers.impl.strategies.ContentBundleMergeStrategy">
<property name="urlParser" ref="crafter.contentBundleUrlParser"/>
<property name="baseDelimiter" value="${crafter.core.merger.strategy.contentBundle.baseDelimiter}"/>
<property name="baseMergeStrategyResolver" ref="crafter.metaDataMergeStrategyResolver"/>
<property name="regularMergeStrategy" ref="crafter.inheritLevelsMergeStrategy"/>
</bean>
<bean id="crafter.explicitParentMergeStrategy" class="org.craftercms.core.xml.mergers.impl.strategies.ExplicitParentMergeStrategy">
<property name="mergeStrategyResolver" ref="crafter.mergeStrategyResolverChain"/>
<property name="parentDescriptorElementXPathQuery"
value="${crafter.core.merger.strategy.explicitParent.parentDescriptor.element.xpathQuery}"/>
</bean>
<!-- Merge Strategy Resolvers -->
<bean id="crafter.metaDataMergeStrategyResolver" class="org.craftercms.core.xml.mergers.impl.resolvers.MetaDataMergeStrategyResolver">
<property name="mergeStrategyElementXPathQuery" value="${crafter.core.merger.strategy.element.xpathQuery}"/>
<property name="elementValueToStrategyMappings">
<map>
<entry key="${crafter.core.merger.strategy.element.value.singleFile}"
value-ref="crafter.singleFileMergeStrategy"/>
<entry key="${crafter.core.merger.strategy.element.value.inheritLevels}"
value-ref="crafter.inheritLevelsMergeStrategy"/>
<entry key="${crafter.core.merger.strategy.element.value.contentBundle}"
value-ref="crafter.contentBundleMergeStrategy"/>
<entry key="${crafter.core.merger.strategy.element.value.explicitParent}"
value-ref="crafter.explicitParentMergeStrategy"/>
</map>
</property>
</bean>
<bean id="crafter.mergeStrategyResolverChain" class="org.craftercms.core.xml.mergers.impl.resolvers.DescriptorMergeStrategyResolverChain">
<property name="defaultStrategy" ref="crafter.singleFileMergeStrategy"/>
<property name="resolvers">
<list>
<ref bean="crafter.metaDataMergeStrategyResolver"/>
</list>
</property>
</bean>
<!-- Merger -->
<bean id="crafter.elementMergeMatcher" class="org.craftercms.core.xml.mergers.impl.cues.impl.ElementMergeMatcherImpl">
<property name="idAttributeName" value="${crafter.core.merger.cues.matcher.id.attributeName}"/>
</bean>
<bean id="crafter.abstractMergeParentAndChildMergeCue" class="org.craftercms.core.xml.mergers.impl.cues.impl.MergeParentAndChildMergeCue"
abstract="true">
<property name="elementMergeMatcher" ref="crafter.elementMergeMatcher"/>
<property name="mergeCueResolver" ref="crafter.mergeCueResolver"/>
<property name="mergeOrderParamName" value="${crafter.core.merger.cues.mergeParentAndChild.order.param.name}"/>
<property name="defaultMergeOrder" value="${crafter.core.merger.cues.mergeParentAndChild.order.value.default}"/>
</bean>
<bean id="crafter.overrideParentMergeCue" class="org.craftercms.core.xml.mergers.impl.cues.impl.UseChildMergeCue">
<property name="priority" value="${crafter.core.merger.cues.child.overrideParent.priority}"/>
</bean>
<bean id="crafter.disallowOverrideMergeCue" class="org.craftercms.core.xml.mergers.impl.cues.impl.UseParentMergeCue">
<property name="priority" value="${crafter.core.merger.cues.parent.disallowOverride.priority}"/>
</bean>
<bean id="crafter.useParentMergeCue" class="org.craftercms.core.xml.mergers.impl.cues.impl.UseParentMergeCue">
<property name="priority" value="${crafter.core.merger.cues.child.useParent.priority}"/>
</bean>
<bean id="crafter.mergeWithParentMergeCue" parent="crafter.abstractMergeParentAndChildMergeCue">
<property name="priority" value="${crafter.core.merger.cues.child.mergeWithParent.priority}"/>
</bean>
<bean id="crafter.mergeWithChildMergeCue" parent="crafter.abstractMergeParentAndChildMergeCue">
<property name="priority" value="${crafter.core.merger.cues.parent.mergeWithChild.priority}"/>
</bean>
<bean id="crafter.defaultParentMergeCue" class="org.craftercms.core.xml.mergers.impl.cues.impl.UseParentIfNotEmptyMergeCue">
<property name="priority" value="${crafter.core.merger.cues.parent.default.priority}"/>
</bean>
<bean id="crafter.defaultChildMergeCue" class="org.craftercms.core.xml.mergers.impl.cues.impl.UseChildIfNotEmptyMergeCue">
<property name="priority" value="${crafter.core.merger.cues.child.default.priority}"/>
</bean>
<bean id="crafter.mergeCueResolver" class="org.craftercms.core.xml.mergers.impl.cues.impl.MergeCueResolverImpl">
<property name="parentMergeCues">
<map>
<entry key="${crafter.core.merger.cues.parent.disallowOverride.attribute.name}"
value-ref="crafter.disallowOverrideMergeCue"/>
<entry key="${crafter.core.merger.cues.parent.mergeWithChild.attribute.name}"
value-ref="crafter.mergeWithChildMergeCue"/>
</map>
</property>
<property name="childMergeCues">
<map>
<entry key="${crafter.core.merger.cues.child.overrideParent.attribute.name}"
value-ref="crafter.overrideParentMergeCue"/>
<entry key="${crafter.core.merger.cues.child.useParent.attribute.name}"
value-ref="crafter.useParentMergeCue"/>
<entry key="${crafter.core.merger.cues.child.mergeWithParent.attribute.name}"
value-ref="crafter.mergeWithParentMergeCue"/>
</map>
</property>
<property name="defaultParentMergeCue" ref="crafter.defaultParentMergeCue"/>
<property name="defaultChildMergeCue" ref="crafter.defaultChildMergeCue"/>
</bean>
<bean id="crafter.merger" class="org.craftercms.core.xml.mergers.impl.DescriptorMergerImpl">
<property name="initialMergeCue" ref="crafter.mergeWithChildMergeCue"/>
</bean>
</beans> © 2015 - 2025 Weber Informatics LLC | Privacy Policy