Update of /var/cvs/contributions/didactor2
In directory james.mmbase.org:/tmp/cvs-serv18782

Modified Files:
        install-dependency.xml build.xml 
Log Message:
web.xml


See also: http://cvs.mmbase.org/viewcvs/contributions/didactor2


Index: install-dependency.xml
===================================================================
RCS file: /var/cvs/contributions/didactor2/install-dependency.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- install-dependency.xml      18 Jul 2008 11:50:32 -0000      1.5
+++ install-dependency.xml      18 Jul 2008 12:10:51 -0000      1.6
@@ -12,6 +12,7 @@
   <property name="remote.repository"      value="http://www.mmbase.org/maven"; 
/>
   <property name="remote.repository2"     
value="http://repo1.maven.org/maven/"; />
 
+  <property name="mmbase.ignorefiles"     value="templates/index.jsp" />
 
   <target name="unzipdownloadzip" if="download.zip.present"
           unless="download.dir.present">
@@ -86,7 +87,7 @@
       <mapper type="glob" from="blocks/*" to="*" />
     </unzip>
     <unzip src="${download.dir}/${prefix}${name}-${version}.mmbase-module" 
dest="${dest}">
-      <patternset excludes="${ignorefile},templates">
+      <patternset excludes="${ignorefiles}">
         <include name="templates/**"/>
       </patternset>
       <mapper type="glob" from="templates/*" to="${mmbase.templates.path}*" />
@@ -116,7 +117,7 @@
       <param name="name" value="" />
       <param name="prefix" value="mmbase" />
       <param name="mmbase.templates.path" value="" />
-      <param name="ignorefile" value="templates/index.jsp" />
+      <param name="ignorefiles" value="${mmbase.ignorefiles}" />
     </antcall>
   </target>
 


Index: build.xml
===================================================================
RCS file: /var/cvs/contributions/didactor2/build.xml,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -b -r1.110 -r1.111
--- build.xml   26 Jun 2008 11:43:16 -0000      1.110
+++ build.xml   18 Jul 2008 12:10:51 -0000      1.111
@@ -1,5 +1,453 @@
-<project name="didactor2" default="webapp" basedir=".">
+<project name="didactor2_19" default="webapp" basedir=".">
+
+  <!-- We need the 'foreach' and 'if' tasks, therefore we use ant-contrib -->
+  <taskdef resource="net/sf/antcontrib/antcontrib.properties">
+    <classpath>
+      <pathelement location="lib/ant-contrib-1.0b1.jar"/>
+    </classpath>
+  </taskdef>
+
+  <taskdef name="stringutil" classname="ise.antelope.tasks.StringUtilTask">
+    <classpath>
+      <pathelement location="lib/AntelopeTasks_3.4.2.jar" />
+    </classpath>
+  </taskdef>
+
+  <property file="my.properties"/>
+  <property file="configure.properties"/>
+  <property file="build.properties"/>
+
+
+  <property name="defaultexcludes" value="no" />
+
+  <property name="build.webapp.dir" value="${build.dir}/webapp" />
+
+
+  <property name="download.dir"           location="${basedir}/download" />
+  <property name="war.dir"                value="${build.dir}" />
+  <property name="mmbase.version"         value="1.9.0-SNAPSHOT" />
+
+  <property name="mmbaseroot.language"     value="en" />
+  <property name="mmbaseroot.datadir"      value="." /> <!-- defaults to 
WEB-INF/data -->
+
+  <property name="example.war.filter"      value="mynews,myyahoo,mycompany" />
+
+  <property name="dest" value="${build.webapp.dir}" />
+  <property name="jardest" value="${build.webapp.dir}/WEB-INF/lib" />
+
+  <property name="mmbase.ignorefiles"     
value="templates/index.jsp,templates/WEB-INF/web.xml" />
+
+  <import file="install-dependency.xml" />
+
+  <target name="create.dirs">
+    <mkdir dir="${build.dir}" />
+    <mkdir dir="${build.dir}/classes" />
+    <mkdir dir="${build.webapp.dir}" />
+    <mkdir dir="${build.webapp.dir}/WEB-INF" />
+    <mkdir dir="${build.webapp.dir}/WEB-INF/config" />
+    <mkdir dir="${build.webapp.dir}/WEB-INF/lib" />
+  </target>
+
+
+  <target name="webapp" depends="minimalistic,create.dirs,build" />
+
+  <target name="build"  depends="minimalistic,editwizard">
+    <echo message="Building components: ${components}" />
+    <delete file="${build.webapp.dir}/WEB-INF/web.xml" />
+
+    <foreach list="${components}" target="build.component" inheritall="true" 
param="component" />
+    <foreach list="${providers}" target="build.provider" inheritall="true" 
param="provider" />
+
+     <ant antfile="configure.xml" target="config"/>
+     <if>
+       <available file="${build.webapp.dir}/WEB-INF/config/applications" 
type="dir" />
+       <then>
+         <copy todir="${build.webapp.dir}/WEB-INF/config/builders" 
flatten="yes">
+           <!--
+                flatten yes? having builders in a sensible sub-dir would make 
life a bit better
+                bearable ...
+                Btw, putting the builders under config/applications is 
deprecated.
+                Put them under config/builders directly, in a nice sub-dir.
+           -->
+           <fileset dir="${build.webapp.dir}/WEB-INF/config/applications">
+             <include name="**/builders/*.xml"/>
+           </fileset>
+         </copy>
+       </then>
+     </if>
+  </target>
+
+  <target name="compileonly">
+    <echo message="Only compiling all classes" />
+    <foreach list="${components}" target="compile.component" inheritall="true" 
param="component" />
+  </target>
+
+  <target name="clean">
+    <delete dir="${build.dir}" />
+  </target>
+
+
+  <target name="config">
+    <ant antfile="configure.xml" target="config"/>
+  </target>
+
+  <target name="build.provider">
+    <echo message="Building provider ${provider}" />
+
+    <!-- copy templates -->
+    <if>
+      <available file="src/core/templates/${provider}" type="dir" />
+      <then>
+        <echo message="Copying templates from src/core/templates/${provider}" 
/>
+        <echo message="Warning: putting provider templates in 
/src/core/templates is deprecated,
+                       consider using /providers/${provider}/templates instead 
${defaultexclude} "/>
+        <copy todir="${build.webapp.dir}/${provider}"
+              overwrite="true" preservelastmodified="true">
+          <fileset
+              defaultexcludes="${defaultexcludes}"
+              dir="src/core/templates/${provider}">
+            <include name="**"/>
+            <exclude name="templates/**"/>
+          </fileset>
+        </copy>
+      </then>
+      <else>
+        <if>
+          <available file="providers/${provider}/templates" type="dir" />
+          <then>
+            <echo message="Copying templates from 
providers/${provider}/templates" />
+            <copy todir="${build.webapp.dir}/${provider}" overwrite="true">
+              <fileset
+                  defaultexcludes="${defaultexcludes}"
+                  dir="providers/${provider}/templates">
+                <include name="**"/>
+              </fileset>
+            </copy>
+          </then>
+          <else>
+            <echo message="WARNING! provider ${provider} does not have any 
templates in /src/core/templates/${provider} or 
/providers/${provider}/templates"/>
+          </else>
+        </if>
+      </else>
+    </if>
+    <if>
+     <available file="providers/${provider}/templates.zip" type="dir" />
+     <then>
+        <unzip dest="${build.webapp.dir}">
+          <fileset dir="providers/${provider}/templates.zip">
+            <include name="*.zip" />
+            <include name="*.war" />
+          </fileset>
+        </unzip>
+     </then>
+    </if>
+    <if>
+     <available file="providers/${provider}/webinf" type="dir" />
+     <then>
+      <echo message="Copying WEB-INF files from providers/${provider}/webinf" 
/>
+        <copy todir="${build.webapp.dir}/WEB-INF" overwrite="true">
+          <fileset
+              defaultexcludes="${defaultexcludes}"
+              dir="providers/${provider}/webinf">
+            <include name="**"/>
+          </fileset>
+        </copy>
+        <replace file="${build.webapp.dir}/WEB-INF/classes/oscache.properties"
+                 token="$${mmbaseroot.datadir}"
+                 value="${mmbaseroot.datadir}"/>
+      </then>
+    </if>
+  </target>
+
+  <target name="compile.component" depends="minimalistic">
+    <echo message="Compiling component ${component}" />
+    <if>
+      <available file="src/${component}/build.xml" type="file" />
+      <then>
+        <ant dir="src/${component}">
+          <property name="dest" value="${build.webapp.dir}" />
+        </ant>
+      </then>
+    </if>
+    <if>
+      <available file="src/${component}/config" type="dir"/>
+      <then>
+        <echo message="copying src/${component}/config" />
+        <mkdir dir="${build.dir}/classes/${component}/org/mmbase/config" />
+        <copy todir="${build.dir}/classes/${component}/org/mmbase/config"  
preservelastmodified="true">
+          <fileset
+              defaultexcludes="${defaultexcludes}"
+              dir="src/${component}/config">
+            <include name="applications/**" />
+            <include name="builders/**" />
+            <include name="components/**" />
+            <include name="di_components/**" />
+            <include name="translations/**" />
+            <include name="datatypes.xml" />
+          </fileset>
+        </copy>
+      </then>
+    </if>
+
+    <!-- build java sources and create a jar file -->
+    <if>
+      <available file="src/${component}/java" type="dir"/>
+      <then>
+        <path id="classpath">
+          <fileset dir="lib/">
+            <include name="*.jar" />
+          </fileset>
+          <fileset dir="${build.webapp.dir}/WEB-INF/lib">
+            <include name="*.jar" />
+          </fileset>
+        </path>
+        <mkdir dir="${build.dir}/classes/${component}" />
+
+        <copy todir="${build.dir}/classes/${component}">
+          <fileset
+              defaultexcludes="${defaultexcludes}"
+              dir="src/${component}/java">
+            <include name="**/*.properties" />
+            <include name="**/*.xsd" />
+            <include name="**/*.xml" />
+            <exclude name="**/*.java"/>
+          </fileset>
+        </copy>
+
+
+        <javac srcdir="src/${component}/java"
+               destdir="${build.dir}/classes/${component}"
+               deprecation="off"
+               debug="yes"
+               classpathref="classpath" />
+
+        <if>
+          <!-- pretty ridiculous. See DIDACTOR-4
+          -->
+          <available file="src/${component}/java/hibernate.cfg.xml" 
type="file"/>
+          <then>
+            <!-- hibernate configuration -->
+            <replace file="${build.dir}/classes/reports/hibernate.cfg.xml"
+                     token="$${jdbc.driver}"
+                     value="${jdbc.driver}"/>
+            <replace file="${build.dir}/classes/reports/hibernate.cfg.xml"
+                     token="$${jdbc.host}"
+                     value="${jdbc.host}"/>
+            <replace file="${build.dir}/classes/reports/hibernate.cfg.xml"
+                     token="$${jdbc.port}"
+                     value="${jdbc.port}"/>
+            <replace file="${build.dir}/classes/reports/hibernate.cfg.xml"
+                     token="$${jdbc.database}"
+                     value="${jdbc.database}"/>
+            <replace file="${build.dir}/classes/reports/hibernate.cfg.xml"
+                     token="$${jdbc.user}"
+                     value="${jdbc.user}"/>
+            <replace file="${build.dir}/classes/reports/hibernate.cfg.xml"
+                     token="$${jdbc.password}"
+                     value="${jdbc.password}"/>
+          </then>
+        </if>
+
+        <if>
+          <available file="src/${component}/metainf" />
+          <then>
+            <jar 
jarfile="${build.webapp.dir}/WEB-INF/lib/didactor-${component}.jar"
+                 includes="**"
+                 basedir="${build.dir}/classes/${component}">
+              <metainf dir="src/${component}/metainf">
+                <include name="**" />
+              </metainf>
+            </jar>
+          </then>
+          <else>
+            <jar 
jarfile="${build.webapp.dir}/WEB-INF/lib/didactor-${component}.jar"
+                 includes="**"
+                 basedir="${build.dir}/classes/${component}"
+                 />
+          </else>
+        </if>
+      </then>
+    </if>
+  </target>
+
+  <target name="build.component" depends="compile.component">
+    <echo message="Building component ${component}" />
+
+    <!-- copy templates -->
+    <if>
+     <available file="src/${component}/templates" type="dir" />
+     <then>
+        <if>
+          <equals arg1="${component}" arg2="core"/>
+          <then>
+            <copy todir="${build.webapp.dir}" preservelastmodified="true">
+              <fileset
+                  defaultexcludes="${defaultexcludes}"
+                  dir="src/${component}/templates">
+                <include name="**"/>
+              </fileset>
+            </copy>
+          </then>
+          <else>
+            <copy todir="${build.webapp.dir}" overwrite="true" 
preservelastmodified="true">
+              <fileset
+                  defaultexcludes="${defaultexcludes}"
+                  dir="src/${component}/templates">
+                <include name="**"/>
+                <exclude name="CVS/**"/>
+                <exclude name="templates/**"/>
+                <exclude name="editwizards/**/extra_*.xml"/>
+              </fileset>
+            </copy>
+          </else>
+        </if>
+       </then>
+       <else>
+         <echo message="no templates dir in ${component}" />
+       </else>
+    </if>
+
+    <!-- copy component blocks -->
+    <if>
+     <available file="src/${component}/blocks" type="dir" />
+     <then>
+       <copy todir="${build.webapp.dir}/mmbase/components/${component}" 
overwrite="true" preservelastmodified="true">
+         <fileset
+             defaultexcludes="${defaultexcludes}"
+             dir="src/${component}/blocks">
+         </fileset>
+       </copy>
+     </then>
+    </if>
+
+    <!-- copy webinf -->
+    <if>
+      <available file="src/${component}/webinf" type="dir" />
+      <then>
+        <copy todir="${build.webapp.dir}/WEB-INF" preservelastmodified="true">
+          <fileset
+              defaultexcludes="${defaultexcludes}"
+              dir="src/${component}/webinf">
+            <include name="**"/>
+            <exclude name="**/taglib-extra.tld" />
+            <exclude name="**/web-extra.xml" />
+          </fileset>
+        </copy>
+        <if>
+          <available file="src/${component}/webinf/web-extra.xml" />
+          <then>
+            <property name="mergeXmlFile"
+                      location="src/${component}/webinf/web-extra.xml" />
+            <xslt style="merge-web.xml.xslt"
+                  in="${build.webapp.dir}/WEB-INF/web.xml"
+                  out="${build.webapp.dir}/WEB-INF/web.help.xml">
+              <param name="mergeXmlFile" expression="${mergeXmlFile}" />
+            </xslt>
+            <move file="${build.webapp.dir}/WEB-INF/web.help.xml"
+                  tofile="${build.webapp.dir}/WEB-INF/web.xml" />
+          </then>
+        </if>
+
+      </then>
+    </if>
+
+
+    <!-- copy configuration files -->
+    <if>
+      <available file="src/${component}/config" type="dir" />
+      <then>
+        <copy todir="${build.webapp.dir}/WEB-INF/config"
+              preservelastmodified="true">
+          <fileset
+              defaultexcludes="${defaultexcludes}"
+              dir="src/${component}/config">
+            <include name="**"/>
+          </fileset>
+        </copy>
+      </then>
+    </if>
+
+
+    <!-- merge editwizard definitions -->
+    <if>
+      <available file="src/${component}/templates/editwizards/data/config/" />
+      <then>
+        <echo message="Merging wizards of '${component}'" />
+        <foreach target="mergewizards" param="file">
+          <path>
+            <fileset dir="src/${component}/templates/editwizards/data/config/">
+              <include name="**/extra_*.xml" />
+            </fileset>
+          </path>
+        </foreach>
+      </then>
+    </if>
+  </target>
+
+  <target name="mergewizards">
+    <echo>MergeWizards: ${file}</echo>
+    <pathconvert property="cleaned_filename" dirsep="${file.separator}" 
pathsep="${path.separator}">
+      <path path="${file}" />
+      <mapper>
+        <globmapper 
from="${basedir}/src/${component}/templates/editwizards/data/config/*" to="*" 
handledirsep="yes" />
+      </mapper>
+    </pathconvert>
+    <pathconvert property="destfile" dirsep="${file.separator}" 
pathsep="${path.separator}">
+      <path 
path="${build.webapp.dir}/editwizards/data/config/${cleaned_filename}" />
+    </pathconvert>
+    <echo>Destfile: ${destfile}</echo>
+    <if>
+      <available file="${destfile}" />
+      <then>
+        <echo>Merging in extra wizards defs for ${component}: 
${cleaned_filename}</echo>
+        <concat destfile="${destfile}" append="true">
+          <path path="${file}" />
+        </concat>
+      </then>
+      <else>
+        <echo>Copying extra wizards defs for ${component}: 
${cleaned_filename}</echo>
+        <copy file="${file}" tofile="${destfile}" preservelastmodified="true" 
/>
+      </else>
+    </if>
+  </target>
+
+
+  <target name="war.name.postfix" unless="war.name.postfix">
+    <property name="tag"         value="$Name:  $" />
+    <if>
+      <contains string="${tag}" substring="Name:  $" />
+      <then>
+        <tstamp />
+        <property name="war.name.postfix"         value="${DSTAMP}_${TSTAMP}" 
/>
+      </then>
+      <else>
+        <!--
+             WTF, I hate Ant
+             2 external libraries and 8 lines to do something completely 
trivial:
+        -->
+        <stringutil string="${tag}" property="tag.length">
+          <length/>
+        </stringutil>
+        <math result="shorter" operand1="${tag.length}" operation="-" 
operand2="2" datatype="int"/>
+        <stringutil string="${tag}" property="tag.name">
+          <substring beginindex="7" endindex="${shorter}" />
+        </stringutil>
+        <property name="war.name.postfix" value=".${tag.name}" />
+      </else>
+    </if>
+    <tstamp />
+    <property name="war.name.postfix"         value="${DSTAMP}_${TSTAMP}" />
+
+  </target>
+
+  <target name="war" depends="webapp,war.name.postfix">
+    <!-- there also exists a 'war' target, why not use it? -->
+    <jar destfile="${war.dir}/${war.name}${war.name.postfix}.war"
+         basedir="${build.webapp.dir}"
+         defaultexcludes="${defaultexcludes}"
+         />
+  </target>
+
 
-  <import file="build19.xml" />
 
 </project>
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to