<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2013 Eclipse Foundation.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
     Igor Fedorenko - initial implementation
-->
<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">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>rt.equinox.framework</artifactId>
    <groupId>org.eclipse.equinox.framework</groupId>
    <version>4.21.0-SNAPSHOT</version>
    <relativePath>../../</relativePath>
  </parent>
  <groupId>org.eclipse.osgi</groupId>
  <artifactId>org.eclipse.osgi</artifactId>
  <version>3.16.400-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-compiler-plugin</artifactId>
        <version>${tycho.version}</version>
        <configuration>
          <compilerArgs>
            <arg>-nowarn:[${project.basedir}/osgi/src${path.separator}${project.basedir}/felix/src]</arg>
          </compilerArgs>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.moditect</groupId>
        <artifactId>moditect-maven-plugin</artifactId>
        <version>1.0.0.RC1</version>
        <executions>
          <execution>
            <id>add-module-infos</id>
            <phase>package</phase>
            <goals>
                <goal>add-module-info</goal>
            </goals>
            <configuration>
                <module>
                  <moduleInfoSource>
open module org.eclipse.osgi {
	requires java.xml;

	exports org.eclipse.equinox.log;
	exports org.eclipse.osgi.container;
	exports org.eclipse.osgi.container.builders;
	exports org.eclipse.osgi.container.namespaces;
	exports org.eclipse.osgi.framework.console;
	exports org.eclipse.osgi.framework.eventmgr;
	exports org.eclipse.osgi.framework.log;
	exports org.eclipse.osgi.launch;
	exports org.eclipse.osgi.report.resolution;
	exports org.eclipse.osgi.service.datalocation;
	exports org.eclipse.osgi.service.debug;
	exports org.eclipse.osgi.service.environment;
	exports org.eclipse.osgi.service.localization;
	exports org.eclipse.osgi.service.pluginconversion;
	exports org.eclipse.osgi.service.resolver;
	exports org.eclipse.osgi.service.runnable;
	exports org.eclipse.osgi.service.security;
	exports org.eclipse.osgi.service.urlconversion;
	exports org.eclipse.osgi.signedcontent;
	exports org.eclipse.osgi.storagemanager;
	exports org.eclipse.osgi.util;
	exports org.osgi.dto;
	exports org.osgi.framework;
	exports org.osgi.framework.connect;
	exports org.osgi.framework.dto;
	exports org.osgi.framework.hooks.bundle;
	exports org.osgi.framework.hooks.resolver;
	exports org.osgi.framework.hooks.service;
	exports org.osgi.framework.hooks.weaving;
	exports org.osgi.framework.launch;
	exports org.osgi.framework.namespace;
	exports org.osgi.framework.startlevel;
	exports org.osgi.framework.startlevel.dto;
	exports org.osgi.framework.wiring;
	exports org.osgi.framework.wiring.dto;
	exports org.osgi.resource;
	exports org.osgi.resource.dto;
	exports org.osgi.service.condpermadmin;
	exports org.osgi.service.log;
	exports org.osgi.service.log.admin;
	exports org.osgi.service.packageadmin;
	exports org.osgi.service.permissionadmin;
	exports org.osgi.service.resolver;
	exports org.osgi.service.startlevel;
	exports org.osgi.service.url;
	exports org.osgi.util.tracker;

	provides org.osgi.framework.launch.FrameworkFactory with org.eclipse.osgi.launch.EquinoxFactory;
	provides org.osgi.framework.connect.ConnectFrameworkFactory with org.eclipse.osgi.launch.EquinoxFactory;

	uses org.osgi.framework.connect.FrameworkUtilHelper;
}
                  </moduleInfoSource>
                </module>
                <overwriteExistingFiles>true</overwriteExistingFiles>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>
