Initial commit of Sigil contribution. (FELIX-1142)


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@793581 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/sigil/bld-ivy/example/felix-log/bldcommon/common.xml b/sigil/bld-ivy/example/felix-log/bldcommon/common.xml
new file mode 100644
index 0000000..8431484
--- /dev/null
+++ b/sigil/bld-ivy/example/felix-log/bldcommon/common.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0">
+<!--
+  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 name="common" 
+         xmlns:ivy="antlib:org.apache.ivy.ant">
+    
+    <dirname property="common.dir" file="${ant.file.common}"/>
+    <property file="${common.dir}/build.properties"/>
+
+    <path id="lib.path.id">
+        <fileset dir="${deps.dir}" />
+    </path>
+
+    <path id="sigil.path.id">
+        <path refid="lib.path.id" />
+        <path location="${classes.dir}" />
+    </path>
+
+    <!-- setup ivy default configuration with some custom info -->
+    <property name="ivy.local.default.root" value="${repository.dir}/local"/>
+    <property name="ivy.shared.default.root" value="${repository.dir}/shared"/>
+
+    <!-- ================================= 
+          target: load-ivy
+         ================================= -->
+    <target name="load-ivy" depends="ivy-taskdefs">
+	<ivy:settings file="${common.dir}/ivysettings.xml" />
+    </target>
+
+    <!-- ================================= 
+          target: ivy-taskdefs
+         ================================= -->
+    <target name="ivy-taskdefs" unless="ivy.loaded">
+    	<property name="ivy.loaded" value="true"/>
+	<echo message="Loading Ivy ... common.dir=${common.dir}"/>
+
+    	<taskdef resource="org/apache/ivy/ant/antlib.xml"
+    	         uri="antlib:org.apache.ivy.ant"
+		 classpath="${ivy.jar}"/>
+
+	<taskdef name="sigil.bundle"
+		 classname="org.cauldron.bld.ant.BundleTask"
+		 classpath="${sigil-ivy-plugin.jar}"/>
+    </target>    
+
+
+
+    <!-- ================================= 
+          target: build (default target)
+         ================================= -->
+    <target name="build" depends="ident, jar, resources" />
+
+    <target name="ident">
+      <echo message="${ant.project.name}"/>
+    </target>
+
+    <!-- ================================= 
+          target: resolve              
+         ================================= -->
+    <target name="resolve" depends="load-ivy, clean-deps"
+    	description="--> resolve and retrieve dependencies with ivy">
+	<mkdir dir="${deps.dir}"/>
+    	<ivy:resolve file="${ivy.file}"/>
+    	<ivy:retrieve pattern="${deps.dir}/[artifact].[ext]" />
+    </target>
+
+    <!-- ================================= 
+          target: install
+         ================================= -->
+    <target name="install" depends="install-version, build"
+    	description="--> publish this project in the local repository">
+    	<ivy:publish artifactspattern="${dest.lib.dir}/[artifact].[ext]" 
+		       resolver="local"
+		       pubrevision="${version}" 
+		       pubdate="${now}"
+		       forcedeliver="true"
+		       status="integration"/>
+        <echo message="project ${ant.project.name} published locally with version ${version}" />
+    </target>
+
+    <target name="install-version">
+	<tstamp>
+	    <format property="now" pattern="yyyyMMddHHmmss"/>
+	</tstamp>
+        <property name="version"
+	      value="${module.version.target}-local-${now}"/>
+    </target>
+    
+    <!-- ================================= 
+          target: report              
+         ================================= -->
+    <target name="report" depends="resolve"
+    	description="--> generates a report of dependencies">
+        <ivy:report todir="${build.dir}"/>
+    </target>
+    
+    <!-- ================================= 
+          target: compile              
+         ================================= -->
+    <target name="compile" depends="resolve"
+    	description="--> compile the project">
+        <mkdir dir="${classes.dir}" />
+        <javac srcdir="${src.dir}"
+		destdir="${classes.dir}"
+		classpathref="lib.path.id"
+		target="1.5"
+		debug="true" />
+    </target>
+    
+    <!-- ================================= 
+          target: jar              
+         ================================= -->
+    <target name="jar" depends="compile"
+    	description="--> make a jar file for this project">
+	<mkdir dir="${dest.lib.dir}"/>
+        <sigil.bundle destpattern="${dest.lib.dir}/[id].[ext]"
+                classpathref="sigil.path.id"/>
+    </target>
+
+    <!-- ================================= 
+          target: resources              
+         ================================= -->
+    <available file="${resource.dir}" type="dir"
+               property="resource.dir.present"/>
+
+    <target name="resources" if="resource.dir.present"
+    	description="--> filter xml resources replacing ${VERSION} etc.">
+	<mkdir dir="${dest.etc.dir}"/>
+	<copy todir="${dest.etc.dir}">
+	  <fileset dir="${resource.dir}">
+	    <include name="*.composite"/>
+	    <include name="*.system"/>
+	  </fileset>
+	  <filterset begintoken="$${" endtoken="}">
+	    <filter token="VERSION" value="${bundle.version}"/>
+	    <filter token="BLITZ_VERSION" value="${blitz.version}"/>
+	    <filter token="JINI_VERSION" value="${jini.version}"/>
+	  </filterset>
+	</copy>
+    </target>
+
+    <!-- ================================= 
+      target: clean-local              
+     ================================= -->
+    <target name="clean-local"
+    	description="--> cleans the local repository for the current module">
+       <delete dir="${ivy.local.default.root}/${ant.project.name}"/>
+    </target>
+
+    <!-- ================================= 
+      target: clean-deps              
+     ================================= -->
+    <target name="clean-deps"
+    	description="--> clean the project libraries directory (dependencies)">
+	<delete includeemptydirs="true" dir="${deps.dir}"/>
+    </target>
+
+    <!-- ================================= 
+          target: clean-build              
+         ================================= -->
+    <target name="clean-build"
+    	description="--> clean the project built files">
+        <delete includeemptydirs="true" dir="${build.dir}"/>
+    </target>
+
+    <!-- ================================= 
+          target: clean              
+         ================================= -->
+    <target name="clean" depends="clean-build, clean-deps"
+    	description="--> clean the project" />
+
+
+    <!-- ================================= 
+          target: buildlist
+         ================================= -->
+    <fileset id="projects" dir="${basedir}" includes="**/build.xml"/>
+
+    <target name="buildlist" depends="load-ivy">
+      <ivy:buildlist reference="ordered-list"
+		  onMissingDescriptor="skip">
+	<fileset refid="projects"/>
+      </ivy:buildlist>
+    </target>
+
+    <!-- ================================= 
+          target: install-list
+         ================================= -->
+    <target name="install-list" depends="buildlist" 
+	  description="--> compile, jar and install all projects in the right order">
+      <subant target="install" buildpathref="ordered-list">
+	<propertyset>
+	  <propertyref name="ivy.loaded" />
+	</propertyset>
+      </subant>
+    </target>
+
+    <!-- ================================= 
+          target: clean-list
+         ================================= -->
+    <target name="clean-list" depends="clean, buildlist"
+	  description="--> clean all projects">
+      <subant target="clean" buildpathref="ordered-list" />
+    </target>
+
+    <!-- ================================= 
+          target: clean-all
+         ================================= -->
+    <target name="clean-all" depends="clean-list" 
+    description="--> delete repository, ivy cache, and all projects">
+      <delete dir="${repository.dir}"/>
+      <ivy:cleancache />
+    </target>
+
+</project>