<!--

    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<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">
 <modelVersion>4.0.0</modelVersion>
 <groupId>sahoo</groupId>
 <artifactId>osgi-servlet</artifactId>
 <version>1.0-SNAPSHOT</version>
 <packaging>bundle</packaging>
 <build>
  <finalName>osgi-servlet</finalName>
  <plugins>
    <plugin>
      <groupId>org.apache.felix</groupId>
      <artifactId>maven-bundle-plugin</artifactId>
      <version>3.5.1</version>
      <extensions>true</extensions>
      <configuration>
        <instructions>
          <Export-Package></Export-Package>
          <Private-Package>sahoo.osgihttp.test1</Private-Package>
          <Bundle-Activator>sahoo.osgihttp.test1.Activator</Bundle-Activator>
        </instructions>
      </configuration>
    </plugin>
  </plugins>
 </build>
 <dependencies>
   <dependency>
     <groupId>jakarta.servlet</groupId>
     <artifactId>jakarta.servlet-api</artifactId>
     <version>4.0.1</version>
     <scope>provided</scope>
   </dependency>
   <dependency>
     <groupId>org.osgi</groupId>
     <artifactId>osgi.core</artifactId>
     <version>6.0.0</version>
     <scope>provided</scope>
   </dependency>
   <dependency>
     <groupId>org.osgi</groupId>
     <artifactId>osgi.enterprise</artifactId>
     <version>6.0.0</version>
     <scope>provided</scope>
   </dependency>
 </dependencies>
</project>
