<?xml version="1.0" encoding="UTF-8"?>
<!--
  * OW2 FraSCAti
  *
  * Copyright (c) 2010-2011 INRIA, University of Lille 1
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2 of the License, or (at your option) any later version.
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-->

<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>

  <!-- ===================== -->
  <!-- General Information   -->
  <!-- ===================== -->

  <parent>
    <groupId>org.ow2.frascati</groupId>
    <artifactId>frascati-parent</artifactId>
    <version>1.4</version>
  </parent>
  
  <groupId>org.ow2.frascati</groupId>
  <artifactId>frascati-modules</artifactId>
  <packaging>pom</packaging>
  <name>OW2 FraSCAti: Modules Parent</name>

  <url>http://frascati.ow2.org</url>
  <inceptionYear>2007</inceptionYear>
  
  <developers>
    <developer>
      <id>merle</id>
      <name>Philippe Merle</name>
      <email>Philippe.Merle@inria.fr</email>
      <organization>INRIA</organization>
      <organizationUrl>http://www.inria.fr</organizationUrl>
      <roles>
        <role>Architect</role>
        <role>Developer</role>
      </roles>
    </developer>
  </developers>

  <!-- ======= -->
  <!-- Build   -->
  <!-- ======= -->

  <build>
    <defaultGoal>install</defaultGoal>

    <pluginManagement>
      <plugins>
        <!--
           Compile SCA composites with OW2 Fractal JuliaC.
        -->
        <plugin>
          <groupId>org.objectweb.fractal.juliac</groupId>
          <artifactId>maven-juliac-plugin</artifactId>
          <version>${juliac.version}</version>
          <executions>
            <execution>
              <id>juliac-compile</id>
              <phase>generate-sources</phase>
              <goals>
                <goal>compile</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <srcs>
              <src>src/main/java</src>
            </srcs>
            <opts>
              <opt>org.ow2.frascati.tinfi.opt.oo.FCOOCtrlSourceCodeGenerator</opt>
              <opt>OO</opt>
            </opts>
            <mixins>
              <mixin>org.ow2.frascati.tinfi:frascati-tinfi-mixins:${tinfi.version}:sources</mixin>
              <mixin>org.objectweb.fractal.julia:julia-mixins:${julia.version}:sources</mixin>
            </mixins>
            <compileGenerated>false</compileGenerated>
            <compilationWarnings>true</compilationWarnings>
<!--
            <debug>true</debug>
-->
          </configuration>
          <dependencies>
            <!-- OW2 Fractal Juliac JDT-based compiler. -->
            <dependency>
              <groupId>org.objectweb.fractal.juliac</groupId>
              <artifactId>juliac-jdt</artifactId>
              <version>${juliac.version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <!--
             Compile SCA composites with OW2 FraSCAti Assembly Factory.
         -->
        <plugin>
          <groupId>org.ow2.frascati.mojo</groupId>
          <artifactId>frascati-compiler-plugin</artifactId>
          <version>${project.version}</version>
          <executions>
            <execution>
              <id>compile-composite</id>
              <phase>generate-sources</phase>
              <goals>
                <goal>compile</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <loggingConfFile>${frascati.logging.properties}</loggingConfFile>
          </configuration>
          <!-- Required for FraSCAti EasyBPEL integration. -->
          <dependencies>
            <dependency>
              <groupId>xerces</groupId>
              <artifactId>xercesImpl</artifactId>
              <version>${xerces.version}</version>
              <scope>compile</scope>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </pluginManagement>

	<plugins>
		<plugin>
			<artifactId>maven-assembly-plugin</artifactId>
        	<groupId>org.apache.maven.plugins</groupId>
		</plugin>
	</plugins>

    <!-- Exclude .composite_diagram from generated JARs. -->
    <resources>
      <resource>
        <directory>${basedir}/src/main/resources</directory>
        <excludes>
          <exclude>**/*.composite_diagram</exclude>
        </excludes>
      </resource>
    </resources>

  </build>

  <!-- ============ -->
  <!-- Dependencies -->
  <!-- ============ -->

  <dependencies>
  </dependencies>

  <dependencyManagement>
    <dependencies>
      <!-- OW2 FraSCAti Tinfi Object-Oriented membranes. -->
      <!-- This dependency is required to compile code generated with Juliac. -->
      <dependency>
        <groupId>org.ow2.frascati.tinfi</groupId>
        <artifactId>frascati-tinfi-membranes-oo</artifactId>
        <version>${tinfi.version}</version>
        <exclusions>
          <!-- Exclude ObjectWeb Monolog -->
          <exclusion>
            <groupId>org.objectweb.monolog</groupId>
            <artifactId>monolog</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <!-- ============= -->
  <!-- Repositories  -->
  <!-- ============= -->

  <repositories>
  </repositories>

  <!-- ======= -->
  <!-- Modules -->
  <!-- ======= -->

  <modules>
    <module>frascati-sca-compiler-parent</module>

    <module>frascati-all</module>

<!-- TODO
    <module>frascati-all-jdt</module>
-->

    <module>frascati-assembly-factory</module>
    <module>frascati-assembly-factory-juliac-jdt-tinfi-oo</module>

    <module>frascati-binding-factory</module>
    <module>frascati-binding-http</module>
    <module>frascati-binding-jms</module>
    <module>frascati-binding-jms/tests</module>
    <module>frascati-binding-jsonrpc</module>
    <module>frascati-binding-rest</module>
    <module>frascati-binding-rmi</module>
    <module>frascati-binding-ws</module>

    <module>frascati-component-factory</module>
    <module>frascati-component-factory-julia</module>
    <module>frascati-component-factory-juliac</module>
    <module>frascati-component-factory-juliac-jdt</module>
    <module>frascati-component-factory-juliac-tinfi-oo</module>
    <module>frascati-component-factory-tinfi-oo</module>
    <module>frascati-implementation-bpel</module>
    <module>frascati-implementation-fractal</module>
    <module>frascati-implementation-osgi</module>
    <module>frascati-implementation-osgi-equinox</module>
    <module>frascati-implementation-osgi-felix</module>
    <module>frascati-implementation-osgi-knopflerfish</module>
    <module>frascati-implementation-resource</module>
    <module>frascati-implementation-script</module>
    <module>frascati-implementation-script-beanshell</module>
    <module>frascati-implementation-script-fscript</module>
    <module>frascati-implementation-script-groovy</module>
    <module>frascati-implementation-script-javascript</module>
    <module>frascati-implementation-script-jruby</module>
    <module>frascati-implementation-script-jython</module>
    <module>frascati-implementation-script-xquery</module>
    <module>frascati-implementation-spring</module>

    <module>frascati-interface-wsdl</module>

<!--
    <module>frascati-jaxb</module>
-->

    <module>frascati-metamodel-frascati</module>
    <module>frascati-metamodel-frascati-ext</module>
    <module>frascati-metamodel-tuscany</module>

    <module>frascati-property-jaxb</module>

    <module>frascati-sca-parser</module>
    <module>frascati-tinfi-sca-parser</module>

    <module>frascati-servlet-cxf</module>

    <module>frascati-util</module>
    <module>frascati-util-xml</module>

    <module>module-native</module>
    <module>module-upnp</module>

    <module>frascati-bootstrap-jdt-fractal-rest</module>
    <module>frascati-introspection</module>

    <module>frascati-explorer</module>
    <module>frascati-fscript</module>
    <module>frascati-jmx</module>
    <module>frascati-xquery</module>
  </modules>

  <profiles>
    <profile>
      <id>jdk6</id>
<!--
      <activation>
        <jdk>1.6</jdk>
      </activation>
-->
      <modules>
        <module>frascati-all-jdk6</module>
        <module>frascati-assembly-factory-jdk6</module>
        <module>frascati-component-factory-juliac-jdk6</module>
      </modules>
    </profile>
  </profiles>

</project>
