Make karaf patches versionless
[odlparent.git] / karaf / opendaylight-karaf-resources / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
4
5  This program and the accompanying materials are made available under the
6  terms of the Eclipse Public License v1.0 which accompanies this distribution,
7  and is available at http://www.eclipse.org/legal/epl-v10.html
8 -->
9 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
10   <modelVersion>4.0.0</modelVersion>
11   <parent>
12     <groupId>org.opendaylight.odlparent</groupId>
13     <artifactId>odlparent</artifactId>
14     <version>6.0.2-SNAPSHOT</version>
15     <relativePath>../../odlparent</relativePath>
16   </parent>
17   <artifactId>opendaylight-karaf-resources</artifactId>
18   <description>Resources for opendaylight-karaf</description>
19   <packaging>jar</packaging>
20   <name>ODL :: odlparent :: ${project.artifactId}</name>
21   <properties>
22     <!-- There are a lot of duplicate classes in the dependencies below, but this is not a real issue,
23          because this is not a real Java artifact; it's just packaging.  (TODO: Ideally, this artifact should
24          just have odlparent-lite not odlparent as parent, and not run Java static code analysis tools.)
25       -->
26     <duplicate-finder.skip>true</duplicate-finder.skip>
27   </properties>
28   <dependencies>
29     <dependency>
30       <groupId>org.apache.karaf.features</groupId>
31       <artifactId>framework</artifactId>
32       <version>${karaf.version}</version>
33       <type>kar</type>
34     </dependency>
35     <dependency>
36       <groupId>org.apache.karaf.features</groupId>
37       <artifactId>standard</artifactId>
38       <version>${karaf.version}</version>
39       <classifier>features</classifier>
40       <type>xml</type>
41       <scope>runtime</scope>
42     </dependency>
43
44     <!-- BouncyCastle Framework Extension Bundles -->
45     <dependency>
46       <groupId>org.opendaylight.odlparent</groupId>
47       <artifactId>bcpkix-framework-ext</artifactId>
48       <scope>runtime</scope>
49     </dependency>
50     <dependency>
51       <groupId>org.opendaylight.odlparent</groupId>
52       <artifactId>bcprov-framework-ext</artifactId>
53       <scope>runtime</scope>
54     </dependency>
55   </dependencies>
56
57   <build>
58     <resources>
59       <resource>
60         <directory>src/main/resources</directory>
61         <filtering>false</filtering>
62       </resource>
63     </resources>
64     <plugins>
65       <plugin>
66         <artifactId>maven-antrun-plugin</artifactId>
67         <executions>
68           <execution>
69             <id>patch-karaf-scripts</id>
70             <phase>prepare-package</phase>
71             <goals>
72               <goal>run</goal>
73             </goals>
74             <configuration>
75               <target>
76                 <!-- Patches only work with LF line endings from ant -->
77                 <fixcrlf srcdir="${project.build.directory}/assembly/bin"
78                          includes="*.bat" eol="lf"/>
79                 <patch patchfile="${project.basedir}/src/main/patches/karaf-instance.patch"
80                        originalfile="${project.build.directory}/assembly/bin/instance"
81                        failonerror="true"/>
82                 <copy file="${project.build.directory}/assembly/bin/instance"
83                       tofile="${project.build.directory}/classes/bin/instance"/>
84                 <patch patchfile="${project.basedir}/src/main/patches/karaf-instance.bat.patch"
85                        originalfile="${project.build.directory}/assembly/bin/instance.bat"
86                        failonerror="true" ignorewhitespace="true"/>
87                 <copy file="${project.build.directory}/assembly/bin/instance.bat"
88                       tofile="${project.build.directory}/classes/bin/instance.bat"/>
89                 <patch patchfile="${project.basedir}/src/main/patches/karaf-inc.patch"
90                        originalfile="${project.build.directory}/assembly/bin/inc"
91                        failonerror="true"/>
92                 <copy file="${project.build.directory}/assembly/bin/inc"
93                       tofile="${project.build.directory}/classes/bin/inc"/>
94                 <patch patchfile="${project.basedir}/src/main/patches/karaf-karaf.patch"
95                        originalfile="${project.build.directory}/assembly/bin/karaf"
96                        failonerror="true"/>
97                 <copy file="${project.build.directory}/assembly/bin/karaf"
98                       tofile="${project.build.directory}/classes/bin/karaf"/>
99                 <patch patchfile="${project.basedir}/src/main/patches/karaf-karaf.bat.patch"
100                        originalfile="${project.build.directory}/assembly/bin/karaf.bat"
101                        failonerror="true"/>
102                 <copy file="${project.build.directory}/assembly/bin/karaf.bat"
103                       tofile="${project.build.directory}/classes/bin/karaf.bat"/>
104                 <patch patchfile="${project.basedir}/src/main/patches/karaf-setenv.patch"
105                        originalfile="${project.build.directory}/assembly/bin/setenv"
106                        failonerror="true"/>
107                 <copy file="${project.build.directory}/assembly/bin/setenv"
108                       tofile="${project.build.directory}/classes/bin/setenv"/>
109                 <patch patchfile="${project.basedir}/src/main/patches/karaf-setenv.bat.patch"
110                        originalfile="${project.build.directory}/assembly/bin/setenv.bat"
111                        failonerror="true"/>
112                 <copy file="${project.build.directory}/assembly/bin/setenv.bat"
113                       tofile="${project.build.directory}/classes/bin/setenv.bat"/>
114                 <patch patchfile="${project.basedir}/src/main/patches/karaf-quiesce.patch"
115                        originalfile="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
116                        failonerror="true"/>
117                 <replace file="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
118                          token="commons-codec/commons-codec/1.11" value="commons-codec/commons-codec/1.13" failOnNoReplacements="true"/>
119                 <replace file="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
120                          token="org.apache.commons/commons-lang3/3.8.1" value="org.apache.commons/commons-lang3/3.9" failOnNoReplacements="true"/>
121                 <!-- fixes https://issues.apache.org/jira/browse/ARIES-1923 -->
122                 <replace file="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
123                          token="org.apache.aries.proxy/org.apache.aries.proxy/1.1.4" value="org.apache.aries.proxy/org.apache.aries.proxy/1.1.6" failOnNoReplacements="true"/>
124                 <copy file="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
125                       tofile="${project.build.directory}/classes/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"/>
126                 <replace file="${project.build.directory}/assembly/system/org/ops4j/pax/web/pax-web-features/7.2.8/pax-web-features-7.2.8-features.xml"
127                          token="commons-beanutils/commons-beanutils/1.8.3" value="commons-beanutils/commons-beanutils/1.9.4" failOnNoReplacements="true"/>
128                 <replace file="${project.build.directory}/assembly/system/org/ops4j/pax/web/pax-web-features/7.2.8/pax-web-features-7.2.8-features.xml"
129                          token="commons-codec/commons-codec/1.11" value="commons-codec/commons-codec/1.13" failOnNoReplacements="true"/>
130                 <copy file="${project.build.directory}/assembly/system/org/ops4j/pax/web/pax-web-features/7.2.8/pax-web-features-7.2.8-features.xml"
131                       tofile="${project.build.directory}/classes/system/org/ops4j/pax/web/pax-web-features/7.2.8/pax-web-features-7.2.8-features.xml"/>
132                 <!-- Add startup bundles to startup.properties — order is significant, bundles are wired in declaration order -->
133                 <echo file="${project.build.directory}/assembly/etc/startup.properties" append="true">
134 # The following are added by opendaylight-karaf-resources
135 mvn\:org.osgi/org.osgi.service.event/1.3.1 = 7
136 mvn\:org.apache.felix/org.apache.felix.metatype/1.2.2 = 8
137 mvn\:org.opendaylight.odlparent/bcprov-framework-ext/${project.version} = 14
138 mvn\:org.opendaylight.odlparent/bcpkix-framework-ext/${project.version} = 14
139 mvn\:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/1.0.0 = 14
140                 </echo>
141                 <copy file="${project.build.directory}/assembly/etc/startup.properties"
142                       tofile="${project.build.directory}/classes/etc/startup.properties"/>
143                 <replace file="${project.build.directory}/assembly/etc/config.properties"
144                          token="org.eclipse.platform/org.eclipse.osgi/3.13.300" value="org.eclipse.platform/org.eclipse.osgi/3.12.100" failOnNoReplacements="true"/>
145                 <copy file="${project.build.directory}/assembly/etc/config.properties"
146                       tofile="${project.build.directory}/classes/etc/config.properties"/>
147                 <fixcrlf srcdir="${project.build.directory}/classes/bin"
148                          includes="*.bat" eol="crlf"/>
149               </target>
150             </configuration>
151           </execution>
152         </executions>
153       </plugin>
154       <plugin>
155         <groupId>org.apache.maven.plugins</groupId>
156         <artifactId>maven-dependency-plugin</artifactId>
157         <executions>
158           <execution>
159             <id>copy-framework-extensions</id>
160             <goals>
161               <goal>copy</goal>
162             </goals>
163             <phase>generate-resources</phase>
164             <configuration>
165               <artifactItems>
166                 <!-- Needs to be copied to lib/boot in order have it accessible to Main class -->
167                 <artifactItem>
168                     <groupId>org.bouncycastle</groupId>
169                     <artifactId>bcprov-ext-jdk15on</artifactId>
170                     <version>${bouncycastle.version}</version>
171                     <outputDirectory>target/classes/lib/boot</outputDirectory>
172                     <destFileName>bcprov-ext-jdk15on-${bouncycastle.version}.jar</destFileName>
173                 </artifactItem>
174                 <artifactItem>
175                     <groupId>org.bouncycastle</groupId>
176                     <artifactId>bcpkix-jdk15on</artifactId>
177                     <version>${bouncycastle.version}</version>
178                     <outputDirectory>target/classes/lib/boot</outputDirectory>
179                     <destFileName>bcpkix-jdk15on-${bouncycastle.version}.jar</destFileName>
180                 </artifactItem>
181               </artifactItems>
182               <silent>true</silent>
183             </configuration>
184           </execution>
185         </executions>
186       </plugin>
187       <plugin>
188         <groupId>org.codehaus.mojo</groupId>
189         <artifactId>build-helper-maven-plugin</artifactId>
190         <executions>
191           <execution>
192             <id>attach-artifacts</id>
193             <goals>
194               <goal>attach-artifact</goal>
195             </goals>
196             <phase>package</phase>
197             <configuration>
198               <artifacts>
199                 <artifact>
200                   <file>src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg</file>
201                   <type>properties</type>
202                   <classifier>config</classifier>
203                 </artifact>
204               </artifacts>
205             </configuration>
206           </execution>
207         </executions>
208       </plugin>
209       <plugin>
210         <!-- We do this here only so that we can patch a few files,
211              but we then "throw away" (do not package) most of it,
212              as the karaf4-parent will do this again                -->
213         <groupId>org.apache.karaf.tooling</groupId>
214         <artifactId>karaf-maven-plugin</artifactId>
215         <version>${karaf.version}</version>
216         <executions>
217           <execution>
218             <id>process-resources</id>
219             <phase>process-resources</phase>
220             <goals>
221               <goal>assembly</goal>
222             </goals>
223           </execution>
224       </executions>
225       </plugin>
226       <!-- This needs to execute before patching, otherwise the feature will be left unpatched -->
227       <plugin>
228         <groupId>org.opendaylight.odlparent</groupId>
229         <artifactId>karaf-plugin</artifactId>
230         <version>6.0.2-SNAPSHOT</version>
231         <executions>
232           <execution>
233             <id>populate-local-repo</id>
234             <phase>prepare-package</phase>
235             <goals>
236               <goal>populate-local-repo</goal>
237             </goals>
238             <configuration>
239               <localRepo>${project.build.directory}/assembly/system</localRepo>
240             </configuration>
241           </execution>
242         </executions>
243       </plugin>
244     </plugins>
245   </build>
246 </project>