1 <?xml version="1.0" encoding="UTF-8"?>
3 Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
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
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>
12 <groupId>org.opendaylight.odlparent</groupId>
13 <artifactId>odlparent</artifactId>
14 <version>8.0.1-SNAPSHOT</version>
15 <relativePath>../../odlparent</relativePath>
17 <artifactId>opendaylight-karaf-resources</artifactId>
18 <description>Resources for opendaylight-karaf</description>
19 <packaging>jar</packaging>
20 <name>ODL :: odlparent :: ${project.artifactId}</name>
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.)
26 <duplicate-finder.skip>true</duplicate-finder.skip>
27 <!-- jacoco:report bombs out on BouncyCastle's JDK15 classes, it has not point anyway -->
28 <jacoco.skip>true</jacoco.skip>
32 <groupId>org.apache.karaf.features</groupId>
33 <artifactId>framework</artifactId>
34 <version>${karaf.version}</version>
38 <groupId>org.apache.karaf.features</groupId>
39 <artifactId>standard</artifactId>
40 <version>${karaf.version}</version>
41 <classifier>features</classifier>
43 <scope>runtime</scope>
46 <!-- BouncyCastle Framework Extension Bundles -->
48 <groupId>org.opendaylight.odlparent</groupId>
49 <artifactId>bcpkix-framework-ext</artifactId>
50 <scope>runtime</scope>
53 <groupId>org.opendaylight.odlparent</groupId>
54 <artifactId>bcprov-framework-ext</artifactId>
55 <scope>runtime</scope>
58 <!-- SLF4J logging markers -->
60 <groupId>org.opendaylight.odlparent</groupId>
61 <artifactId>logging-markers</artifactId>
62 <scope>runtime</scope>
69 <directory>src/main/resources</directory>
70 <filtering>false</filtering>
75 <artifactId>maven-antrun-plugin</artifactId>
78 <id>patch-karaf-scripts</id>
79 <phase>prepare-package</phase>
85 <!-- Patches only work with LF line endings from ant -->
86 <fixcrlf srcdir="${project.build.directory}/assembly/bin"
87 includes="*.bat" eol="lf"/>
88 <patch patchfile="${project.basedir}/src/main/patches/karaf-instance.patch"
89 originalfile="${project.build.directory}/assembly/bin/instance"
91 <copy file="${project.build.directory}/assembly/bin/instance"
92 tofile="${project.build.directory}/classes/bin/instance"/>
93 <patch patchfile="${project.basedir}/src/main/patches/karaf-instance.bat.patch"
94 originalfile="${project.build.directory}/assembly/bin/instance.bat"
95 failonerror="true" ignorewhitespace="true"/>
96 <copy file="${project.build.directory}/assembly/bin/instance.bat"
97 tofile="${project.build.directory}/classes/bin/instance.bat"/>
98 <patch patchfile="${project.basedir}/src/main/patches/karaf-inc.patch"
99 originalfile="${project.build.directory}/assembly/bin/inc"
101 <copy file="${project.build.directory}/assembly/bin/inc"
102 tofile="${project.build.directory}/classes/bin/inc"/>
103 <patch patchfile="${project.basedir}/src/main/patches/karaf-karaf.patch"
104 originalfile="${project.build.directory}/assembly/bin/karaf"
106 <copy file="${project.build.directory}/assembly/bin/karaf"
107 tofile="${project.build.directory}/classes/bin/karaf"/>
108 <patch patchfile="${project.basedir}/src/main/patches/karaf-karaf.bat.patch"
109 originalfile="${project.build.directory}/assembly/bin/karaf.bat"
111 <copy file="${project.build.directory}/assembly/bin/karaf.bat"
112 tofile="${project.build.directory}/classes/bin/karaf.bat"/>
113 <patch patchfile="${project.basedir}/src/main/patches/karaf-setenv.patch"
114 originalfile="${project.build.directory}/assembly/bin/setenv"
116 <copy file="${project.build.directory}/assembly/bin/setenv"
117 tofile="${project.build.directory}/classes/bin/setenv"/>
118 <patch patchfile="${project.basedir}/src/main/patches/karaf-setenv.bat.patch"
119 originalfile="${project.build.directory}/assembly/bin/setenv.bat"
121 <copy file="${project.build.directory}/assembly/bin/setenv.bat"
122 tofile="${project.build.directory}/classes/bin/setenv.bat"/>
123 <patch patchfile="${project.basedir}/src/main/patches/karaf-quiesce.patch"
124 originalfile="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
126 <copy file="${project.build.directory}/assembly/system/org/apache/karaf/features/framework/${karaf.version}/framework-${karaf.version}-features.xml"
127 tofile="${project.build.directory}/classes/system/org/apache/karaf/features/framework/${karaf.version}/framework-${karaf.version}-features.xml"/>
128 <replace file="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
129 token="commons-io/commons-io/2.6" value="commons-io/commons-io/2.8.0" failOnNoReplacements="true"/>
130 <replace file="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
131 token="commons-codec/commons-codec/1.14" value="commons-codec/commons-codec/1.15" failOnNoReplacements="true"/>
132 <replace file="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
133 token="org.apache.commons/commons-lang3/3.10" value="org.apache.commons/commons-lang3/3.11" failOnNoReplacements="true"/>
134 <replace file="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
135 token="org.apache.felix.scr/2.1.20" value="org.apache.felix.scr/2.1.24" failOnNoReplacements="true"/>
136 <replace file="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
137 token="javax.annotation/javax.annotation-api/1.3<" value="javax.annotation/javax.annotation-api/1.3.1<" failOnNoReplacements="true"/>
138 <copy file="${project.build.directory}/assembly/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"
139 tofile="${project.build.directory}/classes/system/org/apache/karaf/features/standard/${karaf.version}/standard-${karaf.version}-features.xml"/>
140 <replace file="${project.build.directory}/assembly/system/org/ops4j/pax/web/pax-web-features/7.2.16/pax-web-features-7.2.16-features.xml"
141 token="commons-codec/commons-codec/1.11" value="commons-codec/commons-codec/1.15" failOnNoReplacements="true"/>
142 <replace file="${project.build.directory}/assembly/system/org/ops4j/pax/web/pax-web-features/7.2.16/pax-web-features-7.2.16-features.xml"
143 token="javax.annotation/javax.annotation-api/1.3<" value="javax.annotation/javax.annotation-api/1.3.1<" failOnNoReplacements="true"/>
144 <copy file="${project.build.directory}/assembly/system/org/ops4j/pax/web/pax-web-features/7.2.16/pax-web-features-7.2.16-features.xml"
145 tofile="${project.build.directory}/classes/system/org/ops4j/pax/web/pax-web-features/7.2.16/pax-web-features-7.2.16-features.xml"/>
146 <!-- Add startup bundles to startup.properties — order is significant, bundles are wired in declaration order -->
147 <echo file="${project.build.directory}/assembly/etc/startup.properties" append="true">
148 # The following are added by opendaylight-karaf-resources
149 mvn\:org.osgi/org.osgi.service.event/1.3.1 = 7
150 mvn\:org.apache.felix/org.apache.felix.metatype/1.2.2 = 8
151 mvn\:org.opendaylight.odlparent/bcprov-framework-ext/${project.version} = 14
152 mvn\:org.opendaylight.odlparent/bcpkix-framework-ext/${project.version} = 14
153 mvn\:org.opendaylight.odlparent/logging-markers/${project.version} = 14
154 mvn\:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/1.0.0 = 14
156 <copy file="${project.build.directory}/assembly/etc/startup.properties"
157 tofile="${project.build.directory}/classes/etc/startup.properties"/>
158 <fixcrlf srcdir="${project.build.directory}/classes/bin"
159 includes="*.bat" eol="crlf"/>
166 <groupId>org.apache.maven.plugins</groupId>
167 <artifactId>maven-dependency-plugin</artifactId>
170 <id>copy-framework-extensions</id>
174 <phase>generate-resources</phase>
177 <!-- Needs to be copied to lib/boot in order have it accessible to Main class -->
179 <groupId>org.bouncycastle</groupId>
180 <artifactId>bcprov-ext-jdk15on</artifactId>
181 <version>${bouncycastle.version}</version>
182 <outputDirectory>target/classes/lib/boot</outputDirectory>
183 <destFileName>bcprov-ext-jdk15on-${bouncycastle.version}.jar</destFileName>
186 <groupId>org.bouncycastle</groupId>
187 <artifactId>bcpkix-jdk15on</artifactId>
188 <version>${bouncycastle.version}</version>
189 <outputDirectory>target/classes/lib/boot</outputDirectory>
190 <destFileName>bcpkix-jdk15on-${bouncycastle.version}.jar</destFileName>
193 <silent>true</silent>
199 <groupId>org.codehaus.mojo</groupId>
200 <artifactId>build-helper-maven-plugin</artifactId>
203 <id>attach-artifacts</id>
205 <goal>attach-artifact</goal>
207 <phase>package</phase>
211 <file>src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg</file>
212 <type>properties</type>
213 <classifier>config</classifier>
221 <!-- We do this here only so that we can patch a few files,
222 but we then "throw away" (do not package) most of it,
223 as the karaf4-parent will do this again -->
224 <groupId>org.apache.karaf.tooling</groupId>
225 <artifactId>karaf-maven-plugin</artifactId>
226 <version>${karaf.version}</version>
229 <id>process-resources</id>
230 <phase>process-resources</phase>
232 <goal>assembly</goal>
237 <!-- This needs to execute before patching, otherwise the feature will be left unpatched -->
239 <groupId>org.opendaylight.odlparent</groupId>
240 <artifactId>karaf-plugin</artifactId>
241 <version>8.0.1-SNAPSHOT</version>
244 <id>populate-local-repo</id>
245 <phase>prepare-package</phase>
247 <goal>populate-local-repo</goal>
250 <localRepo>${project.build.directory}/assembly/system</localRepo>