blob: 31d3bf5b4951501c50087a5816e611830490f651 [file] [log] [blame]
Carsten Ziegelerb61fe0e2008-01-03 09:24:12 +00001<!--
2 Licensed to the Apache Software Foundation (ASF) under one
3 or more contributor license agreements. See the NOTICE file
4 distributed with this work for additional information
5 regarding copyright ownership. The ASF licenses this file
6 to you under the Apache License, Version 2.0 (the
7 "License"); you may not use this file except in compliance
8 with the License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12 Unless required by applicable law or agreed to in writing,
13 software distributed under the License is distributed on an
14 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 KIND, either express or implied. See the License for the
16 specific language governing permissions and limitations
17 under the License.
18-->
Carsten Ziegeler4fec0962008-01-11 16:13:31 +000019<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/maven-v4_0_0.xsd">
Karl Pauls589e2b32007-07-11 18:29:29 +000020 <parent>
21 <groupId>org.apache.felix</groupId>
Felix Meschbergereda237f2009-04-27 13:12:37 +000022 <artifactId>felix-parent</artifactId>
Carsten Ziegeler6e172fe2011-05-10 12:23:15 +000023 <version>2</version>
Karl Pauls589e2b32007-07-11 18:29:29 +000024 <relativePath>../pom/pom.xml</relativePath>
25 </parent>
26 <modelVersion>4.0.0</modelVersion>
27 <packaging>bundle</packaging>
28 <name>Apache Felix Declarative Services</name>
29 <description>
Felix Meschbergerc3de8e62010-05-28 20:28:18 +000030 Implementation of the Declarative Services specification 1.1
Karl Pauls589e2b32007-07-11 18:29:29 +000031 </description>
32 <artifactId>org.apache.felix.scr</artifactId>
Felix Meschberger7225c132010-08-10 12:19:28 +000033 <version>1.6.1-SNAPSHOT</version>
Felix Meschbergera2eafef2009-04-29 08:46:06 +000034 <scm>
Felix Meschberger7225c132010-08-10 12:19:28 +000035 <connection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/scr</connection>
36 <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/scr</developerConnection>
37 <url>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/scr</url>
Felix Meschbergera2eafef2009-04-29 08:46:06 +000038 </scm>
Felix Meschbergerc71d0e72009-10-12 07:16:08 +000039
40 <!--
41 A Note on Testing
42 =================
43
44 This project contains two kinds of tests: regular unit tests running
45 in the test phase and integration tests based on PAX Exam running
46 in the integration-test phase.
47
48 Basically the complete project is build using Java 1.3 source and target
49 compatibility (as inherited from the parent pom). The exception are the
50 unit tests in the "integration" packages. These have to be compiled with
51 Java 5 source and target compatibility because the employ annotations
52 and generics.
53
54 For running the integration tests from the console using Maven nothing
55 special has to be done as the tests run automatically. To run the tests
56 in your IDE, the project has to be built to the "package" phase with
57 the profile "ide" enabled:
58
59 $ mvn -Pide clean package
60
61 This creates the scr.jar file in the target folder, which is used by
62 the integration tests when run from the IDE. Alternatively the
63 "project.bundle.file" system property may be set to the bundle JAR
64 in the IDE launcher.
65 -->
Felix Meschberger0d2db8e2009-10-12 07:25:39 +000066 <properties>
Felix Meschbergerb3f548d2009-10-12 08:11:27 +000067 <bundle.build.name>
68 ${basedir}/target
69 </bundle.build.name>
Felix Meschberger80fc0fc2009-10-12 07:51:50 +000070 <bundle.file.name>
Felix Meschbergerb3f548d2009-10-12 08:11:27 +000071 ${bundle.build.name}/${project.build.finalName}.jar
Felix Meschberger80fc0fc2009-10-12 07:51:50 +000072 </bundle.file.name>
Felix Meschberger0d2db8e2009-10-12 07:25:39 +000073 </properties>
74
Felix Meschbergerc71d0e72009-10-12 07:16:08 +000075
Karl Pauls589e2b32007-07-11 18:29:29 +000076 <dependencies>
77 <dependency>
Felix Meschberger21a301e2009-10-07 08:38:18 +000078 <groupId>org.osgi</groupId>
Karl Pauls589e2b32007-07-11 18:29:29 +000079 <artifactId>org.osgi.core</artifactId>
Felix Meschberger21a301e2009-10-07 08:38:18 +000080 <version>4.1.0</version>
Felix Meschbergerc8dbf482009-10-11 08:18:18 +000081 <scope>provided</scope>
Karl Pauls589e2b32007-07-11 18:29:29 +000082 </dependency>
83 <dependency>
Felix Meschberger21a301e2009-10-07 08:38:18 +000084 <groupId>org.osgi</groupId>
Karl Pauls589e2b32007-07-11 18:29:29 +000085 <artifactId>org.osgi.compendium</artifactId>
Felix Meschberger21a301e2009-10-07 08:38:18 +000086 <version>4.2.0</version>
Felix Meschbergerc8dbf482009-10-11 08:18:18 +000087 <scope>provided</scope>
Karl Pauls589e2b32007-07-11 18:29:29 +000088 </dependency>
89 <dependency>
Felix Meschberger28082252011-04-06 15:02:42 +000090 <groupId>${project.groupId}</groupId>
Felix Meschbergerd25a63d2007-11-23 13:02:49 +000091 <artifactId>org.apache.felix.shell</artifactId>
92 <version>1.0.0</version>
Felix Meschbergerc8dbf482009-10-11 08:18:18 +000093 <scope>provided</scope>
Felix Meschbergerb3f548d2009-10-12 08:11:27 +000094 <exclusions>
95 <exclusion>
96 <groupId>org.apache.felix</groupId>
97 <artifactId>org.osgi.core</artifactId>
98 </exclusion>
99 </exclusions>
Felix Meschbergerd25a63d2007-11-23 13:02:49 +0000100 </dependency>
101 <dependency>
Felix Meschbergerab647de2010-12-23 18:13:24 +0000102 <groupId>org.apache.felix</groupId>
103 <artifactId>org.apache.felix.gogo.runtime</artifactId>
104 <version>0.6.1</version>
105 <scope>provided</scope>
106 </dependency>
107 <dependency>
Karl Pauls589e2b32007-07-11 18:29:29 +0000108 <groupId>net.sf.kxml</groupId>
109 <artifactId>kxml2</artifactId>
110 <version>2.2.2</version>
Felix Meschbergerc8dbf482009-10-11 08:18:18 +0000111 <scope>provided</scope>
Karl Pauls589e2b32007-07-11 18:29:29 +0000112 </dependency>
Felix Meschberger8c64e852009-07-28 13:48:28 +0000113
114 <!-- Integration Testing with Pax Exam -->
115 <dependency>
116 <groupId>junit</groupId>
117 <artifactId>junit</artifactId>
118 <version>4.6</version>
Felix Meschbergerc8dbf482009-10-11 08:18:18 +0000119 <scope>test</scope>
Felix Meschberger8c64e852009-07-28 13:48:28 +0000120 </dependency>
121 <dependency>
122 <groupId>org.ops4j.pax.exam</groupId>
123 <artifactId>pax-exam</artifactId>
124 <version>0.6.0</version>
125 <scope>test</scope>
126 </dependency>
127 <dependency>
128 <groupId>org.ops4j.pax.exam</groupId>
129 <artifactId>pax-exam-junit</artifactId>
130 <version>0.6.0</version>
131 <scope>test</scope>
132 </dependency>
133 <dependency>
134 <groupId>org.ops4j.pax.exam</groupId>
135 <artifactId>pax-exam-container-default</artifactId>
136 <version>0.6.0</version>
137 <scope>test</scope>
138 </dependency>
139 <dependency>
140 <groupId>org.ops4j.pax.swissbox</groupId>
141 <artifactId>pax-swissbox-tinybundles</artifactId>
Felix Meschbergere907aca2011-08-29 08:38:39 +0000142 <version>1.1.0</version>
Felix Meschberger8c64e852009-07-28 13:48:28 +0000143 <scope>test</scope>
144 </dependency>
Karl Pauls589e2b32007-07-11 18:29:29 +0000145 </dependencies>
146 <build>
Felix Meschbergerb3f548d2009-10-12 08:11:27 +0000147 <directory>${bundle.build.name}</directory>
Karl Pauls589e2b32007-07-11 18:29:29 +0000148 <plugins>
149 <plugin>
150 <groupId>org.apache.felix</groupId>
151 <artifactId>maven-bundle-plugin</artifactId>
Felix Meschberger28082252011-04-06 15:02:42 +0000152 <version>2.3.4</version>
Karl Pauls589e2b32007-07-11 18:29:29 +0000153 <extensions>true</extensions>
154 <configuration>
155 <instructions>
Felix Meschbergere5b69af2011-02-04 06:24:05 +0000156 <Bundle-Category>osgi</Bundle-Category>
Karl Pauls589e2b32007-07-11 18:29:29 +0000157 <Bundle-SymbolicName>
Felix Meschberger28082252011-04-06 15:02:42 +0000158 ${project.artifactId}
Karl Pauls589e2b32007-07-11 18:29:29 +0000159 </Bundle-SymbolicName>
Carsten Ziegeler90f0b9f2008-04-17 06:33:59 +0000160 <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
Felix Meschberger0062b3c2009-10-11 12:25:14 +0000161 <Bundle-DocURL>
162 http://felix.apache.org/site/apache-felix-service-component-runtime.html
163 </Bundle-DocURL>
Karl Pauls589e2b32007-07-11 18:29:29 +0000164 <Bundle-Activator>
Felix Meschbergerd25a63d2007-11-23 13:02:49 +0000165 org.apache.felix.scr.impl.Activator
Karl Pauls589e2b32007-07-11 18:29:29 +0000166 </Bundle-Activator>
167 <Export-Package>
Felix Meschberger14a65382010-08-03 08:55:21 +0000168 org.apache.felix.scr;version=1.6,
Felix Meschberger21a301e2009-10-07 08:38:18 +0000169 org.osgi.service.component
Karl Pauls589e2b32007-07-11 18:29:29 +0000170 </Export-Package>
171 <Private-Package>
Felix Meschberger9aaf7c42009-07-09 12:34:12 +0000172 org.apache.felix.scr.impl.*,
173 org.osgi.util.tracker
Karl Pauls589e2b32007-07-11 18:29:29 +0000174 </Private-Package>
Felix Meschbergerd25a63d2007-11-23 13:02:49 +0000175 <Import-Package>
Felix Meschberger21a301e2009-10-07 08:38:18 +0000176 <!--
Felix Meschbergerab647de2010-12-23 18:13:24 +0000177 optional import for Gogo annotations
178 -->
179 org.apache.felix.service.command;resolution:=optional,
180
181 <!--
Felix Meschberger21a301e2009-10-07 08:38:18 +0000182 The Felix Shell support is optional
183 -->
Felix Meschberger9aaf7c42009-07-09 12:34:12 +0000184 org.apache.felix.shell; resolution:=optional,
Felix Meschberger21a301e2009-10-07 08:38:18 +0000185
186 <!--
Felix Meschberger470ff262009-10-29 13:48:37 +0000187 Framework version 1.4 (from R4.1) is required
188 because we depend on ServiceReference being
189 Comparable and Bundle.getBundleContext method
190 being available.
Felix Meschberger21a301e2009-10-07 08:38:18 +0000191 -->
Felix Meschberger470ff262009-10-29 13:48:37 +0000192 org.osgi.framework;version="[1.4,2)",
Felix Meschberger21a301e2009-10-07 08:38:18 +0000193
194 <!--
Felix Meschberger9c29a382009-10-29 12:28:50 +0000195 LogService is optional but if present the
196 R4.0 version 1.3 is sufficient.
197 -->
198 org.osgi.service.log;version="[1.3,2)";resolution:=optional,
199
200 <!--
Felix Meschbergerb8646ff2010-08-05 13:26:31 +0000201 PackageAdmin is used to find reference types if
202 the any component's bundle does not import it.
203 See BindMethod.getParameterClass(Class) for details
204 -->
205 org.osgi.service.packageadmin;version="[1.2,2)";resolution:=optional,
206
207 <!--
Felix Meschbergera16f9662009-10-29 11:05:31 +0000208 SCR API is required (we also export it) and must
209 be of any 1.1 version, because we implement that
210 exact version. This import is only used if the
211 framework decides to wire the bundle to another
212 API provider.
213 -->
214 org.osgi.service.component;version="[1.1,1.2)"
Felix Meschbergerd25a63d2007-11-23 13:02:49 +0000215 </Import-Package>
Felix Meschbergercf317b62011-02-04 10:50:18 +0000216 <DynamicImport-Package>
217 <!--
218 Configuration Admin version 1.2 (from R4.0) is enough
219 -->
220 org.osgi.service.cm;version="[1.2,2)",
221
222 <!--
223 Metatype is optional and if it is
224 present, version 1.1 (from R4.1) is enough
225 -->
226 org.osgi.service.metatype;version="[1.1,2)"
227 </DynamicImport-Package>
Felix Meschberger9aaf7c42009-07-09 12:34:12 +0000228 <Embed-Dependency>
Felix Meschberger28082252011-04-06 15:02:42 +0000229 kxml2;inline=org/kxml2/io/KXmlParser.class|org/xmlpull/v1/XmlPull**
Felix Meschberger9aaf7c42009-07-09 12:34:12 +0000230 </Embed-Dependency>
Karl Pauls589e2b32007-07-11 18:29:29 +0000231 </instructions>
232 </configuration>
233 </plugin>
Felix Meschberger8c64e852009-07-28 13:48:28 +0000234
235 <!--
Felix Meschbergerab647de2010-12-23 18:13:24 +0000236 Configure default compilation for Java 1.3 and integration
Felix Meschberger8c64e852009-07-28 13:48:28 +0000237 test compilation for Java 5 (since integration tests use
Felix Meschbergerab647de2010-12-23 18:13:24 +0000238 Java Annotations for Pax Exam).
239 Also configure the compilation of the Gogo Command class
240 (using Java 5 annotations) with Java 5 target.
Felix Meschberger8c64e852009-07-28 13:48:28 +0000241 -->
242 <plugin>
243 <artifactId>maven-compiler-plugin</artifactId>
244 <executions>
245 <execution>
Felix Meschbergerab647de2010-12-23 18:13:24 +0000246 <id>compile-java5</id>
247 <goals>
248 <goal>compile</goal>
249 </goals>
250 <configuration>
251 <source>1.5</source>
252 <target>1.5</target>
253 <excludes>
254 <exclude>dummy-to-overwrite-global-config</exclude>
255 </excludes>
256 <includes>
257 <include>**/ScrGogoCommand.java</include>
258 </includes>
259 </configuration>
260 </execution>
261 <execution>
Felix Meschberger8c64e852009-07-28 13:48:28 +0000262 <id>test-compile-java5</id>
263 <goals>
264 <goal>testCompile</goal>
265 </goals>
266 <configuration>
267 <source>1.5</source>
268 <target>1.5</target>
269 <testIncludes>
270 <testInclude>**/integration/**</testInclude>
271 </testIncludes>
272 <testExcludes>
273 <testExclude>**/impl/**</testExclude>
274 </testExcludes>
275 </configuration>
276 </execution>
277 </executions>
278 <configuration>
279 <testExcludes>
280 <testExclude>**/integration/**</testExclude>
281 </testExcludes>
Felix Meschbergerab647de2010-12-23 18:13:24 +0000282 <excludes>
283 <exclude>**/ScrGogoCommand.java</exclude>
284 </excludes>
Felix Meschberger8c64e852009-07-28 13:48:28 +0000285 </configuration>
286 </plugin>
287
288 <!--
289 Exclude Integration tests in (default) unit tests and
290 conversely enable integration tests for integration testing
291 only. Helper classes are completely excluded from testing.
292 -->
293 <plugin>
294 <artifactId>maven-surefire-plugin</artifactId>
295 <executions>
296 <execution>
297 <id>surefire-it</id>
298 <phase>integration-test</phase>
299 <goals>
300 <goal>test</goal>
301 </goals>
302 <configuration>
Felix Meschbergerc71d0e72009-10-12 07:16:08 +0000303 <systemProperties>
304 <property>
305 <name>project.bundle.file</name>
Felix Meschberger80fc0fc2009-10-12 07:51:50 +0000306 <value>${bundle.file.name}</value>
Felix Meschbergerc71d0e72009-10-12 07:16:08 +0000307 </property>
308 </systemProperties>
Felix Meschberger8c64e852009-07-28 13:48:28 +0000309 <excludes>
310 <exclude>**/components/**</exclude>
311 </excludes>
312 <includes>
313 <include>**/integration/*</include>
314 </includes>
315 </configuration>
316 </execution>
317 </executions>
318 <configuration>
319 <excludes>
320 <exclude>**/integration/**</exclude>
321 <exclude>**/components/**</exclude>
322 <exclude>**/instances/**</exclude>
323 <exclude>**/instances2/**</exclude>
324 </excludes>
325 </configuration>
326 </plugin>
Felix Meschberger75ddf472011-02-04 23:09:29 +0000327 <plugin>
328 <groupId>org.apache.maven.plugins</groupId>
329 <artifactId>maven-javadoc-plugin</artifactId>
330 <configuration>
331 <encoding>${project.build.sourceEncoding}</encoding>
332 <excludePackageNames>*.impl</excludePackageNames>
333 </configuration>
334 </plugin>
Karl Pauls589e2b32007-07-11 18:29:29 +0000335 </plugins>
336 </build>
Felix Meschbergerc71d0e72009-10-12 07:16:08 +0000337
338 <profiles>
339 <!--
340 copy the package such that IDEs may easily use it without
341 setting the system property
342 -->
343 <profile>
344 <id>ide</id>
345 <build>
346 <plugins>
347 <plugin>
348 <artifactId>maven-antrun-plugin</artifactId>
349 <version>1.3</version>
350 <executions>
351 <execution>
352 <id>scr-file-create</id>
353 <phase>package</phase>
354 <goals>
355 <goal>run</goal>
356 </goals>
357 <configuration>
358 <tasks>
Felix Meschbergerdbc09e62009-11-02 22:28:37 +0000359 <copy file="${project.build.directory}/${project.build.finalName}.jar" tofile="${project.build.directory}/scr.jar" />
Felix Meschbergerc71d0e72009-10-12 07:16:08 +0000360 </tasks>
361 </configuration>
362 </execution>
363 </executions>
364 </plugin>
365 </plugins>
366 </build>
367 </profile>
368 </profiles>
369
Felix Meschberger8c64e852009-07-28 13:48:28 +0000370 <!-- repositories for Pax Exam and BND tool -->
371 <repositories>
372 <repository>
373 <id>ops4j</id>
374 <name>ops4j</name>
375 <url>http://repository.ops4j.org/maven2</url>
376 <snapshots>
377 <enabled>false</enabled>
378 </snapshots>
379 </repository>
Felix Meschberger8c64e852009-07-28 13:48:28 +0000380 </repositories>
Karl Pauls589e2b32007-07-11 18:29:29 +0000381</project>