<project>
  <parent>
    <groupId>org.apache.felix</groupId>
    <artifactId>felix</artifactId>
    <version>0.8.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <packaging>osgi-bundle</packaging>
  <name>Apache Felix Shell GUI Plugin</name>
  <artifactId>org.apache.felix.shell.gui.plugin</artifactId>
  <dependencies>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>${pom.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.shell</artifactId>
      <version>${pom.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.bundlerepository</artifactId>
      <version>${pom.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>${pom.groupId}</groupId>
      <artifactId>org.apache.felix.shell.gui</artifactId>
      <version>${pom.version}</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix.plugins</groupId>
        <artifactId>maven-osgi-plugin</artifactId>
        <version>${pom.version}</version>
        <extensions>true</extensions>
        <configuration>
          <osgiManifest>
            <bundleName>ShellGUIPlugin</bundleName>
            <bundleDescription>A simple set of plugins for the ShellGUI bundle.</bundleDescription>
            <bundleActivator>org.apache.felix.shell.gui.plugin.Activator</bundleActivator>
            <bundleDocUrl>http://oscar-osgi.sf.net/obr2/shellguiplugin/</bundleDocUrl>
            <bundleUrl>http://oscar-osgi.sf.net/obr2/shellguiplugin/org.apache.felix.shell.gui.plugin.jar</bundleUrl>
            <bundleSource>http://oscar-osgi.sf.net/obr2/shellguiplugin/org.apache.felix.shell.gui.plugin-src.jar</bundleSource>
            <bundleSymbolicName>org.apache.felix.shell.gui.plugin</bundleSymbolicName>
            <importPackage>org.osgi.framework,javax.swing,javax.swing.event,javax.swing.table,javax.swing.tree,javax.swing.border,javax.swing.text,org.apache.felix.shell,org.apache.felix.shell.gui,org.osgi.service.obr</importPackage>
            <exportService>org.apache.felix.shell.gui.Plugin</exportService>
            <importService>org.apache.felix.shell.ShellService,org.apache.felix.bundlerepository.RepostioryAdmin</importService>
          </osgiManifest>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
