<?xml version="1.0" encoding="UTF-8"?>
<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">
    <bean id="osProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="properties">
            <props>
                <prop key="frontEndCommandSuffix">
                    #{ systemProperties['os.name'].startsWith('Windows') ? '.cmd' : '' }
                </prop>
                <prop key="frontEndCommandPrefix">
                    #{ systemProperties['os.name'].startsWith('Windows') ? 'cmd /C ' : '' }
                </prop>
                <prop key="frontEndCommandPath">
                    #{ 'true'.equals(systemProperties['arkcase.external.bower-grunt']) ? ''
                      : systemProperties['os.name'].startsWith('Windows') ? 'node_modules\\.bin\\' : 'node_modules/.bin/' }
                </prop>
            </props>
        </property>
    </bean>
    <bean id="angularResourceCopierProperties" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
        <property name="placeholderPrefix" value="$["/>
        <property name="placeholderSuffix" value="]"/>
        <property name="properties" ref="osProperties"/>
    </bean>

    <bean id="angularResourceCopier" class="com.armedia.acm.userinterface.angular.AngularResourceCopier">
        <property name="springActiveProfile" ref="acmSpringActiveProfile"/>
        <property name="mergeConfigFrontendTask">
            <value>$[frontEndCommandPrefix]$[frontEndCommandPath]grunt$[frontEndCommandSuffix] updateModulesConfig --no-color</value>
        </property>
        <property name="tempFolderPath" value="#{ systemProperties ['user.home'] }/.arkcase/tmp"/>
        <property name="deployFolderPath" value="#{ systemProperties ['user.home'] }/.arkcase/custom"/>
        <property name="yarnInstallCommand">
            <value>$[frontEndCommandPrefix]yarn --skip-integrity-check --ignore-engines --no-progress --non-interactive install</value>
        </property>
        <property name="gruntDefaultCommand">
            <value>$[frontEndCommandPrefix]$[frontEndCommandPath]grunt$[frontEndCommandSuffix] --no-color</value>
        </property>
        <property name="resourceFoldersToCopyFromArchive">
            <list>
                <value>assets</value>
                <value>config</value>
                <value>directives</value>
                <value>modules</value>
                <value>modules_config</value>
                <value>scss</value>
                <value>services</value>
                <value>templates</value>
                <value>filters</value>
                <value>lib</value>
            </list>
        </property>
        <property name="customResourceSourcesToCopyFromArchive">
            <list>
                <value>assets</value>
                <value>config</value>
                <value>directives</value>
                <value>modules</value>
                <value>services</value>
                <value>filters</value>
                <value>lib</value>
            </list>
        </property>
        <property name="assembledFoldersToCopyToDeployment">
            <list>
                <value>assets</value>
                <value>directives</value>
                <value>node_modules</value>
                <value>modules</value>
                <value>modules_config</value>
                <value>services</value>
                <value>filters</value>
                <value>lib</value>
            </list>
        </property>
        <property name="filesToCopyFromArchive">
            <list>
                <value>.csslintrc</value>
                <value>.jshintrc</value>
                <value>application.js</value>
                <value>config.js</value>
                <value>Gruntfile.js</value>
                <value>package.json</value>
                <value>yarn.lock</value>
            </list>
        </property>
        <property name="assembledFilesToCopyToDeployment">
            <list>
                <value>home.html</value>
                <value>application.js</value>
                <value>config.js</value>
            </list>
        </property>

    </bean>
</beans>
