<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2009, 2019 Xored Software Inc and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html
     
    Contributors:
    	Xored Software Inc - initial API and implementation and/or initial documentation
 -->

<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>bundles</artifactId>
    <groupId>org.eclipse.rcptt.module.rap</groupId>
    <version>2.5.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>runtime</artifactId>
  <packaging>pom</packaging>



  <profiles>
    <profile>
      <id>core</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
        <modules>
          <module>contexts</module>
          <module>ecl</module>
          <module>org.eclipse.rcptt.core.ecl.debug.rap</module>
          <module>org.eclipse.rcptt.forms.impl.rap</module>
          <module>org.eclipse.rcptt.runtime.ui.rap</module>
          <module>org.eclipse.rcptt.util.swt.rap</module>
          <module>org.eclipse.rcptt.rap.aspects</module>
          <module>tesla</module>
          <module>verifications</module>
          <module>watson</module>
        </modules>
    </profile>

    <profile>
      <id>ide</id>
      <modules>
        <module>updates</module>
      </modules>
    </profile>

  </profiles>

</project>
