blob: 8cfc253c651980d1609def181265a1cfdc49fb13 [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 Meschbergera4ad70a2009-04-27 13:12:37 +000022 <artifactId>felix-parent</artifactId>
23 <version>1.2.0</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>
30 Implementation of the Declarative Services specification 1.0
31 </description>
32 <artifactId>org.apache.felix.scr</artifactId>
Felix Meschberger9e1abba2009-12-15 08:54:54 +000033 <version>1.4.1-SNAPSHOT</version>
Felix Meschberger4753fcb2009-04-29 08:46:06 +000034 <scm>
Felix Meschberger9e1abba2009-12-15 08:54:54 +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 Meschberger4753fcb2009-04-29 08:46:06 +000038 </scm>
Felix Meschberger55e3b972009-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 Meschbergerc17fdbd2009-10-12 07:25:39 +000066 <properties>
Felix Meschberger6c63b752009-10-12 08:11:27 +000067 <bundle.build.name>
68 ${basedir}/target
69 </bundle.build.name>
Felix Meschbergere130b0b2009-10-12 07:51:50 +000070 <bundle.file.name>
Felix Meschberger6c63b752009-10-12 08:11:27 +000071 ${bundle.build.name}/${project.build.finalName}.jar
Felix Meschbergere130b0b2009-10-12 07:51:50 +000072 </bundle.file.name>
Felix Meschbergerc17fdbd2009-10-12 07:25:39 +000073 </properties>
74
Felix Meschberger55e3b972009-10-12 07:16:08 +000075
Karl Pauls589e2b32007-07-11 18:29:29 +000076 <dependencies>
77 <dependency>
Felix Meschbergerca797922009-10-07 08:38:18 +000078 <groupId>org.osgi</groupId>
Karl Pauls589e2b32007-07-11 18:29:29 +000079 <artifactId>org.osgi.core</artifactId>
Felix Meschbergerca797922009-10-07 08:38:18 +000080 <version>4.1.0</version>
Felix Meschbergerbbd1e9d2009-10-11 08:18:18 +000081 <scope>provided</scope>
Karl Pauls589e2b32007-07-11 18:29:29 +000082 </dependency>
83 <dependency>
Felix Meschbergerca797922009-10-07 08:38:18 +000084 <groupId>org.osgi</groupId>
Karl Pauls589e2b32007-07-11 18:29:29 +000085 <artifactId>org.osgi.compendium</artifactId>
Felix Meschbergerca797922009-10-07 08:38:18 +000086 <version>4.2.0</version>
Felix Meschbergerbbd1e9d2009-10-11 08:18:18 +000087 <scope>provided</scope>
Karl Pauls589e2b32007-07-11 18:29:29 +000088 </dependency>
89 <dependency>
Felix Meschbergerd25a63d2007-11-23 13:02:49 +000090 <groupId>${pom.groupId}</groupId>
91 <artifactId>org.apache.felix.shell</artifactId>
92 <version>1.0.0</version>
Felix Meschbergerbbd1e9d2009-10-11 08:18:18 +000093 <scope>provided</scope>
Felix Meschberger6c63b752009-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>
Karl Pauls589e2b32007-07-11 18:29:29 +0000102 <groupId>net.sf.kxml</groupId>
103 <artifactId>kxml2</artifactId>
104 <version>2.2.2</version>
Felix Meschbergerbbd1e9d2009-10-11 08:18:18 +0000105 <scope>provided</scope>
Karl Pauls589e2b32007-07-11 18:29:29 +0000106 </dependency>
Felix Meschberger47eb0372009-07-28 13:48:28 +0000107
108 <!-- Integration Testing with Pax Exam -->
109 <dependency>
110 <groupId>junit</groupId>
111 <artifactId>junit</artifactId>
112 <version>4.6</version>
Felix Meschbergerbbd1e9d2009-10-11 08:18:18 +0000113 <scope>test</scope>
Felix Meschberger47eb0372009-07-28 13:48:28 +0000114 </dependency>
115 <dependency>
116 <groupId>org.ops4j.pax.exam</groupId>
117 <artifactId>pax-exam</artifactId>
118 <version>0.6.0</version>
119 <scope>test</scope>
120 </dependency>
121 <dependency>
122 <groupId>org.ops4j.pax.exam</groupId>
123 <artifactId>pax-exam-junit</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-container-default</artifactId>
130 <version>0.6.0</version>
131 <scope>test</scope>
132 </dependency>
133 <dependency>
134 <groupId>org.ops4j.pax.swissbox</groupId>
135 <artifactId>pax-swissbox-tinybundles</artifactId>
136 <version>1.0.0</version>
137 <scope>test</scope>
138 </dependency>
Karl Pauls589e2b32007-07-11 18:29:29 +0000139 </dependencies>
140 <build>
Felix Meschberger6c63b752009-10-12 08:11:27 +0000141 <directory>${bundle.build.name}</directory>
Karl Pauls589e2b32007-07-11 18:29:29 +0000142 <plugins>
Felix Meschberger2136bed2009-11-26 10:08:12 +0000143 <!-- generate the MetaType descriptor for the configuration -->
144 <plugin>
145 <groupId>org.apache.felix</groupId>
146 <artifactId>maven-scr-plugin</artifactId>
147 <version>1.4.0</version>
148 <executions>
149 <execution>
150 <id>generate-scr-scrdescriptor</id>
151 <goals>
152 <goal>scr</goal>
153 </goals>
154 </execution>
155 </executions>
156 </plugin>
Karl Pauls589e2b32007-07-11 18:29:29 +0000157 <plugin>
158 <groupId>org.apache.felix</groupId>
159 <artifactId>maven-bundle-plugin</artifactId>
Felix Meschberger5fbf0f12009-12-07 07:52:51 +0000160 <version>2.0.1</version>
Karl Pauls589e2b32007-07-11 18:29:29 +0000161 <extensions>true</extensions>
162 <configuration>
163 <instructions>
164 <Bundle-SymbolicName>
165 ${artifactId}
166 </Bundle-SymbolicName>
Carsten Ziegelercf6e51b2008-04-17 06:33:59 +0000167 <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
Felix Meschberger40d3e602009-10-11 12:25:14 +0000168 <Bundle-DocURL>
169 http://felix.apache.org/site/apache-felix-service-component-runtime.html
170 </Bundle-DocURL>
Karl Pauls589e2b32007-07-11 18:29:29 +0000171 <Bundle-Activator>
Felix Meschbergerd25a63d2007-11-23 13:02:49 +0000172 org.apache.felix.scr.impl.Activator
Karl Pauls589e2b32007-07-11 18:29:29 +0000173 </Bundle-Activator>
174 <Export-Package>
Felix Meschbergerf1ce1a32009-12-14 10:08:27 +0000175 org.apache.felix.scr;version=1.4,
Felix Meschbergerca797922009-10-07 08:38:18 +0000176 org.osgi.service.component
Karl Pauls589e2b32007-07-11 18:29:29 +0000177 </Export-Package>
178 <Private-Package>
Felix Meschberger9b4e0232009-07-09 12:34:12 +0000179 org.apache.felix.scr.impl.*,
180 org.osgi.util.tracker
Karl Pauls589e2b32007-07-11 18:29:29 +0000181 </Private-Package>
Felix Meschbergerd25a63d2007-11-23 13:02:49 +0000182 <Import-Package>
Felix Meschbergerca797922009-10-07 08:38:18 +0000183 <!--
184 The Felix Shell support is optional
185 -->
Felix Meschberger9b4e0232009-07-09 12:34:12 +0000186 org.apache.felix.shell; resolution:=optional,
Felix Meschbergerca797922009-10-07 08:38:18 +0000187
188 <!--
Felix Meschberger8a8c6332009-10-29 13:48:37 +0000189 Framework version 1.4 (from R4.1) is required
190 because we depend on ServiceReference being
191 Comparable and Bundle.getBundleContext method
192 being available.
Felix Meschbergerca797922009-10-07 08:38:18 +0000193 -->
Felix Meschberger8a8c6332009-10-29 13:48:37 +0000194 org.osgi.framework;version="[1.4,2)",
Felix Meschbergerca797922009-10-07 08:38:18 +0000195
196 <!--
Felix Meschbergerd854a922009-10-29 12:28:50 +0000197 LogService is optional but if present the
198 R4.0 version 1.3 is sufficient.
199 -->
200 org.osgi.service.log;version="[1.3,2)";resolution:=optional,
201
202 <!--
Felix Meschbergerca797922009-10-07 08:38:18 +0000203 Configuration Admin is optional and if it is
204 present, version 1.2 (from R4.0) is enough
205 -->
Felix Meschbergerf6066cb2009-10-29 11:05:31 +0000206 org.osgi.service.cm;version="[1.2,2)";resolution:=optional,
207
208 <!--
209 SCR API is required (we also export it) and must
210 be of any 1.1 version, because we implement that
211 exact version. This import is only used if the
212 framework decides to wire the bundle to another
213 API provider.
214 -->
215 org.osgi.service.component;version="[1.1,1.2)"
Felix Meschbergerd25a63d2007-11-23 13:02:49 +0000216 </Import-Package>
Felix Meschberger9b4e0232009-07-09 12:34:12 +0000217 <Embed-Dependency>
218 kxml2
219 </Embed-Dependency>
Karl Pauls589e2b32007-07-11 18:29:29 +0000220 </instructions>
221 </configuration>
222 </plugin>
Felix Meschberger47eb0372009-07-28 13:48:28 +0000223
224 <!--
225 configure default compilation for Java 1.3 and integration
226 test compilation for Java 5 (since integration tests use
227 Java Annotations for Pax Exam)
228 -->
229 <plugin>
230 <artifactId>maven-compiler-plugin</artifactId>
231 <executions>
232 <execution>
233 <id>test-compile-java5</id>
234 <goals>
235 <goal>testCompile</goal>
236 </goals>
237 <configuration>
238 <source>1.5</source>
239 <target>1.5</target>
240 <testIncludes>
241 <testInclude>**/integration/**</testInclude>
242 </testIncludes>
243 <testExcludes>
244 <testExclude>**/impl/**</testExclude>
245 </testExcludes>
246 </configuration>
247 </execution>
248 </executions>
249 <configuration>
250 <testExcludes>
251 <testExclude>**/integration/**</testExclude>
252 </testExcludes>
253 </configuration>
254 </plugin>
255
256 <!--
257 Exclude Integration tests in (default) unit tests and
258 conversely enable integration tests for integration testing
259 only. Helper classes are completely excluded from testing.
260 -->
261 <plugin>
262 <artifactId>maven-surefire-plugin</artifactId>
263 <executions>
264 <execution>
265 <id>surefire-it</id>
266 <phase>integration-test</phase>
267 <goals>
268 <goal>test</goal>
269 </goals>
270 <configuration>
Felix Meschberger55e3b972009-10-12 07:16:08 +0000271 <systemProperties>
272 <property>
273 <name>project.bundle.file</name>
Felix Meschbergere130b0b2009-10-12 07:51:50 +0000274 <value>${bundle.file.name}</value>
Felix Meschberger55e3b972009-10-12 07:16:08 +0000275 </property>
276 </systemProperties>
Felix Meschberger47eb0372009-07-28 13:48:28 +0000277 <excludes>
278 <exclude>**/components/**</exclude>
279 </excludes>
280 <includes>
281 <include>**/integration/*</include>
282 </includes>
283 </configuration>
284 </execution>
285 </executions>
286 <configuration>
287 <excludes>
288 <exclude>**/integration/**</exclude>
289 <exclude>**/components/**</exclude>
290 <exclude>**/instances/**</exclude>
291 <exclude>**/instances2/**</exclude>
292 </excludes>
293 </configuration>
294 </plugin>
Karl Pauls589e2b32007-07-11 18:29:29 +0000295 </plugins>
296 </build>
Felix Meschberger55e3b972009-10-12 07:16:08 +0000297
298 <profiles>
299 <!--
300 copy the package such that IDEs may easily use it without
301 setting the system property
302 -->
303 <profile>
304 <id>ide</id>
305 <build>
306 <plugins>
307 <plugin>
308 <artifactId>maven-antrun-plugin</artifactId>
309 <version>1.3</version>
310 <executions>
311 <execution>
312 <id>scr-file-create</id>
313 <phase>package</phase>
314 <goals>
315 <goal>run</goal>
316 </goals>
317 <configuration>
318 <tasks>
Felix Meschberger9afc4d72009-11-02 22:28:37 +0000319 <copy file="${project.build.directory}/${project.build.finalName}.jar" tofile="${project.build.directory}/scr.jar" />
Felix Meschberger55e3b972009-10-12 07:16:08 +0000320 </tasks>
321 </configuration>
322 </execution>
323 </executions>
324 </plugin>
325 </plugins>
326 </build>
327 </profile>
328 </profiles>
329
Felix Meschberger47eb0372009-07-28 13:48:28 +0000330 <!-- repositories for Pax Exam and BND tool -->
331 <repositories>
332 <repository>
333 <id>ops4j</id>
334 <name>ops4j</name>
335 <url>http://repository.ops4j.org/maven2</url>
336 <snapshots>
337 <enabled>false</enabled>
338 </snapshots>
339 </repository>
340 <repository>
341 <id>aqute</id>
342 <name>aqute</name>
343 <url>http://www.aqute.biz/repo</url>
344 <snapshots>
345 <enabled>false</enabled>
346 </snapshots>
347 </repository>
348 </repositories>
Karl Pauls589e2b32007-07-11 18:29:29 +0000349</project>