blob: bcfb697ddc6193ad40a4815de61c89db57ae0c21 [file] [log] [blame]
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<project basedir="." default="help">
<!--Set your elcipse home directory -->
<property environment="env" />
<property name="eclipse.home" value="${env.ECLIPSE_HOME}"></property>
<!-- properties file to load the versions of dependencies -->
<property file="../../../etc/project.properties"/>
<property name="service.plugin.version" value="Axis2_Service_Archiver_${version_number}"></property>
<property name="service.plugin.zip.name" value="axis2-eclipse-service-archiver-wizard.zip"></property>
<property name="src" value="./src"></property>
<property name="service.src.dir" value="../axis2-eclipse-service-plugin/src/main/java"></property>
<property name="output" value="../target/eclipse_plugins"></property>
<property name="output.target" value="${output}/release"></property>
<property name="service.output.dir" value="${output}/service-archiver"></property>
<property name="plugin.output.dir" value="${output}/plugin"></property>
<property name="service.plugin.output.dir" value="${plugin.output.dir}/${service.plugin.version}"></property>
<property name="source.dir.name" value="src"></property>
<property name="lib.dir.name" value="lib"></property>
<property name="bin.dir.name" value="bin"></property>
<property name="help.dir.name" value="help"></property>
<property name="icons.dir.name" value="icons"></property>
<property name="plugin.project.file.name" value=".project"></property>
<property name="plugin.classpath.file.name" value=".classpath"></property>
<property name="plugin.help.file.name" value="help_toc.xml"></property>
<property name="tool_docs_version" value="1_4"></property>
<property name="service.resource.dir" value="../conf/service"></property>
<property name="service.help.resource.file" value="../../../modules/documentation/xdocs/tools/${tool_docs_version}/eclipse/servicearchiver-plugin.html"></property>
<property name="service.help.images.dir" value="../../../modules/documentation/xdocs/tools/${tool_docs_version}/eclipse/images"></property>
<property name="axis2.lib.dir" value="../../../target/lib"></property>
<!--Filter tockens for the copy command to filter the versions of external dependencies -->
<filter token="version_number" value="${version_number}" />
<filter token="ant.version" value="${ant.version}" />
<filter token="commons.logging.version" value="${commons.logging.version}" />
<filter token="log4j.version" value="${log4j.version}" />
<!--Service wizard libraries -->
<fileset id="service.libs" dir="${axis2.lib.dir}">
<include name="ant-${ant.version}.jar" />
<include name="log4j-${log4j.version}.jar" />
<include name="commons-logging-${commons.logging.version}.jar" />
<include name="axis2-${version_number}.jar" />
</fileset>
<!-- Default target to generate all the services -->
<target name="all">
<antcall target="clean" />
<antcall target="generate-service-plugin"/>
<antcall target="release-plugin"/>
</target>
<!-- init-->
<target name="init">
<mkdir dir="${output}"></mkdir>
<mkdir dir="${service.output.dir}"></mkdir>
</target>
<!-- Service Archiver Project -->
<!-- Generete the Service Project that can be imported as a readymade eclipse project in to workspace -->
<target name="generate-service-project" depends="init">
<!-- delete the existing files -->
<delete file="plugin.xml" />
<delete file="build.properties" />
<delete file=".project" />
<delete file=".classpath" />
<delete dir="icons" />
<delete dir="help" />
<delete dir="lib" />
<!-- Copy with the filtering on-->
<copy todir="." filtering="on" >
<fileset dir="${service.resource.dir}">
<include name="plugin.xml" />
<include name="build.properties" />
<include name="${plugin.classpath.file.name}" />
</fileset>
</copy>
<!-- copy the libs -->
<mkdir dir="${lib.dir.name}" />
<copy todir="${lib.dir.name}">
<fileset refid="service.libs" />
</copy>
<!-- copy the icons-->
<mkdir dir="${icons.dir.name}" />
<copy todir="${icons.dir.name}">
<fileset dir="${service.resource.dir}/${icons.dir.name}" />
</copy>
<!-- copy the other project files-->
<copy todir=".">
<fileset file="${service.resource.dir}/${plugin.project.file.name}" />
<fileset file="${service.resource.dir}/${plugin.help.file.name}" />
</copy>
</target>
<!-- generate the service archiver project -->
<target name="create-service-project" depends="init">
<!-- copy the source -->
<copy todir="${service.output.dir}/${source.dir.name}">
<fileset dir="${service.src.dir}/" excludes="**/codegen/**/*.java"/>
</copy>
<!-- Copy the other stuff -->
<copy todir="${service.output.dir}" filtering="on">
<fileset dir="${service.resource.dir}" excludes="**/*.gif"></fileset>
</copy>
<!-- Copy the icons folder -->
<copy todir="${service.output.dir}">
<fileset dir="${service.resource.dir}" includes="**/*.gif" ></fileset>
</copy>
<!-- create bin directory -->
<mkdir dir="${service.output.dir}/${bin.dir.name}"></mkdir>
<!-- create the help directory -->
<mkdir dir="${service.output.dir}/${help.dir.name}"></mkdir>
<!-- copy the help directory -->
<copy todir="${service.output.dir}/${help.dir.name}">
<fileset file="${service.help.resource.file}"></fileset>
</copy>
<!-- copy the libraries to the plugin-->
<copy todir="${service.output.dir}/${lib.dir.name}">
<fileset refid="service.libs" />
</copy>
<available property="images.dir" file="${service.help.images.dir}" type="dir" value="${service.help.images.dir}"/>
<copy todir="${service.output.dir}/${help.dir.name}/images">
<fileset dir="${images.dir}"/>
</copy>
</target>
<!--Generate the service plugin -->
<target name="generate-service-plugin" depends="init,create-service-project">
<mkdir dir="${service.plugin.output.dir}"></mkdir>
<!-- copy the plugin.xml,build.properties and help_toc.xml -->
<copy todir="${service.plugin.output.dir}">
<fileset dir="${service.output.dir}" >
<include name="plugin.xml" />
<include name="help_toc.xml" />
<include name="build.properties" />
<include name="**/ServiceResources.properties" />
</fileset>
</copy>
<!-- copy the help directory-->
<copy todir="${service.plugin.output.dir}/help">
<fileset dir="${service.output.dir}/help" />
</copy>
<!-- copy the icons directory-->
<copy todir="${service.plugin.output.dir}/icons">
<fileset dir="${service.output.dir}/icons" />
</copy>
<!-- copy the libraries to the plugin-->
<copy todir="${service.plugin.output.dir}/${lib.dir.name}">
<fileset refid="service.libs" />
</copy>
<!-- copy the sources to the plugin-->
<copy todir="${service.plugin.output.dir}/${source.dir.name}">
<fileset dir="${service.output.dir}/${source.dir.name}">
<include name="org/**" />
</fileset>
</copy>
<!-- compile the plugin java files -->
<delete dir="${service.plugin.output.dir}/class"></delete>
<mkdir dir="${service.plugin.output.dir}/class"></mkdir>
<javac srcdir="${service.output.dir}/${source.dir.name}"
destdir="${service.plugin.output.dir}/class"
includes="org/apache/axis2/**">
<classpath>
<fileset dir="${service.plugin.output.dir}/lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${eclipse.home}/plugins/">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
<!--Make available the resources for the plugin -->
<copy todir="${service.plugin.output.dir}/class">
<fileset dir="${service.output.dir}/${source.dir.name}" >
<include name="**/ServiceResources.properties" />
<exclude name="**/*.class" />
</fileset>
</copy>
<!-- create the Axis2_Service_Archiver.jar -->
<jar destfile="${service.plugin.output.dir}/Axis_Service_Archiver.jar"
basedir="${service.plugin.output.dir}/class"
includes="org/apache/**"
/>
<delete dir="${service.plugin.output.dir}/src"></delete>
<delete dir="${service.plugin.output.dir}/class"></delete>
</target>
<!--Install the service plugin -->
<target name="install-service-plugin" depends="init,generate-service-project,generate-service-plugin">
<delete dir="${eclipse.home}/plugins/${service.plugin.version}"></delete>
<copy todir="${eclipse.home}/plugins">
<fileset dir="${plugin.output.dir}"/>
</copy>
</target>
<!--Relese the plugins (this will install the plugins and build the zip version)-->
<target name="release-plugin">
<mkdir dir="${output.target}" />
<mkdir dir="${output.target}/service/${service.plugin.version}" />
<antcall target="generate-service-plugin"/>
<copy todir="${output.target}/service/${service.plugin.version}">
<fileset dir="${plugin.output.dir}/${service.plugin.version}"/>
</copy>
<!--Zip the eclipse plugins to eclipse_plugins/target -->
<zip destfile="${output.target}/${service.plugin.zip.name}"
basedir="${output.target}/service"
update="true"
/>
<delete dir="${output.target}/service" />
</target>
<!-- Clean the directory -->
<target name="clean">
<delete dir="${service.output.dir}"></delete>
<delete dir="${plugin.output.dir}/${service.plugin.version}"></delete>
<delete file="${output.target}/${service.file.zip.name}"></delete>
</target>
<!-- help, list of targets -->
<target name="help">
<echo message="****************************************************************************" />
<echo message="** Eclipse Service Archiver Plugin Build **" />
<echo message="** pre-requisit : env.ECLIPSE_HOME **" />
<echo message="** **" />
<echo message="** **" />
<echo message="** build eclipse project : generate-service-project **" />
<echo message="** **" />
<echo message="** build eclipse plugin : generate-service-plugin **" />
<echo message="** **" />
<echo message="** install plugin : install-service-plugin **" />
<echo message="** **" />
<echo message="** release eclipse plugin : release-plugin **" />
<echo message="** **" />
<echo message="** **" />
<echo message="****************************************************************************" />
</target>
</project>