Subversion Repositories aduna

[/] [org.openrdf/] [alibaba/] [tags/] [2.0-beta13/] [build.xml] - Rev 11341

Compare with Previous | Blame | View Log

<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="alibaba" default="help" basedir=".">

    <property name="docs" value="src/doc" />
    <property name="xdocs" value="target/site" />

    <target name="help" description="Usage information">
        <echo message="AliBaba Release Builder" />
        <echo message="========================" />
        <echo message="The purpose of this Ant build file is to create releases for AliBaba." />
        <echo message="It is not intended to capture every aspect of project development. Please use Maven for development purposes." />
        <echo message=" " />
        <echo message="Available targets: " />
        <echo message=" " />
        <echo message="  clean                          : cleans targets" />
        <echo message="  build                          : compiles classes" />
        <echo message="  package                        : package for release" />
        <echo message="  -Dsgmltools=sgmltools docs     : create documentation" />
        <echo message="  -Declipse.workspace=.. eclipse : create eclipse projects" />
    </target>

    <target name="clean" description="Removes release artifacts">
        <antcall target="mvn">
            <param name="args" value="clean" />
        </antcall>
    </target>

    <target name="eclipse" depends="eclipse-add-maven-repo" description="Creates .project and .classpath files">
        <antcall target="mvn">
            <param name="args" value="-DdownloadSources=true eclipse:eclipse" />
        </antcall>
    </target>

    <target name="eclipse-add-maven-repo" description="Sets the classpath variable M2_REPO" if="eclipse.workspace">
        <antcall target="mvn">
            <param name="args" value="-Declipse.workspace=${eclipse.workspace} eclipse:add-maven-repo" />
        </antcall>
    </target>

    <target name="build" description="Compiles the Java classes">
        <antcall target="mvn">
            <param name="args" value="--offline -Dmaven.test.skip=true source:jar package install" />
        </antcall>
        <antcall target="build-sdk"/>
    </target>

    <target name="package" depends="mvn-build,build-sdk" description="Create release artifacts">
    </target>

    <target name="mvn-build">
        <antcall target="mvn">
            <param name="args" value="-U source:jar install" />
        </antcall>
    </target>

    <target name="build-sdk">
        <xmlproperty file="pom.xml" />
        <mkdir dir="target" />
        <mkdir dir="lib" />
        <property name="lib.dir" location="lib" />
        <property name="target.dir" location="target" />
        <path id="libcp">
            <fileset dir="${lib.dir}">
                <include name="*.jar" />
            </fileset>
        </path>
        <pathconvert property="libpath" refid="libcp" pathsep=" " dirsep="/">
            <map from="${target.dir}/" to="" />
            <map from="${lib.dir}/" to="../lib/" />
        </pathconvert>
        <antcall target="concat-file">
            <param name="path" value="META-INF/services/org.openrdf.repository.config.RepositoryFactory"/>
        </antcall>
        <antcall target="concat-file">
            <param name="path" value="META-INF/services/org.openrdf.sail.config.SailFactory"/>
        </antcall>
        <antcall target="concat-file">
            <param name="path" value="META-INF/services/org.openrdf.repository.object.composition.BehaviourFactory"/>
        </antcall>
        <antcall target="concat-file">
            <param name="path" value="META-INF/org.openrdf.annotations"/>
        </antcall>
        <antcall target="concat-file">
            <param name="path" value="META-INF/org.openrdf.behaviours"/>
        </antcall>
        <antcall target="concat-file">
            <param name="path" value="META-INF/org.openrdf.concepts"/>
        </antcall>
        <antcall target="concat-file">
            <param name="path" value="META-INF/org.openrdf.datatypes"/>
        </antcall>
        <property name="excludes" value="META-INF/MANIFEST.MF META-INF/services/org.openrdf.repository.config.RepositoryFactory META-INF/services/org.openrdf.sail.config.SailFactory META-INF/services/org.openrdf.repository.object.composition.BehaviourFactory META-INF/org.openrdf.annotations META-INF/org.openrdf.behaviours META-INF/org.openrdf.concepts META-INF/org.openrdf.datatypes" />
        <jar destfile="target/openrdf-alibaba-${project.version}.jar" index="true" filesetmanifest="skip">
            <manifest>
                <attribute name="Built-By" value="${user.name}" />
                <attribute name="Program-Version" value="${project.version}" />
                <attribute name="Class-Path" value="${libpath}" />
            </manifest>
            <zipfileset dir="target/services/META-INF" prefix="META-INF" />
            <zipfileset src="model/target/alibaba-model-${project.version}.jar" excludes="${excludes}" />
            <zipfileset src="auditing-sail/target/alibaba-sail-auditing-${project.version}.jar" excludes="${excludes}" />
            <zipfileset src="query-repository/target/alibaba-repository-query-${project.version}.jar" excludes="${excludes}" />
            <zipfileset src="optimistic-repository/target/alibaba-repository-optimistic-${project.version}.jar" excludes="${excludes}" />
            <zipfileset src="object-composition/target/alibaba-composition-object-${project.version}.jar" excludes="${excludes}" />
            <zipfileset src="object-repository/target/alibaba-repository-object-${project.version}.jar" excludes="${excludes}" />
            <zipfileset src="object-server/target/alibaba-server-object-${project.version}.jar" excludes="${excludes}" />
            <zipfileset src="runtime/target/alibaba-runtime-${project.version}.jar" excludes="${excludes}" />
        </jar>
        <concat destfile="target/README.txt" fixlastline="yes">
            <fileset dir="." includes="src/site/apt/index.apt"/>
            <fileset dir="." includes="object-server/src/site/apt/index.apt"/>
            <fileset dir="." includes="object-repository/src/site/apt/index.apt"/>
            <fileset dir="." includes="optimistic-repository/src/site/apt/index.apt"/>
        </concat>
        <zip destfile="target/openrdf-alibaba-${project.version}.zip">
            <zipfileset dir="." includes="*.txt" />
            <zipfileset dir="target" includes="README.txt" />
            <zipfileset dir="lib" prefix="lib" />
            <zipfileset dir="target" includes="*.jar" prefix="dist" />
            <zipfileset dir="src/dist/bin" prefix="bin" />
            <zipfileset dir="target/services/META-INF" prefix="src/META-INF" />
            <zipfileset src="model/target/alibaba-model-${project.version}-sources.jar" prefix="src" excludes="${excludes}" />
            <zipfileset src="auditing-sail/target/alibaba-sail-auditing-${project.version}-sources.jar" prefix="src" excludes="${excludes}" />
            <zipfileset src="query-repository/target/alibaba-repository-query-${project.version}-sources.jar" prefix="src" excludes="${excludes}" />
            <zipfileset src="optimistic-repository/target/alibaba-repository-optimistic-${project.version}-sources.jar" prefix="src" excludes="${excludes}" />
            <zipfileset src="object-composition/target/alibaba-composition-object-${project.version}-sources.jar" prefix="src" excludes="${excludes}" />
            <zipfileset src="object-repository/target/alibaba-repository-object-${project.version}-sources.jar" prefix="src" excludes="${excludes}" />
            <zipfileset src="object-server/target/alibaba-server-object-${project.version}-sources.jar" prefix="src" excludes="${excludes} META-INF/org.openrdf.annotations META-INF/org.openrdf.behaviours META-INF/org.openrdf.concepts" />
            <zipfileset src="runtime/target/alibaba-runtime-${project.version}-sources.jar" prefix="src" excludes="${excludes}" />
        </zip>
    </target>

    <target name="docs" description="Create user and system documentation only">
        <antcall target="javadocs"/>
        <antcall target="owldocs"/>
        <antcall target="site"/>
    </target>

    <target name="javadocs">
        <antcall target="mvn">
            <param name="args" value="-Dmaven.test.skip=true compile javadoc:javadoc" />
        </antcall>
    </target>

    <target name="owldocs">
        <xslt includes="*/src/main/owl/*.owl" destdir="target/site/owldocs/" extension=".html" style="ns-schema.xsl" filenameparameter="htmlfile"/>
        <move todir="target/site/owldocs/" flatten="true">
            <fileset dir="target/site/owldocs/">
                <include name="**/*.html"/>
                <exclude name="index.html"/>
            </fileset>
        </move>
        <replaceregexp match="\s*(&lt;a )(href=&quot;[^:]*)\.owl(\#?[^&gt;]*&gt;)([^&lt;]*)(&lt;/a&gt;)" replace="&lt;!-- \4 --&gt;\1\2.html\3\4\5" byline="true">
            <fileset dir="target/site/owldocs/">
                <include name="*.html"/>
                <exclude name="index.html"/>
            </fileset>
        </replaceregexp>
        <concat destfile="target/site/owldocs/index.html" append="false">
          <union>
            <sort>
              <tokens>
                    <fileset dir="target/site/owldocs/">
                        <include name="*.html"/>
                        <exclude name="index.html"/>
                    </fileset>
                <linetokenizer includedelims="true" />
              </tokens>
            </sort>
          </union>
            <filterchain>
                <linecontainsregexp>
                    <regexp pattern="&lt;link rel=&quot;self&quot;"/>
                </linecontainsregexp>
                <tokenfilter>
                    <linetokenizer/>
                    <replaceregex pattern="&lt;link[^&gt;]*href=&quot;([^&quot;]*)\.owl&quot;[^&gt;]*title=&quot;([^&quot;]*)&quot;[^&gt;]*&gt;" replace="&lt;br /&gt;&lt;a href='\1.html' target='content'&gt;\2&lt;/a&gt;"/>
                </tokenfilter>
            </filterchain>
            <header filtering="no" trimleading="yes"><![CDATA[
                <html><head><title>AliBaba OWL Documentation</title></head><body style="margin:0px">
                <iframe name="content" width="80%" height="100%" style="float:right;border-width:0px"></iframe>
                <div style="width:20%">
                <div style="height:20%;overflow:auto">
                <div style="padding:8px">
                <b>Ontologies</b>
            ]]>
            </header>
            <footer filtering="no" trimleading="yes"><![CDATA[
                </div></div>
                <div style="height:80%;overflow:auto">
                <div style="padding:8px">
                <b>All Resources</b>
            ]]>
            </footer>
        </concat>
        <concat destfile="target/site/owldocs/index.html" append="true">
          <union>
            <sort>
              <tokens>
                    <fileset dir="target/site/owldocs/">
                        <include name="*.html"/>
                        <exclude name="index.html"/>
                    </fileset>
                <linetokenizer includedelims="true" />
              </tokens>
            </sort>
          </union>
            <filterchain>
                <linecontainsregexp>
                    <regexp pattern="&lt;a href=&quot;[^:]*\.html\#[^&quot;]"/>
                </linecontainsregexp>
                <filterreader classname="org.apache.tools.ant.filters.ReplaceTokens">
                    <param type="tokenchar" name="begintoken" value="&lt;" />
                    <param type="token" name="a" value="&lt;br /&gt;&lt;a target='content' "/>
                    <param type="tokenchar" name="endtoken" value=" " />
                </filterreader>
            </filterchain>
            <footer filtering="no" trimleading="yes"><![CDATA[
                </div></div></div>
                </body></html>
            ]]>
            </footer>
        </concat>
    </target>

    <target name="site">
        <antcall target="mvn">
            <param name="args" value="site site:deploy" />
        </antcall>
        <xmlproperty file="pom.xml" />
        <zip destfile="target/alibaba-site-${project.version}.zip" basedir="target/website" />
    </target>

    <target name="docbook" if="sgmltools">
        <replaceregexp match="&gt;&lt;dummy" replace="" flags="gm" file="${docs}/user-guide.sgml" />
        <replaceregexp match="&lt;dummy&gt;" replace="" flags="gm" file="${docs}/user-guide.sgml" />
        <replaceregexp match="&lt;/dummy&gt;" replace="" flags="gm" file="${docs}/user-guide.sgml" />
        <echo>${sgmltools} --backend=onehtml getting-started.sgml</echo>
        <exec dir="${docs}" executable="${sgmltools}" failonerror="true">
            <arg value="--backend=onehtml" />
            <arg value="user-guide.sgml" />
        </exec>
        <move file="${docs}/user-guide.html" tofile="${xdocs}/user-guide.html" />
    </target>

    <target name="mvn">
        <echo message="mvn -B ${args}" />
        <exec os="Windows XP, Windows Vista" executable="mvn.bat" failonerror="true">
            <arg line="-B ${args}" />
        </exec>
        <exec os="Linux, Mac OS X" executable="mvn" failonerror="true">
            <arg line="-B ${args}" />
        </exec>
    </target>

    <target name="concat-file">
        <echo message="${path}"/>

        <concat destfile="target/services/${path}" fixlastline="yes">
            <fileset dir="." includes="*/src/main/resources/${path}"/>
        </concat>
    </target>

</project>

Compare with Previous | Blame