]> git.argeo.org Git - gpl/argeo-slc.git/blob - maven/maven-argeo-osgi-plugin/src/main/scripts/argeo-osgi.build.xml
Use profiles
[gpl/argeo-slc.git] / maven / maven-argeo-osgi-plugin / src / main / scripts / argeo-osgi.build.xml
1 <project>
2
3 <taskdef resource="net/sf/antcontrib/antlib.xml" />
4
5 <target name="simple-bundles" depends="generate-poms,deploy-pom">
6 </target>
7
8 <target name="generate-poms">
9
10 <property name="profilesTemplate" location="profiles-template.xml" />
11 <property name="targetDir" location="target" />
12 <mkdir dir="${targetDir}" />
13
14 <copy todir="${targetDir}/bundles">
15 <fileset dir="${bundlesBase}" includes="**" excludes="*.xml,.*,target/**" />
16 </copy>
17
18 <pathconvert property="dirs" pathsep=",">
19 <path>
20 <dirset dir="${targetDir}/bundles" includes="*" />
21 </path>
22 <mapper>
23 <flattenmapper />
24 </mapper>
25 </pathconvert>
26
27 <if>
28 <contains string="${projectVersion}" substring="-SNAPSHOT" />
29 <then>
30 <property name="qualifier" value="SNAPSHOT" />
31 </then>
32 <else>
33 <tstamp>
34 <format property="qualifier" pattern="yyyyMMdd" />
35 </tstamp>
36 </else>
37 </if>
38
39
40 <property name="aggregatorPomFile" value="${targetDir}/bundles/pom.xml" />
41 <echo file="${aggregatorPomFile}">
42 <![CDATA[
43 <project>
44 <modelVersion>4.0.0</modelVersion>
45 <groupId>${projectGroupId}</groupId>
46 <artifactId>aggregator</artifactId>
47 <version>${projectVersion}</version>
48 <packaging>pom</packaging>
49 <modules>
50 ]]></echo>
51 <for list="${dirs}" param="dir">
52
53 <sequential>
54 <echo file="${aggregatorPomFile}" append="true">
55 <![CDATA[<module>@{dir}</module>]]></echo>
56 </sequential>
57 </for>
58 <echo file="${aggregatorPomFile}" append="true">
59 <![CDATA[
60 <module>bundles</module>
61 </modules>
62 </project>
63 ]]></echo>
64 <copy file="${profilesTemplate}" tofile="${targetDir}/bundles/profiles.xml"/>
65
66
67 <for list="${dirs}" param="dir">
68
69 <sequential>
70 <echo>Generate POM for @{dir}</echo>
71
72 <var name="bundleDir" value="${targetDir}/bundles/@{dir}" />
73 <mkdir dir="${bundleDir}/target" />
74
75
76 <replace file="${bundleDir}/META-INF/MANIFEST.MF" token="qualifier" value="${qualifier}" />
77
78 <copy file="${bundleDir}/META-INF/MANIFEST.MF" tofile="${bundleDir}/target/bundle.properties" />
79 <replace file="${bundleDir}/target/bundle.properties" token=" " value="" />
80 <replace file="${bundleDir}/target/bundle.properties" token=":" value="=" />
81 <replace file="${bundleDir}/target/bundle.properties" token=".SNAPSHOT" value="-SNAPSHOT" />
82 <var file="${bundleDir}/target/bundle.properties" />
83
84 <copy file="pom-template.xml" toFile="${bundleDir}/pom.xml">
85 <filterset>
86 <filtersfile file="${bundleDir}/target/bundle.properties" />
87 </filterset>
88 </copy>
89
90 <copy file="${profilesTemplate}" tofile="${bundleDir}/profiles.xml"/>
91 </sequential>
92 </for>
93
94 </target>
95
96 <target name="deploy-pom">
97
98 <property name="targetDir" location="target" />
99
100 <pathconvert property="dirs" pathsep=",">
101 <path>
102 <dirset dir="${targetDir}/bundles" includes="*" />
103 </path>
104 <mapper>
105 <flattenmapper />
106 </mapper>
107 </pathconvert>
108
109 <mkdir dir="${targetDir}/bundles/bundles" />
110 <property name="deployPomFile" value="${targetDir}/bundles/bundles/pom.xml" />
111
112 <echo file="${deployPomFile}">
113 <![CDATA[
114 <project>
115 <modelVersion>4.0.0</modelVersion>
116 <groupId>${projectGroupId}</groupId>
117 <artifactId>bundles</artifactId>
118 <version>${projectVersion}</version>
119 <packaging>pom</packaging>
120 <dependencies>
121 ]]></echo>
122
123 <for list="${dirs}" param="dir">
124
125 <sequential>
126 <echo>Add @{dir} to deploy POM</echo>
127 <mkdir dir="${targetDir}" />
128
129 <var name="bundleDir" value="${targetDir}/bundles/@{dir}" />
130 <var file="${bundleDir}/target/bundle.properties" />
131
132 <echo file="${deployPomFile}" append="true">
133 <![CDATA[
134 <dependency>
135 <groupId>${projectGroupId}</groupId>
136 <artifactId>${Bundle-SymbolicName}</artifactId>
137 <version>${Bundle-Version}</version>
138 </dependency>
139 ]]></echo>
140 </sequential>
141 </for>
142
143 <echo file="${deployPomFile}" append="true">
144 <![CDATA[
145 </dependencies>
146 </project>
147 ]]></echo>
148
149 <copy file="${profilesTemplate}" tofile="${targetDir}/bundles/bundles/profiles.xml"/>
150 </target>
151 </project>