All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ar.com.zauber.commons.web.version.version-provider-spring.xml Maven / Gradle / Ivy

There is a newer version: 3.55
Show newest version
<?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">

    <!--
      El siguiente archivo provee varias estrategias para obtener
      la versión del artefacto. Esto es util para versionar los 
      archivos css y js para facilitar el cacheo.
      
      Se deben completar algunas propiedades. y dos beans 
     (ver version-provider-spring.xml) 
      -->
    <!-- ~~~~~~~~~~~~~~~~~~ PROVIDERS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!--
       Provee una version intentando conseguir la mayor informacion.
         * Si hay informacion de version de pom y de build the hudson
         * Si está la version del pom y no el build va la version del pom
         * Si está la informacion del build pero no del pom va el build
         * sino usa de version la fecha en la que inicio la aplicación
         
        Siguiendo la linea anterios, estos son posibles ejemplos: 
         * 0.0-SNAPSHOT-build-25
         * 0.0-SNAPSHOT
         * build-25
         * 11B3D01DFE8
      -->
    <bean  name="commonsWebUtilsVersionProvider" 
          class="ar.com.zauber.commons.web.version.impl.ValidatorVersionProvider">
        <constructor-arg index="0">
            <bean class="ar.com.zauber.commons.web.version.impl.MultipleVersionProvider">
                <constructor-arg>
                    <list>
                        <ref bean="pomAndBuildCommonsWebUtilsVersionProvider"/>
                        <ref bean="pomCommonsWebUtilsVersionProvider"/>
                        <ref bean="buildCommonsWebUtilsVersionProvider"/>
                        <ref bean="dateCommonsWebUtilsVersionProvider"/>
                    </list>
                </constructor-arg>
            </bean>
        </constructor-arg>
    </bean>
    
    
    
    <!-- provee el numero de build si es que lo compiló hudson -->
    <bean name="buildCommonsWebUtilsVersionProvider" 
         class="ar.com.zauber.commons.web.version.impl.AppenderDecoratorVersionProvider">
        <constructor-arg index="0">
            <bean class="ar.com.zauber.commons.web.version.impl.ManifestVersionProvider" >
                <constructor-arg index="0">
                    <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
                        <property name="targetObject" ref="manifestProvider"/>
                        <property name="targetMethod" value="getManifest"/>
                   </bean>
                </constructor-arg>
                <constructor-arg index="1" value="${commons.web.version.manifest.atribute}"/>
            </bean>
        </constructor-arg>
        <constructor-arg index="1" value="build-"/>
        <constructor-arg index="2" value="true"/>
    </bean>

    <!-- provee la version del artefacto de maven y el build de hudson si ambos estan disponibles -->
    <bean name="pomAndBuildCommonsWebUtilsVersionProvider"
         class="ar.com.zauber.commons.web.version.impl.AppenderMultipleVersionProvider">
        <constructor-arg index="0">
            <list>
                <ref bean="pomCommonsWebUtilsVersionProvider"/>
                <bean class="ar.com.zauber.commons.web.version.impl.InmutableVersionProvider">
                    <constructor-arg index="0" value="-"/>
                </bean>
                <ref bean="buildCommonsWebUtilsVersionProvider"/>
            </list>
        </constructor-arg>
    </bean>
    

    <!-- provee siempre una version: la fecha en la que se inicio la aplicación
         codificada
       -->
    <bean name="dateCommonsWebUtilsVersionProvider"
         class="ar.com.zauber.commons.web.version.impl.InmutableVersionProvider">
        <constructor-arg index="0">
            <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
                <property name="targetObject">
                    <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
                        <property name="staticMethod" value="java.lang.Long.toHexString"/>
                        <property name="arguments">
                            <list>
                                <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
                                    <property name="targetObject"><bean class="java.util.Date"/></property>
                                    <property name="targetMethod" value="getTime"/>
                                </bean>
                            </list>
                        </property>
                    </bean>
                </property>
                <property name="targetMethod" value="toUpperCase"/>
            </bean>
        </constructor-arg>
    </bean>
</beans>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy