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