<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
  -->

<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">
  <parent>
    <artifactId>openejb</artifactId>
    <groupId>org.apache.openejb</groupId>
    <version>4.5.0</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>osgi</artifactId>
  <packaging>pom</packaging>
  <name>OpenEJB :: OSGi</name>

  <modules>
    <module>openejb-core-osgi</module>
    <module>openejb-feature</module>
    <module>openejb-karaf-commands</module>
    <module>openejb-karaf-rebranding</module>
    <module>apache-karafee</module>
    <module>openejb-osgi-tests</module>
  </modules>

  <properties>
    <karaf.version>2.2.9</karaf.version>
    <karafee.version>1.5.0</karafee.version>
  </properties>
</project>
