[Yanel-dev] Building/Compiling resources more efficiently

Michael Wechner michael.wechner at wyona.com
Wed Jan 7 23:38:51 CET 2009


simon litwan schrieb:
> Michael Wechner schrieb:
>> Michael Wechner schrieb:
>>> Alec Bickerton schrieb:
>>>> Michael Wechner wrote:
>>>>  
>>>>> Hi
>>>>>
>>>>> Just as a reminder, but also for discussion:
>>>>>
>>>>> One can build/compile a resource without having to trigger to whole
>>>>> build process by using the -f option, for example
>>>>>
>>>>> ./build.sh -f
>>>>> /home/michi/src/wyona/SOME_CUSTOM_PROJECT/res-types/shared/build.xml
>>>>>
>>>>> whereas one needs to configure the yanel.source.version within
>>>>>
>>>>> res-types/shared/src/build/dependencies.xml
>>>>>
>>>>> by setting for example
>>>>>
>>>>> <target name="dependencies" description="Dependencies">
>>>>>    <property name="yanel.source.version" value="1.0-dev-rREVISION"/>
>>>>>
>>>>> this makes developing Java classes much faster.
>>>>>
>>>>> The problem is a bit that one needs to set this property 
>>>>> explicitely and
>>>>> shouldn't leave it there, because in case Yanel source should
>>>>> change this version number, then old libs will be used or one will
>>>>> receive a compile error.
>>>>>
>>>>> In order to solve this I thought about introducing an environment
>>>>> variable, for example
>>>>>
>>>>> export YANEL_SOURCE_HOME=/home/michi/src/wyona/public/yanel/trunk
>>>>>
>>>>> which would allow the build process to check what Yanel source 
>>>>> version is.
>>>>>
>>>>> WDYT?
>>>>>     
>>>>
>>>> Interesting.
>>>>
>>>> How about having a build.xml in the realms root directory that simply
>>>> creates a jar against the libs in a Barebones Yanel. then copies this
>>>> .jar to the WEB-INF/lib of Yanel.
>>>>   
>>>
>>> this is what some realms already have, for example the "Yanel 
>>> website" realm
>>>
>>> YANEL_HOME/src/realms/yanel-website/build.xml
>>>
>>> but again the problem is how does this build file know where 
>>> YANEL_HOME is  in order to access its properties etc.
>>>
>>> I will create a small prototype within a custom realm/resource and 
>>> test how well this YANEL_HOME env var method works
>>> and report my findings.
>>
>> ok, seems to work fine. I had to add the following lines:
>>
>> <project name="yanel-resource" default="compile">
>>
>>  <property environment="env"/>
>>  <echo message="YANEL_HOME is set to = ${env.YANEL_HOME}"/>
>>
>>  <property file="${env.YANEL_HOME}/src/build/local.build.properties"/>
>>  <property file="${env.YANEL_HOME}/src/build/build.properties"/>
>>
>> for making it compile using YANEL_HOME and also a target
>>
>>  <target name="deploy-lib" depends="compile">
>>    <property name="build.dir" value="${env.YANEL_HOME}/build"/>
>>    <copy 
>> todir="${build.dir}/webapps/${servlet.context.prefix}/WEB-INF/lib">
>>      <fileset dir="build/lib"/>
>>    </copy>
>>    <copy 
>> todir="${tomcat1.home.dir}/webapps/${servlet.context.prefix}/WEB-INF/lib"> 
>>
>> <!--
>>    <copy 
>> todir="${env.YANEL_HOME}/local/apache-tomcat-${tomcat.version}/webapps/${servlet.context.prefix}/WEB-INF/lib"> 
>>
>> -->
>>      <fileset dir="build/lib"/>
>>    </copy>
>>  </target>
>>
>> for allowing to deploy easily only a specific resource lib
>>
>> By adding these few lines one can develop much faster.
> speaks anything against using the built-in property ant.home/../../ 
> (which should point to the yanel-source where you building) instead of 
> having to configure it?

yes, because ant.home might change and then one would have to change the 
"../../" etc.

Cheers

Michi
>
> simon
>>
>> Cheers
>>
>> Michael
>>>
>>> Cheers
>>>
>>> Michael
>>>> Say realm-[realm-name]-lib.jar for example
>>>>
>>>> That would be a step towards easily loadable realms and would speed up
>>>> development. I personally haven't worked on any Yanel classes as yet,
>>>> I'm still getting familiar with it.
>>>>
>>>> Of course when the .jar changes you need to restart Tomcat. Unless we
>>>> write a classloader, I don't see any way around that.
>>>> _______________________________________________
>>>> Yanel-development mailing list
>>>> Yanel-development at wyona.com
>>>> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>>>>   
>>>
>>> _______________________________________________
>>> Yanel-development mailing list
>>> Yanel-development at wyona.com
>>> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>>
>> _______________________________________________
>> Yanel-development mailing list
>> Yanel-development at wyona.com
>> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>
> _______________________________________________
> Yanel-development mailing list
> Yanel-development at wyona.com
> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development



More information about the Yanel-development mailing list